欢迎来到天天文库
浏览记录
ID:50771665
大小:134.00 KB
页数:10页
时间:2020-03-14
《内存管理实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计报告课程名称:基于Windows的课程设计题目:内存管理年级/专业/班:计算机09-3班学生姓名:学 号:一设计要求<1>使用Windows的API函数,编写一个程序,包括两个线程,一个线程用于模拟内存分配活动,另一个用于跟踪第一个线程的内存行为<2>要求两个线程之间通过信号量实现同步<3>模拟内存活动的线程可以从一个文件中读取要进行的内存操作<4>每个内存操作包含如下内容时间:操作等待时间块数:分配内存的粒度操作:包括一个区域的reserve、commit、release、decommit、lockandunlock.大小:块的大小访问权限:PAGE_RE
2、ADONLY,PAGE_READWRITE,PAGE_EXECUTE,PAGE_EXECUTE_READ,PAGE_EXECUTE_READWRITE<5>将VirtualAlloc函数的参数flAllocationType分别设置为MEM_RESET,MEM_TOP_DOWN,将flProtect参数分别设置为PAGE_GUARD,PAGE_NOACCESS,PAGE_NOCACHE,执行并查看内存分配的结果二目的<1>通过对内存分配活动模拟和跟踪的编程实现,从不同侧面了解Windows2000/XP对用户进程虚拟内存空间的管理、分配方法。<2>了解跟踪程序的编写方
3、法。<3>对Windows分配虚拟内存、改变内存状态,以及对物理内存和页面文件状态查询的API函数的功能、参数限制、使用规则要进一步了解三背景知识<1>虚拟存储的基本原理在程序装入时,不必将其全部读入到内存,而只需将当前需要执行的部分页或段读入到内存,就可让程序开始执行在程序执行过程中,如果需执行的指令或访问的数据尚未在内存,则由处理器通知操作系统将相应的页或段调入到内存,然后继续执行程序另一方面,操作系统将内存中暂时不使用的页或段调出保存在外存上,从而腾出空间存放将要装入的程序以及将要调入的页或段<2>Windows2000/XP的用户进程的虚拟内存空间管理和分配方
4、法作为32位操作系统,提供32位虚地址,每个进程虚地址空间最多4GB,其中2GB为进程的私有空间,操作系统占用剩下的2GBWindows2000/XP以页为单位进行虚拟内存分配,利用二级页表结构来实现虚拟地址向物理地址的变换虚拟地址----页目录索引,页表索引和字节索引页面状态----空闲页面,保留页面,提交页面<3>查看虚拟内存状态(追踪)我们可以通过相关函数检索当前内存状态的动态信息。获取函数:GlobalMemoryStatus(LPMEMORYSTATUSpmst);/*内存小于4G*/函数参数:LPMEMORYSTATUSpmst:用于返回信息的数据结构LP
5、MEMORYSTATUSEXpmst:用于返回信息的数据结构包含信息:dwLength:参数结构体的字节数dwTotalPhys:物理存储器的总字节数dwAvailPhys:可供分配的物理存储器的总字节数dwTotalPageFile:硬盘上调页文件中包含的最大字节数dwAvailPageFile:调页文件中尚未提交给任何进程的总的字节数dwTotalVirtual:每个近处的地址空间中私有的总字节数dwAvailVirtual:当前进程中所有空闲区域的总和<4>内存分配(模拟分配)LPVOIDVirtualAlloc( LPVOIDlpAddress, SIZE
6、_TdwSize, DWORDflAllocationType, DWORDflProtect);LPVOIDlpAddress,分配内存区域的地址。当你使用VirtualAlloc来提交一块以前保留的内存块的时候,lpAddress参数可以用来识别以前保留的内存块。如果这个参数是NULL,系统将会决定分配内存区域的位置。 SIZE_TdwSize,要分配或者保留的区域的大小。这个参数以字节为单位,而不是页,系统会根据这个大小一直分配到下页的边界DWORDflAllocationType,分配类型你可以指定或者合并以下标志:MEM_COMMIT,MEM_AUTO
7、_COMMIT,MEM_RESERVE和MEM_TOP_DOWN。 DWORDflProtect指定了被分配区域的访问保护方式区域操作:Reserve保留Commit提交Release释放Decommit回收lock锁定Unlock.解锁MEM_COMMIT在内存或者指定的磁盘页文件(虚拟内存文件)中分配一物理存储区域,函数初始化这个区域为0 MEM_RESERVE保留虚拟地址空间以便以后提交。 MEM_TOP_DOWN最高可允许的虚拟地址开始映射应用程序。 访问类型 PAGE_READONLY该区域为只读。如果应用程序试图访问区域中的页的
此文档下载收益归作者所有