os实验指导书(新)1(2)

内容发布更新时间 : 2025/7/27 7:34:51星期一 下面是文章的全部内容请认真阅读。

{

std::cout << \ std::cout << \}

//生产者

DWORD WINAPI Producer(LPVOID lpPara) {

while(p_ccontinue){

WaitForSingleObject(EmptySemaphore,INFINITE); //p(empty); WaitForSingleObject(Mutex,INFINITE); //p(mutex); Produce(); Append(); Sleep(1500);

ReleaseMutex(Mutex); //V(mutex);

ReleaseSemaphore(FullSemaphore,1,NULL); //V(full); }

return 0; }

//消费者

DWORD WINAPI Consumer(LPVOID lpPara) {

while(p_ccontinue){

WaitForSingleObject(FullSemaphore,INFINITE); //P(full); WaitForSingleObject(Mutex,INFINITE); //P(mutex); Take(); Consume(); Sleep(1500);

ReleaseMutex(Mutex); //V(mutex);

ReleaseSemaphore(EmptySemaphore,1,NULL); //V(empty); }

return 0; }

26

实验四 存储管理

背景知识

耗尽内存是Windows 2000/XP系统中最常见的问题之一。当系统耗尽内存时,所有进程对内存的总需求超出了系统的物理内存总量。随后,Windows 2000/XP必须借助它的虚拟内存来维持系统和进程的运行。虚拟内存机制是Windows 2000/XP操作系统的重要组成部分,但它的速度比物理内存慢得多,因此,应该尽量避免耗尽物理内存资源,以免导致性能下降。

解决内存不足问题的一个有效的方法就是添加更多的内存。但是,一旦提供了更多的内存,Windows 2000/XP很可以会立即“吞食”。而事实上,添加更多的内存并非总是可行的,也可能只是推迟了实际问题的发生。因此,应该相信,优化所拥有的内存是非常关键的。

1. 分页过程

当Windows 2000/XP求助于硬盘以获得虚拟内存时,这个过程被称为分页 (paging) 。分页就是将信息从主内存移动到磁盘进行临时存储的过程。应用程序将物理内存和虚拟内存视为一个独立的实体,甚至不知道Windows 2000/XP使用了两种内存方案,而认为系统拥有比实际内存更多的内存。例如,系统的内存数量可能只有16MB,但每一个应用程序仍然认为有4GB内存可供使用。

使用分页方案带来了很多好处,不过这是有代价的。当进程需要已经交换到硬盘上的代码或数据时,系统要将数据送回物理内存,并在必要时将其他信息传输到硬盘上,而硬盘与物理内存在性能上的差异极大。例如,硬盘的访问时间通常大约为4-10毫秒,而物理内存的访问时间为60 us,甚至更快。

2. 内存共享

应用程序经常需要彼此通信和共享信息。为了提供这种能力,Windows 2000/XP必须允许访问某些内存空间而不危及它和其他应用程序的安全性和完整性。从性能的角度来看,共享内存的能力大大

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi