内存管理_免费下载.doc

内存管理_免费下载.doc

ID:51138900

大小:574.50 KB

页数:26页

时间:2020-03-19

内存管理_免费下载.doc_第1页
内存管理_免费下载.doc_第2页
内存管理_免费下载.doc_第3页
内存管理_免费下载.doc_第4页
内存管理_免费下载.doc_第5页
资源描述:

《内存管理_免费下载.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、山东科技大学操作系统课程设计报告题目:内存管理姓名:安文龙学号:200901051301班级:计算机09-2班指导老师:房胜学院:信息科学与工程学院目录一:设计要求及目的二:背景知识三:设计环境设计思路五:程序结构六:关键代码分析:七:运行结果及分析:八:观察与体验十:参考文献十一:参考源代码一:设计要求及目的设计要求:a)使用Windows的API函数,编写一个程序,包括两个线程,一个线程用于模仿内存活动,另一个线程用于跟踪第一个线程的内存行为。b)要求两个线程之间通过信号量实现同步。c)模拟内存活动的线程可以

2、从一个文件中读取要进行的内存操作。d)每个内存操作包含如下内容:时间:操作等待时间块数:分配内存的粒度操彳乍:包括一个区域白勺reserve,commit,release,decommit,lockandunlock.大小:块的大小访问权限:PAGE_READONLY,PAGE_READWRITE,PAGE_EXECUTEZPAGE_EXECUTE_READZANDPAGEEXECUTEREADWRITEMMe)将VirtualAlloc函数的参数flAllocationType分别设置为MEM_RESET,ME

3、M_TOP_DOWNZ将flProtect参数分别设置为PAGE_GUARDFAGE_NOACCESS,PAGE_NOCACHE,执行并查看内存分配的结果。设计目的:a)通过对内存分配活动模拟和跟踪的编程实现z从不同侧1!1了解Windows2000/XP对用户进程虚拟内存空间的管理.分配方法。b)了解跟踪程序的编写方法。c)对Windows分配虚拟内存、改变内存状态,以及对物理内存和页lil文件状态查询的API函数的功能、参数限制、使用规则要进一步了解二:背景知识(1)虚拟存储的基本原理a)在程序装入时,不必将

4、其全部读入到内存,而只需将当前需要执行的部分页或段读入到内存,就可让程序开始执行b)在程序执行过程中,如果需执行的指令或访问的数据尚未在内存,则由处理器通知操作系统将相应的页或段调入到内存,然后继续执行程序c)另一方面,操作系统将内存中暂时不使用的页或段调出保存在外存上,从而腾出空间存放将要装入的程序以及将要调入的页或段⑵Windows2000/XP的用户进程的虚拟内存空间管理和分配方法a)作为32位操作系统,提供32位虚地址,每个进程虚地址空间最多4GB,其中2GB为进程的私有空间,操作系统占用剩下的2GBb)

5、Windows2000/XP以页为单位进行虚拟内存分配,利用二级页表结构来实现虚拟地址向物理地址的变换c)虚拟地址一一页目录索引,页表索引和字节索引d)页面状态…■空闲页面,保留页面,提交页面⑶Windows提供API可以查询内存的一些属性,获得页面大小,分配粒度等属性,在分配内存时用。(4)内存状态可以获取总内存和可用内存,包括页文件和物理内存。(5)VirtualAlloc说明:该函数可以在调用进程的虚拟地址中保留或提交页面。除非设置了MEM.RESET标志,否则被这个函数分配的内存单元自动初始化为0。返回值

6、:若成功,则返回所分配页面的基址;否则,返回NULL。函数原型:VirtualAlloc(LPVOIDIpAddress,SIZE_TdwSize,DWORDflAllocationType,DWORDflProtect);参数:IpAddress:待分配空间的起始地址。dwSize:定义分配空间的大小。若IpAddress为NULL,该参数值将四舍五入到下一个页面边界。ftAllocationType:定义分配类型。flProtect:指定了被分配区域的访问保护方式。⑹VirtualLock说明:该函数用于将进

7、程虚拟地址空间中的指定区域锁近内存。返回值:若成功,返回非零值;否则,返回零。参数:IpAddress:指向加锁页面区域基址的指针。dwSize:定义加锁区域的大小。(7)VirtualUnlock说明:该函数用于将进程虚拟地址空间指定范围内的页面解锁。返回值:若成功,返回一个非零值;否则,返回零。参数:IpAddress:指向解锁页面区域基址的指针。dwSize:定义解锁区域的大小(以字节为单位X⑻VirtualFree说明:该函数用于释放,回收或者释放并回收进程虚拟地址空间中的页面。返回值:若成功,则返回一个

8、非零值;否则返回0。参数:IpAddress:释放页面的基址。dwsize:定义释放区域的大小。dwFreeType:定义释放操作的类型,可以是MEM_DECOMMIT(回收指走的提交页面)和MEM_RELEASE(释放指定的保留页面)中的一个或者两个。三:设计环境MicrosoftVisualC++6.0四:设计思路首先将内存分配的六种操作(reserve,commit

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。