1 / 10
文档名称:

内存管理实验报告.doc

格式:doc   大小:134KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

内存管理实验报告.doc

上传人:aibuaiwo1318 2018/3/1 文件大小:134 KB

下载得到文件列表

内存管理实验报告.doc

文档介绍

文档介绍:课程设计报告
课程名称: 基于Windows的课程设计
题目: 内存管理
年级/专业/班: 计算机09-3班
学生姓名:
学号:
一设计要求
<1>使用Windows 的API函数,编写一个程序,包括两个线程,一个线程用于模拟内存分配活动,另一个用于跟踪第一个线程的内存行为
<2>要求两个线程之间通过信号量实现同步
<3>模拟内存活动的线程可以从一个文件中读取要进行的内存操作
<4>每个内存操作包含如下内容
时间:操作等待时间
块数:分配内存的粒度
操作:mit、release、mit、lock and unlock.
大小:块的大小
访问权限:PAGE_READONLY, PAGE_READWRITE,
PAGE_EXECUTE,PAGE_EXECUTE_READ,
PAGE_EXECUTE_READWRITE
<5>将VirtualAlloc函数的参数flAllocationType
分别设置为MEM_RESET,MEM_TOP_DOWN,
将flProtect参数分别设置为PAGE_GUARD,ESS,PAGE_NOCACHE,
执行并查看内存分配的结果
二目的
<1>通过对内存分配活动模拟和跟踪的编程实现,从不同侧面了解Windows 2000/XP对用户进程虚拟内存空间的管理、分配方法。
<2>了解跟踪程序的编写方法。
<3>对Windows分配虚拟内存、改变内存状态,以及对物理内存和页面文件状态查询的API函数的功能、参数限制、使用规则要进一步了解
三背景知识
<1>虚拟存储的基本原理
在程序装入时,不必将其全部读入到内存,而只需将当前需要执行的部分页或段读入到内存,就可让程序开始执行
在程序执行过程中,如果需执行的指令或访问的数据尚未在内存,则由处理器通知操作系统将相应的页或段调入到内存,然后继续执行程序
另一方面,操作系统将内存中暂时不使用的页或段调出保存在外存上,从而腾出空间存放将要装入的程序以及将要调入的页或段
<2>Windows 2000/XP的用户进程的虚拟内存空间管理和分配方法
作为32位操作系统,提供32位虚地址,每个进程虚地址空间最多4GB,其中2GB为进程的私有空间,操作系统占用剩下的2GB
Windows 2000/XP以页为单位进行虚拟内存分配,利用二级页表结构来实现虚拟地址向物理地址的变换
虚拟地址----页目录索引,页表索引和字节索引
页面状态----空闲页面,保留页面,提交页面
<3>查看虚拟内存状态(追踪)
我们可以通过相关函数检索当前内存状态的动态信息。
获取函数:
GlobalMemoryStatus(LPMEMORYSTATUS pmst); /*内存小于4G*/
函数参数:
LPMEMORYSTATUS pmst:用于返回信息的数据结构
LPMEMORYSTATUSEX pmst:用于返回信息的数据结构
包含信息:
dwLength:参数结构体的字节数
dwTotalPhys:物理存储器的总字节数
dwAvailPhys:可供分配的物理存储器的总字节数
dwTotalPageFile:硬盘上调页文件中包含的最大字节数
dwAvailPageFile:调页文件中尚未提交给任何进程的