山东大学操作系统实验七内存页面置换算法问题.docVIP

山东大学操作系统实验七内存页面置换算法问题.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
山东大学操作系统实验七内存页面置换算法问题

计算机科学与技术学院操作系统实验报告 实验题目:内存页面置换算法问题 假请在以上示例实验程序中补充“增强二次机会”等置换算法的模拟程序。输入不同的内存页面引用串和实存帧数,观察并分析其页面置换效果和性能,并将其与 LRU 和FIFO 算法进行比较。改进以上示例实验程序,使之能够随机的产生内存页面引用串,以便能动态的观测各种置换算法的性能。 实验目的: 加深对于存储管理的了解,掌握虚拟存储器的实现原理;观察和了解重要的页面 置换算法和置换过程。练习模拟算法的编程技巧,锻炼分析试验数据的能力。 硬件环境: Inter(R)Core(TM)i5-3210M CPU @ 2.50GHz 内存:4GB 硬盘:500G 软件环境: XUbuntu-Linux 操作系统 Gnome 桌面 2.18.3 BASH_VERSION=3.2.33(1)-release gcc version 4.1.2 gedit 2.18.2 OpenOffice 2.3 实验步骤: 1、问题分析: 示例实验程序中模拟两种置换算法:LRU 算法和 FIFO 算法 能对两种算法给定任意序列不同的页面引用串和任意帧实内存块数的组合测试,显示页置换的过程。 能统计和报告不同置换算法情况下依次淘汰的页号、缺页次数(页错误数)和缺页率。比较两种置换算法在给定条件下的优劣。 为了能方便的扩充页面置换算法,更好的描述置换过程,示例实验程序采用了 C++语言用 Replace 类描述了置换算法及其属性。 2、算法设计说明如下: 1.二次机会算法描述(Clock):将帧表设置为循环表,由RefBit数组记录某一页是否被引用(0表示未被引用,1表示被引用)。当访问一页时,首先从帧表中检查此页是否在实存,若在将其引用位设置为1;若不在,在循环帧表中循序查找,若某页引用位为1,则将其设置为0,然后继续查找;若某页引用位为0,将其替换。若查找一圈,没有替换页(所有引用位均为1),则将全部引用位设置为0。 2.增强的二次机会算法(Eclock):将帧表设置为循环表,由RefBit数组记录某页是否被引用,ModBit数组记录某页是否被修改。当访问一页时,首先从帧表中检查此页是否在实存,若在将引用位设置为1,并根据输入修改修改位;若不在,第一次在帧表中查找是否有属性为(0,0)的页,若有则将其替换,并修改引用位和修改位;若没有这种页,第二次查找是否有属性为(0,1)或(1,0)的页,若有将其替换,并修改引用位和修改位;若没有这种页,将所有引用位置为0,重复第二次查找操作。 3.最少使用页替换算法(Lfu):设置accout数组记录帧表中每一页被引用次数。当访问一页时,首先从帧表中检查此页是否在实存,若在将其计数加1;若不在,查找计数最小的页将其替换,并将当前页的计数置为1; 4.最多使用页替换算法(Mfu):设置accout数组记录帧表中每一页被引用次数。当访问一页时,首先从帧表中检查此页是否在实存,若在将其计数加1;若不在,查找计数最大的页将其替换,并将当前页的计数置为1; 3、开发调试过程: 在shell命令行下运行make vmrp g++ -w -g -c vmrp.cc g++ vmrp.o -o vmrp $ ./vmrp Please input page numbers :12 Please input reference page string :1 2 3 4 1 2 5 1 2 3 4 5 Please input page frames :3 运行截图如下: 附件: vmrp.h #include iostream #include iomanip #include malloc.h using namespace std; class Replace{ public: Replace(); ~Replace(); void InitSpace(char * MethodName); //初始化页号记录 void Report(void); // 报告算法执行情况 void Fifo(void); //先进先出算法 void Lru(void); //最近最旧未用算法 void Clock(void); //时钟(二次机会)置换算法 void Eclock(void); //增强二次机会置换算法 void Lfu(void); //最不经常使用置换算法 void Mfu(void); //最经常使用置换算法 private: int * ReferencePage ; //存放要访问到的页号 int * EliminatePage ; //存放淘汰页号 int * PageFrames ; //存放当前正在实存中的

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档