《操作系统 虚拟存储管理(7页).doc》由会员分享,可在线阅读,更多相关《操作系统 虚拟存储管理(7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-淮海工学院计算机工程学院实验报告书课程名: 操作系统 题 目: 实验3 虚拟存储管理 班 级: - 学 号: - 姓 名: - 评语:成绩: 指导教师: 批阅时间: 年 月 日-第 6 页-实验三 虚拟存储管理1目的和要求存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。2实验内容1过随机数产生一个指令序列,共320条指令。其地址按下述原则生成:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分;#具体
2、的实施方法是:A. 在0,319的指令地址之间随机选区一起点M;B. 顺序执行一条指令,即执行地址为M+1的指令;C. 在前地址0,M+1中随机选取一条指令并执行,该指令的地址为M;D. 顺序执行一条指令,其地址为M+1;E. 在后地址M+2,319中随机选取一条指令并执行;F. 重复AE,直到执行320次指令。2指令序列变换成页地址流 设:(1)页面大小为1K;(2) 用户内存容量为4页到32页;(3) 用户虚存容量为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条第9条指令为第0页(对应虚存地址为0,9); 第10条第19条指令为第1页(
3、对应虚存地址为10,19); 。 第310条第319条指令为第31页(对应虚存地址为310,319);按以上方式,用户指令可组成32页。3. 计算并输出下述各种算法在不同内存容量下的命中率。A. FIFO先进先出的算法B. LRU最近最少使用算法C. OPT最佳淘汰算法(先淘汰最不常用的页地址)D. LFR最少访问页面算法E. NUR最近最不经常使用算法3实验环境在486机或586机上用TC语言实现4实验提示提示:A.命中率=1-页面失效次数/页地址流长度 B.本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。 C.关于随机数产生方法,采用TC系
4、统提供函数RAND()和RANDOMIZE()来产生。5实验结果主要代码如下:1、FIFO置换算法void FIFO(int pc,int bc,int pageCount,int blockCount) cout1:FIFO置换算法; int i; if(pageCount=blockCount) cout缺页次数为0endl; cout缺页率为0endl; else int noPage=0; int p=0; for(i=0;ipageCount;i+) coutn引用页:pci; if(!Travel(bc,blockCount,pci) if(iblockCount) bci=pci
5、; else if(p=blockCount) p=0; bcp=pci; p+; noPage+; cout物理快情况:; Print(bc,blockCount); /coutendl; cout缺页次数为:noPageendl; cout缺页率为:(float)noPage/pageCountendl; 2、LRU置换算法void LRU(int pc,int bc,int pageCount,int blockCount) cout2:LRU置换算法; if(pageCount=blockCount) cout缺页次数为0endl; cout缺页率为0endl; else int no
6、Page=0; int i,j,m; int *bc1=new intblockCount; for(i=0;iblockCount;i+) bc1i=0; for(i=0;ipageCount;i+) coutn引用页:pci; if(!Travel(bc,blockCount,pci) if(iblockCount) bci=pci; for(int p=0;p=i;p+) bc1p+; else for(j=0;jblockCount;j+) bc1j+; int k=FoundMaxNum(bc1,blockCount); bck=pci; bc1k=1; noPage+; cout物
7、理块情况:; Print(bc,blockCount); else if(Travel(bc,blockCount,pci) if(iblockCount) for(j=0;j=i;j+) bc1j+; for(m=0;m=i;m+) if(bcm=pci) break; bc1m=1; bcm=pci; else for(j=0;jblockCount;j+) bc1j+; for(m=0;mblockCount;m+) if(bcm=pci) break; bc1m=1; bcm=pci; coutn缺页次数为:noPageendl; cout缺页率为:(float)noPage/pageCountendl; delete bc1; 6 实验心得此次实验让我知道了存储管理的主要功能之一是合理地分配空间,目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。我发现学到的这些知识都是非常有用的,增长了我对于操作系统的算法的一些理解,对于以后操作系统的学习会有一定的帮助的。
限制150内