ImageVerifierCode 换一换
格式:DOC , 页数:35 ,大小:256.50KB ,
资源ID:6518760      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6518760.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(山东大学操作系统实验七内存页面置换算法问题.doc)为本站会员(hyngb9260)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

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

1、计算机科学与技术学院操作系统实验报告实验题目:内存页面置换算法问题假请在以上示例实验程序中补充“增强二次机会”等置换算法的模拟程序。输入不同的内存页面引用串和实存帧数,观察并分析其页面置换效果和性能,并将其与 LRU 和 FIFO 算法进行比较。改进以上示例实验程序,使之能够随机的产生内存页面引用串,以便能动态的观测各种置换算法的性能。实验目的:加深对于存储管理的了解,掌握虚拟存储器的实现原理;观察和了解重要的页面置换算法和置换过程。练习模拟算法的编程技巧,锻炼分析试验数据的能力。硬件环境:Inter(R)Core(TM)i5-3210M CPU 2.50GHz 内存:4GB 硬盘:500G软

2、件环境: XUbuntuLinux 操作系统 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+语言用

3、Replace 类描述了置换算法及其属性。2、算法设计说明如下:1.二次机会算法描述(Clock):将帧表设置为循环表,由RefBit数组记录某一页是否被引用(0表示未被引用,1表示被引用)。当访问一页时,首先从帧表中检查此页是否在实存,若在将其引用位设置为1;若不在,在循环帧表中循序查找,若某页引用位为1,则将其设置为0,然后继续查找;若某页引用位为0,将其替换。若查找一圈,没有替换页(所有引用位均为1) ,则将全部引用位设置为0。 2.增强的二次机会算法(Eclock):将帧表设置为循环表,由RefBit数组记录某页是否被引用,ModBit数组记录某页是否被修改。当访问一页时,首先从帧表中

4、检查此页是否在实存,若在将引用位设置为1,并根据输入修改修改位;若不在,第一次在帧表中查找是否有属性为(0,0)的页,若有则将其替换,并修改引用位和修改位;若没有这种页,第二次查找是否有属性为(0,1)或(1,0)的页,若有将其替换,并修改引用位和修改位;若没有这种页,将所有引用位置为0,重复第二次查找操作。 3.最少使用页替换算法(Lfu):设置accout数组记录帧表中每一页被引用次数。当访问一页时,首先从帧表中检查此页是否在实存,若在将其计数加1;若不在,查找计数最小的页将其替换,并将当前页的计数置为1;4.最多使用页替换算法(Mfu):设置accout数组记录帧表中每一页被引用次数。当

5、访问一页时,首先从帧表中检查此页是否在实存,若在将其计数加1;若不在,查找计数最大的页将其替换,并将当前页的计数置为1;3、开发调试过程:在 shell 命令行下运行 make vmrpg+ -w -g -c vmrp.ccg+ vmrp.o -o vmrp$ ./vmrpPlease input page numbers :12Please input reference page string :1 2 3 4 1 2 5 1 2 3 4 5Please input page frames :3运行截图如下:附件:vmrp.h#include #include #include using

6、 namespace std;class Replacepublic: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:i

7、nt * ReferencePage ; /存放要访问到的页号int * EliminatePage ; /存放淘汰页号int * PageFrames ; /存放当前正在实存中的页号int PageNumber; /访问页数int FrameNumber; /实存帧数int FaultNumber; /失败页数int * Referencebit;int * count;int * Modifybit;/vmrp.c#include “vmrp.h“Replace:Replace()int i;cout PageNumber;ReferencePage = new intsizeof(int

8、) * PageNumber;EliminatePage = new intsizeof(int) * PageNumber;cout ReferencePagei;cout FrameNumber;PageFrames = new intsizeof(int) * FrameNumber;Referencebit=new intsizeof(int) * FrameNumber;count=new intsizeof(int)*FrameNumber;Modifybit=new intsizeof(int)*FrameNumber;Replace:Replace()void Replace:

9、InitSpace(char * MethodName)int i;cout 0;j-) PageFramesj = PageFramesj-1;PageFrames0=next;break;if(PageFrames0 = next)/如果引用页已放栈顶,则为不缺页,报告当前内存页号for(j=0; j=0) cout 0;j-) PageFramesj= PageFramesj-1;PageFrames0=next; /引用页放栈顶/报告当前实存中页号for(j=0; j=0) cout =0)cout “ =0) cout =0)cout “ =0) cout =0)cout “ =0) cout =0)cout “ =0) cout =0)cout “ EliminatePagel+ endl;elsecout endl;Report(); void Replace:Mfu(void)int j,i,k,l,next;InitSpace(“Mfu“);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报