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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(浙江理工大学操作系统实验三页面置换算法详解.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

浙江理工大学操作系统实验三页面置换算法详解.docx

1、浙江理工大学操作系统实验三页面置换算法详解操作系统实验报告班级:计算机科学与技术三班 姓名:李生启 学号:2013329620077实验三:页面置换算法一、实验目的1、熟悉内存分页管理策略。 2、编写OPT、FIFO、LRU,LFU四种置换算法并模拟实现。3、锻炼知识的运用能力和实践能力。二、实验内容设计主界面,输入一串系列模拟页面请求,实现以下算法: 1) 最佳置换算法(OPT):将以后永不使用的或许是在最长(未来)时间内不再 被访问的页面换出。 2) 先进先出算法(FIFO):淘汰最先进入内存的页面,即选择在内存中驻留 时间最久的页面予以淘汰。 3) 最近最久未使用算法(LRU):淘汰最近

2、最久未被使用的页面。 4) 最不经常使用算法(LFU)三、代码及运行结果分析1.代码:(采用C+,环境:VS2010)#include#include#include #includeusing namespace std;void OPT(int count) int all50; int bracket3; int bll50=0; ifstream fin(abc.txt); if( fin.is_open() ) for(int i=0;ialli; fin.close(); bracket0=all0; bracket1=all1; bracket2=all2; for(int i=

3、0;icount;i+) if(i3) if(i=0) cout当前序列:endl; coutbracket0endl; if(i=1) cout当前序列:endl; coutbracket0 bracket1endl; if(i=2) cout当前序列:endl; coutbracket0 bracket1 bracket2=3) int a_num=count+1; int b_num=count+1; int c_num=count+1; int qi=0; for(int x=0;x3;x+) if(bracketx=alli) cout当前序列:endl; coutbracket0

4、bracket1 bracket2endl; qi=6; break; if(qi=0) for(int e=i+1;ecount;e+) if(bracket0=alle) a_num=e;break; for(int e=i+1;ecount;e+) if(bracket1=alle) b_num=e;break; for(int e=i+1;e=b_num)&(a_num=c_num)bracket0=alli; else if(b_num=a_num)&(b_num=c_num)bracket1=alli; else if(c_num=b_num)&(c_num=a_num)brack

5、et2=alli; cout当前序列:endl; coutbracket0 bracket1 bracket2endl; void FIFO(int count) int bll50=0; int all50; int top=0; ifstream fin(abc.txt); if( fin.is_open() ) for(int i=0;ialli; fin.close(); for(int i=0;icount;i+) if(top3) blltop=alli; top+; if(top=1) cout当前序列:endl; coutblltop-1endl; if(top=2) cout

6、当前序列:endl; coutblltop-1 blltop-2endl; if(top=3) cout当前序列:endl; coutblltop-1 blltop-2 blltop-3=3) if(alli!=blltop-1)&(alli!=blltop-2)&(alli!=blltop-3) blltop=alli; top+; cout当前序列:endl; coutblltop-1 blltop-2 blltop-3endl; void LRU(int count) int bll50=0; int all50; int top=0; ifstream fin(abc.txt); if

7、( fin.is_open() ) for(int i=0;ialli; fin.close(); for(int i=0;icount;i+) if(top3) blltop=alli; top+; if(top=1) cout当前序列:endl; coutblltop-1endl; if(top=2) cout当前序列:endl; coutblltop-1 blltop-2endl; if(top=3) cout当前序列:endl; coutblltop-1 blltop-2 blltop-3=3) int end3; int point=0; blltop=alli; top+; end

8、0=blltop-1; point+; for(int i=top-2;i=0;i-) if(point=3) cout当前序列:endl; coutend0 end1 end2endl; point=0; break; else if(point=1)&(end0!=blli) endpoint=blli; point+; else if(point=2)&(end0!=blli)&(end1!=blli) endpoint=blli; point+; void LFU(int count) int all50; int bll50=0; int top=0; int bracket3; i

9、fstream fin(abc.txt); if( fin.is_open() ) for(int i=0;ialli; fin.close(); bracket0=all0; bracket1=all1; bracket2=all2; for(int i=0;icount;i+) int a_num=0; int b_num=0; int c_num=0; int qi=0; if(i3) if(i=0) cout当前序列:endl; coutbracket0endl; if(i=1) cout当前序列:endl; coutbracket0 bracket1endl; if(i=2) cou

10、t当前序列:endl; coutbracket0 bracket1 bracket2=3) for(int x=0;x3;x+) if(bracketx=alli) cout当前序列:endl; coutbracket0 bracket1 bracket2endl; qi=6; break; if(qi=0) for(int e=0;e=i;e+) if(bracket0=alle) a_num+; for(int e=0;e=i;e+) if(bracket1=alle) b_num+; for(int e=0;e=i;e+) if(bracket2=alle) c_num+; if(a_n

11、um=b_num)&(a_num=c_num) bracket0=alli; else if(b_num=a_num)&(b_num=c_num) bracket1=alli; else if(c_num=b_num)&(c_num=a_num) bracket2=alli; cout当前序列:endl; coutbracket0 bracket1 bracket2endl; int main() int a50; int count=0; cout请输入页面请求序列的个数:count; ofstream out(abc.txt); cout请输入页面请求序列:endl; if(out.is_

12、open() for(int i=0;iai; out ai endl; out.close( ); while(true) int choose; cout-endl; cout最佳置换算法(OPT)-1endl; cout先进先出算法(FIFO)-2endl; cout最近最久未使用算法(LRU)-3endl; cout最不经常使用算法(LFU)-4endl; cout退出系统-5endl; cout-endl; cout输入要执行的操作;choose; switch(choose) case 1:OPT(count);break; case 2:FIFO(count);break; ca

13、se 3:LRU(count);break; case 4:LFU(count);break; default :break; 2.运行结果及分析:1.第一张图为输入的主界面,本程序可以选择输入任意长度页面和任意的页面请求序列,如上选择的是10个页面,页面请求序列如上,同时选择菜单如上。2.第二张截图如上,为选择菜单中的第一项操作-最佳置换算法(OPT),按1运行,运行结果如图。3.第三张截图如上,为选择菜单中的第二项操作-先进先出算法(FIFO),按2运行,运行结果如图。4.第四张截图如上,为选择菜单中的第三项操作-最近最久未使用算法(LRU),按3运行,运行结果如图。5.第五张截图如上,为

14、选择菜单中的第四项操作-最不经常使用算法(LFU),按4运行,运行结果如图。6.第六张截图如上,为选择菜单中的第五项操作-退出系统,按5退出,运行结果如图。四、实验心得此次实验我很认真并及时的完成任务,在刚做这四个算法时,我开始只会做出两个算法LRU和FIFO,之后的两个算法通过多次理解定义和看资料,终于明白实现算法的方法,此次实验我使用的是C+语言,我不仅熟悉内存分页管理策略和编写OPT、FIFO、LRU,LFU四种置换算法并模拟实现而且锻炼知识的运用能力和实践能力,并且熟练了大二上学期学习的C+语言,在实验途中遇到很多的困难,但所幸我静下心来一一克服,最终成功,其实编程就是在理论的基础上不断积累编程经验才会更加熟练和理解深入。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1