欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年实验报告材料三虚拟内存页面置换算法.docx

    • 资源ID:27301326       资源大小:172.52KB        全文页数:14页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年实验报告材料三虚拟内存页面置换算法.docx

    精选学习资料 - - - - - - - - - 有用标准文案试验报告三 虚拟内存页面置换算法班级 学号 姓名一、 试验目的通过这次试验,加深对虚拟内存页面置换概念的懂得,进一步把握先进先出 FIFO,正确置换 OPI 和最近最久未使用LRU页面置换算法的实现方法;二、试验的开发环境1. 硬件设备: PC机一台 2. 软件环境:安装 Windows 操作系统或者 如 C C+Java 等编程语言环境;三、试验设计思路问题描述:Linux 操作系统,并安装相关的程序开发环境,设计程序模拟先进先出FIFO,正确置换OPI 和最近最久未使用LRU页面置换算法的工作过程;假设内存中安排给每个进程的最小物理块数为m,在进程运行过程中要拜访的页面个数为 n,页面拜访序列为 P1, ,Pn ,分别利用不同的页面置换算法调度进程的页面拜访序列,给出页面拜访序列的置换过程,运算每种算法缺页次数和缺页率;四、试验内容及结果程序要求如下:1)利用先进先出FIFO,正确置换 OPI 和最近最久未使用LRU三种页面置换算法模拟页面拜访过程;2)模拟三种算法的页面置换过程,给出每个页面拜访时的内存安排情形;3)输入:最小物理块数m,页面个数n,页面拜访序列P1, ,Pn ,算法挑选 1-FIFO ,2-OPI ,3-LRU;4)输出:每种算法的缺页次数和缺页率;程序源码如下:#include "iostream.h" const int DataMax=100; const int BlockNum = 10; int DataShowBlockNumDataMax; / 用于储备要显示的数组bool DataShowEnableBlockNumDataMax; / 用于储备数组中的数据是否需要显示/int DataDataMax=4,3,2,1,4,3,5,4,3,2,1,5,6,2,3,7,1,2,6,1; / 测试数据/int N = 20; / 输入页面个数int DataDataMax; / 储存数据int BlockBlockNum; / 物理块int countBlockNum; / 计数器int N ; / 页面个数int M;/ 最小物理块数int ChangeTimes; void DataInput; / 输入数据的函数void DataOutput; void FIFO; / FIFO 函数void Optimal; / Optimal 函数void LRU; / LRU 函数文档名师归纳总结 - - - - - - -第 1 页,共 8 页精选学习资料 - - - - - - - - - 有用标准文案/* int mainint argc, char* argv DataInput;/ DataInput; / FIFO; / Optimal; / LRU; / return 0; int menu; whiletrue cout<<endl; cout<<"* 菜单挑选 *"<<endl; cout<<"*"<<endl; cout<<"* 1-FIFO *"<<endl; cout<<"* 2-Optimal *"<<endl; cout<<"* 3-LRU *"<<endl; cout<<"* 0-EXIT *"<<endl; cout<<"*"<<endl; cin>>menu; switchmenu case 1: FIFO;break; case 2: Optimal;break; case 3: LRU;break; default: break; ifmenu.=1&&menu.=2&&menu.=3 break; /*/ void DataInput cout<<" 请输入最小物理块数:" cin>>M; whileM > BlockNum / 大于数据个数 cout<<"物理块数超过预定值,请重新输入:" cin>>M; cout<<" 请输入页面的个数:" cin>>N; whileN > DataMax / 大于数据个数 cout<<"页面个数超过预定值,请重新输入:" cin>>N; cout<<" 请输入页面拜访序列:"<<endl; forint i=0;i<N;i+ cin>>Datai; 文档名师归纳总结 - - - - - - -第 2 页,共 8 页精选学习资料 - - - - - - - - - 有用标准文案void DataOutput int i,j; fori=0;i<N;i+ / 对全部数据操作 cout<<Datai<<" " cout<<endl; forj=0;j<M;j+ cout<<" " fori=0;i<N;i+ / 对全部数据操作 if DataShowEnableji cout<<DataShowji<<" " else cout<<" " cout<<endl; cout<<" 缺页次数 : "<<ChangeTimes<<endl; cout<<" 缺页率 : "<<ChangeTimes*100/N<<"%"<<endl; void FIFO int i,j; bool find; int point; int temp; / 暂时变量 ChangeTimes = 0; forj=0;j<M;j+ fori=0;i<N;i+ DataShowEnableji = false; / fori=0;i<M;i+ 初始化为 false ,表示没有要显示的数据 counti = 0; / 大于等于 BlockNum,表示块中没有数据,或需被替换掉 / 所以经这样初始化(3 2 1 ),每次替换 >=3 的块,替换后计数值置 1, / 同时其它的块计数值加 1 ,成了( 1 3 2 ),见下面先进先出程序段 fori=0;i<N;i+ / 对有所数据操作 / 增加 count forj=0;j<M;j+ countj+; find = false; / 表示块中有没有该数据 forj=0;j<M;j+ if Blockj = Datai find = true; 文档名师归纳总结 - - - - - - -第 3 页,共 8 页精选学习资料 - - - - - - - - - 有用标准文案 if find continue; / 块中有该数据,判定下一个数据1 开头,所以i+1 / 块中没有该数据缺页次数 + ChangeTimes+; / if i+1 > M / 由于 i 是从 0 开头记,而M指的是个数,从 / 获得要替换的块指针 temp = 0; forj=0;j<M;j+ if temp < countj temp = countj; point = j; / 获得离的最远的指针 else point = i; / 替换 Blockpoint = Datai; countpoint = 0; / 更新计数值 / 储存要显示的数据 forj=0;j<M;j+ DataShowji = Blockj; DataShowEnablei<M.j<=i.j:i:ji = true; / 设置显示数据 / 输出信息 cout<< endl; cout<<"FIFO => "<< endl; DataOutput; void Optimal int i,j,k; bool find; int point; int temp; / 暂时变量,比较离的最远的时候用 ChangeTimes = 0; forj=0;j<M;j+ fori=0;i<N;i+ DataShowEnableji = false; / / fori=0;i<M;i+ / / counti = 0 ; / / 初始化为 false ,表示没有要显示的数据 fori=0;i<N;i+ / 对有所数据操作 find = false; / 表示块中有没有该数据 forj=0;j<M;j+ 文档名师归纳总结 - - - - - - -第 4 页,共 8 页精选学习资料 - - - - - - - - - 有用标准文案 if Blockj = Datai find = true; if find continue; / 块中有该数据,判定下一个数据 / 块中没有该数据,最优算法 ChangeTimes+; / 缺页次数 + forj=0;j<M;j+ / 找到下一个值的位置 find = false; for k =i;k<N;k+ if Blockj = Datak find = true; countj = k; break; if .find countj = N; if i+1 > M / 由于 i 是从 0 开头记,而BlockNum指的是个数,从1 开头,所以i+1 / 获得要替换的块指针 temp = 0; forj=0;j<M;j+ if temp < countj temp = countj; point = j; / 获得离的最远的指针 else point = i; / 替换 Blockpoint = Datai; / 储存要显示的数据 forj=0;j<M;j+ DataShowji = Blockj; DataShowEnablei<M.j<=i.j:i:ji = true; / 设置显示数据 / 输出信息 cout<< endl; cout<<"Optimal => "<< endl; DataOutput; void LRU 文档名师归纳总结 - - - - - - -第 5 页,共 8 页精选学习资料 - - - - - - - - - 有用标准文案 int i,j; bool find; int point; int temp; / 暂时变量 ChangeTimes = 0; forj=0;j<M;j+ fori=0;i<N;i+ DataShowEnableji = false; / fori=0;i<M;i+ counti = 0 ; 初始化为 false ,表示没有要显示的数据 fori=0;i<N;i+ / 对有所数据操作 / 增加 count forj=0;j<M;j+ countj+; find = false; / 表示块中有没有该数据 forj=0;j<M;j+ if Blockj = Datai countj = 0; find = true; if find continue; / 块中有该数据,判定下一个数据1 开头,所以i+1 / 块中没有该数据缺页次数 + ChangeTimes+; / if i+1 > M / 由于 i 是从 0 开头记,而BlockNum指的是个数,从 / 获得要替换的块指针 temp = 0; forj=0;j<M;j+ if temp < countj temp = countj; point = j; / 获得离的最远的指针 else point = i; / 替换 Blockpoint = Datai; countpoint = 0; / 储存要显示的数据 forj=0;j<M;j+ DataShowji = Blockj; DataShowEnablei<M.j<=i.j:i:ji = true; / 设置显示数据文档名师归纳总结 - - - - - - -第 6 页,共 8 页精选学习资料 - - - - - - - - - 有用标准文案 / 输出信息 cout<< endl; cout<<"LRU => "<< endl; DataOutput; 五、试验成效文档名师归纳总结 - - - - - - -第 7 页,共 8 页精选学习资料 - - - - - - - - - 有用标准文案六、试验总结通过这次试验我对先进先出 FIFO,正确置换 OPI 和最近最久未使用 LRU页面置换算法的实现方法;有了更多的明白;在编程过程中我也通过查阅书籍和复习以前的课本,对 C+编程语言进行了复习;通过这个试验我也体会到思路的重要性,一个程序假如一开头方案的好,结构设计完善, 才可能顺当进行; 这次试验模拟出了优先权调度算法,使我更加明白这一算法的调度过程;以前仅限于知道这一学问点,现在竟然能用程序来实现这个过程;我信任这将是一个很好的学习方法;我期望以后能够有更多的机会来锤炼自己,通过详细实践来提高自己编程的才能,来进一步把握和懂得在课堂上学到的东西,做到学以致用!总之,这次综合试验是我收益匪浅,是我明白了实际编程和理论学问间的差异,的实践扩充才能真正的懂得并学好这门课程;文档明白了在学习课本的基础上我们仍需要很大名师归纳总结 - - - - - - -第 8 页,共 8 页

    注意事项

    本文(2022年实验报告材料三虚拟内存页面置换算法.docx)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开