- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统实验-内存管理
一、实验题目实验
内存管理
二、实验目的
1.从不同侧面了解Windows2000/XP对用户进程的虚拟内存空间的管理、分配方法。
2.了解跟踪程序的编写方法(与被跟踪程序保持同步,使用Windows提供的信号量)。
3.对Windows分配虚拟内存、改变虚拟内存状态,以及对物理内存和页面文件状态查询的API函数的功能、参数限制、使用规则进一步了解。
三、实验内容
1.使用Windows2000/XP的API函数,编写一个包含两个线程的进程,一个线程用于模拟内存分配活动,一个线程用于跟踪第一个线程的内存行为,而且要求两个线程之间通过信号实现同步。
2.模拟内存活动的线程可以从一个文件中读出要进行的内存操作,每个内存操作包括如下内容:
时间:操作等待时间。
块数:分配内存的粒度。
操作:包括保留一个区域、提交一个区域、释放一个区域、回收一个区域和加锁与解锁一个区域,可以将这些操作编号存放在文件中。
保留是指保留进程的虚拟地址空间,而不分配物理存储空间。
回收是释放物理内存空间,但再虚拟地址空间仍然保留,它与提交相应,即可以回收以提交的内存块。
释放是指将物理存储和虚拟存储地址空间全部释放,它与保留相对应,即可以释放已经保留的内存块。
大小:块的大小。
访问权限:共五种,分别是PAGE_READONLY,PAGE_READWRITE, PAGE_EXECUTE,
PAGE_EXECUTE_READ和PAGE_EXECUTE_READWRITE。可以将这些权限编号存放于文件中跟踪线程将页面大小、已使用的地址范围、物理内存总量,以及虚拟内存总量等信息显示出来。
四、实验环境
使用的操作系统及版本。
Windows xp professional
使用的编译系统及版本。
Visual c++ 6.0
五、实验源代码
生成随即文件file
# include fstream.h
# include stdio.h
# include stdlib.h
# include time.h
struct operation
{
int time; //起始时间
int block;//内存页数
int oper; //操作
int protection;//权限
} ;
int main()
{
FILE *file ;
file=fopen(file,wb);//opfile为二进制,用于确定内存操作
operation op;
for(int j=0;j6;j++)//0-保留;1-提交;2-锁;3-解锁;4-回收;5-释放;
for(int i=0;i5;i++)
//0_READONLY
//1_WRITE
//2_EXECUTE
//3_EXECUTE_READ
//4_EXECUTE_READWRITE
{
op.time=rand()%1000; //随机生成等待时间
op.block=rand()%5+1;//随机生成块
op.oper=j;
op.protection=i;
fwrite(op,sizeof(operation),1,file);//将生成的结果写入文件
}
cout文件生成成功!\n;
return 0;
}
内存操作程序
#includestdio.h
#includestdlib.h
#includewindows.h
#includeiostream.h
#includefstream.h
struct operation
{
int time;
int block;
int oper;
int protection;
};
struct trace
{
LPVOID start;
long size;
};
HANDLE allo,trac;
DWORD Tracker(LPDWORD lpdwparm)//跟踪线程的内存行为,并输出必要信息
{
ofstream outfile;
outfile.open(out.txt);
for(int i=0;i=30;i++)
{
WaitForSingleObject(trac,INFINITE);//等待allocator一次内存分配活动结束
//打印内存状况和系统状况
outfileiendl;
SYSTEM_INFO info;//系统信息
GetSystemInfo(info);
outfile页面文件大小\tinfo.dwPageSizeendl;
outf
您可能关注的文档
- 推进新型城市化的规划思路.ppt
- 推进民营企业内部审计工作讲稿.doc
- 推销人员的职责素质与能力.doc
- 推销学试卷6.doc
- 描述《礼记》中的“大同”和“小康”.doc
- 描述巨蟹女的文章.doc
- 描述图画.ppt
- 控制监控器5863A简易操作手册.doc
- 描述性格类英语词汇大全.doc
- 提前祝你节日快乐.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)