操作系统虚拟存储管理

上传人:M****1 文档编号:424914042 上传时间:2022-08-21 格式:DOC 页数:8 大小:68.50KB
返回 下载 相关 举报
操作系统虚拟存储管理_第1页
第1页 / 共8页
操作系统虚拟存储管理_第2页
第2页 / 共8页
操作系统虚拟存储管理_第3页
第3页 / 共8页
操作系统虚拟存储管理_第4页
第4页 / 共8页
操作系统虚拟存储管理_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《操作系统虚拟存储管理》由会员分享,可在线阅读,更多相关《操作系统虚拟存储管理(8页珍藏版)》请在金锄头文库上搜索。

1、淮海工学院计算机工程学院实验报告书课程名: 操作系统 题 目: 实验3 虚拟存储管理 班 级: - 学 号: - 姓 名: - 评语:成绩: 指导教师: 批阅时间: 年 月 日实验三 虚拟存储管理1目的和要求存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。2实验内容1过随机数产生一个指令序列,共320条指令。其地址按下述原则生成:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分;#具体的实施方法是:A

2、. 在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页(对应虚存地址为1

3、0,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系统提供函数RAN

4、D()和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; else i

5、f(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 noPage=0;

6、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物理块情况:; 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;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号