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

    虚拟存储器管理-..doc

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

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

    虚拟存储器管理-..doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date虚拟存储器管理-.淮 海 工 学 院淮海工学院计算机工程学院实验报告书课程名:操作系统原理 题 目: 虚拟存储器管理 班 级: 网络122 学 号: 姓 名 评语:成绩: 指导教师: 批阅时间: 年 月 日-一、实验目的请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。二、实验内容本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。三、 实验步骤1.实验说明实验中进程的数量、资源的种类以及每种资源的总量Totalj最好允许动态指定。初始时每个进程运行过程中的最大资源需求量Maxi,j和系统已分配给该进程的资源量Allocationi,j均为已知(这些数值可以在程序运行时动态输入),而算法中其他数据结构的值(包括Needi,j、Availablej)则需要由程序根据已知量的值计算产生。2. 实验流程 主页面LRU算法OPT算法开始 取指令取指令中的负号查页表页标志=1? Y N发生缺页输出*页号表示发生缺页中断形成绝对地址输出绝对地址有后续指令 N Y输出缺页数及缺页率取下条指令结束四、 实验源程序#include<iostream>#include<math.h>#include<malloc.h>using namespace std;#define M 9#define N 20typedef struct node1/*页面的数据结构*/int num;int age;int state;int blocknum;page ;typedef struct node2/*内存块的数据结构 */ int num;int state;int pagenum;int age;Block;void LRU(Block b,int n,page p,int m)/*最近最少使用页面置换算法 */int i,j,j1,k,mm,mn,flag=0;float num=0,c=0;for (j=0;j<m;j+) for (mm=0;mm<n;mm+)if(bmm.pagenum=pj.num)flag=1;if(flag=1) cout<<endl<<"此次未出现缺页(NF)"<<endl; else if (flag=0) c+; cout<<endl<<"出现缺页(F)n"if (pj.state=0)for(i=0;i<n;i+)if(bi.state=0)pj.blocknum=bi.num;pj.state=1;bi.pagenum=pj.num;bi.state=1;break;if(i>=n)for (mn=j-1;mn>=0;mn-) if(num<n)num+;for (j1=mn+1;j1<=j-1;j1+)if(pmn.num=pj1.num)num-; if (num=n) break; for (mm=0;mm<n;mm+)if (pmn.num=bmm.pagenum)k=mm;break;bk.pagenum=pj.num;bk.age=0;pj.blocknum=bmm.num;pj.state=1;cout<<"页面调序列为:"for (mm=0;mm<n;mm+)cout<<bmm.pagenum<<" " cout<<endl<<endl;flag=0;num=0;cout<<"缺页总次数:"<<c<<endl;cout<<"缺页率:"<<c/12<<endl;void OPT(Block b,int n,page p,int m)/*最优页面置换算法 */int i,j,k,mm,mn,flag=0;int maxage=-1;float c=0;for (j=0;j<m;j+) for (mm=0;mm<n;mm+) if(bmm.pagenum=pj.num)flag=1;if(flag=1) cout<<endl<<"此次未出现缺页(NF)"<<endl; elseif (flag=0) c+;cout<<endl<<"出现缺页(F)n" if (pj.state=0)for(i=0;i<n;i+)if(bi.state=0)pj.blocknum=bi.num;pj.state=1;bi.pagenum=pj.num;bi.state=1;break;if(i>=n)for (mm=0;mm<n;mm+)for (mn=j+1;mn<m;mn+)if (bmm.pagenum=pmn.num) bmm.age=mn;break;if(mn>=m) bmm.age=100;for(k=0;k<n;k+) if(maxage<bk.age) maxage=bk.age;mm=k;bmm.pagenum=pj.num;bmm.age=0;pj.blocknum=bmm.num;pj.state=1; cout<<"页面序列为:"<<endl;for (mm=0;mm<n;mm+)cout<<bmm.pagenum<<" " cout<<endl<<endl;flag=0;maxage=-1; cout<<"缺页总次数:"<<c<<endl; cout<<"缺页率:"<<c/12<<endl;int display(Block b,int m,page pag, int n)int chose;for(int i=0;i<n;i+)pagi.age=0;pagi.state=0;pagi.blocknum=-1;for(i=0;i<m;i+) bi.num=i; bi.state=0; bi.pagenum=-1; bi.age=0;cout<<"1. LRU替换算法n"<<"2. OPT替换算法n"<<"0. 退出"<<endl; cout<<"请输入您的选择:" cin>>chose;return (chose);void main() Block bM;page pagN;int chose;int m,n;cout<<"*虚拟存储器LRU算法,OPT算法*"<<endl;cout<<"请输入内存块个数:"<<endl;cin>>m;cout<<"请输入页面个数:"<<endl;cin>>n;cout<<"请输入页面序列:"<<endl;for(int i=0;i<n;i+)cin>>pagi.num;while(1) chose=display(b,m,pag,n); if(chose=1) LRU(b,m,pag,n);cout<<endl<<endl;else if(chose=2)OPT(b,m,pag,n); cout<<endl<<endl;else if(chose=0) exit(0);五、 实验结果 六.实验感想:  这两种算法中,最优置换的缺页率最少,最近最少使用算法次之。最佳值换算发是无法实现的,但是却可以用来评价其他的算法。LRU算法算法性能比较差,是因为它所依据的条件是各个页面调入内存的机间,而页面调入的先后顺序并不能反应页面的使用情况。通过此次实验,让我了解到如何设计、编制并调试页面置换算法,加深对内存管理的理解;熟悉了页面置换的相关原理,使用某种高级语言(例如C+语言)直接编写页面置换程序。另外,也让我重新熟悉了C+语言的相关内容,加深了对C+语言的用途的理解。 在做实验时,我们一定要学会独立思考,依赖别人,永远都不能真正提高自己的实践能力,也不能真正的掌握理论知识。要注意联系理论知识,是自己的程序和算法设计更好的达到最初的实验目的。在学习中,我们一定不能不求甚解,懂得提问,能提出有价值的问题,并通过各种途径解决自己的问题才能快速且扎实的掌握知识。

    注意事项

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

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




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

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

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

    收起
    展开