




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录一、设计目的1二、设计内容1三、设计原理2四、算法实现4五、流程图5六、源程序6七、运行示例及结果分析14八、心得体会16九、参考资料16模拟请求页式管理一、设计目的1.通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点。2.通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统的原理和是实验过程的理解。3.掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。二、设计内容通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: 50% 的指令是顺序执行的; 25% 的指令是均匀分布在前地址部分; 25
2、% 的指令是均匀分布在后地址部分。具体的实施方法是:在 0,319 的指令地址之间随机选取一起点 m;顺序执行一条指令;在前地址0,m+1中随机选取一条指令并执行,该指令的地址为 m; 顺序执行一条指令,其地址为 m+1;在后地址 m+2,319 中随机选取一条指令并执行 ;重复上述步骤 , 直到执行 320 次指令。将指令序列变换成为页地址流设:页面大小为 1K;用户内存容量为 4 页到 32 页 ;用户虚存容量为 32K 。在用户虚存中,按每 K 存放 10 条指令排列虚存地址,即 320 条指令在虚存中的存放方式为:第 0 条 第 9 条指令为第 0 页 ( 对应虚存地址为 0,9);第
3、 10 条 第 19 条指令为第 1 页 ( 对应虚存地址为 10,19 ) ;第 310 条 第 319 条指令为第 31 页 ( 对应虚存地址为 310,319) 。按以上方式,用户指令可组成 32 页。计算并输出下述各种算法在不同内存容量下的命中率。先进先出的算法 (FIFO);最近最久未使用算法 (LRU);最佳访问算法(OPT);三、设计原理 FIFO页面置换算法原理简述在分配内存页面数(AP)小于进程页面数(PP)时,当然是最先运行的AP个页面放入内存。这时有需要处理新的页面,则将原来内存中的AP个页面最先进入的调出(是以称为FIFO),然后将新页面放入。以后如果再有新页面需要调入
4、,则都按的规则进行。算法特点:所使用的内存页面构成一个队列。 LRU页面置换算法原理算述当分配内存页面数(AP)小于进程页面数(PP)时,当然是把最先执行的AP个页面放入内存。当需要调页面进入内存,而当前分配的内存页面全部不空闲时,选择将其中最长时间没有用到的那个页面调出,以空出内存来放置新调入的页面(称为LRU)。算法特点:每个页面都有属性来表示有多长时间未被CPU使用的信息。LRU算法的硬件支持把LRU算法作为页面置换算法是比较好的,它对于各种类型的程序都能适用,但实现起来有相当大的难度,因为它要求系统具有较多的支持硬件。所要解决的问题有:1.一个进程在内存中的各个页面各有多久时间未被进程
5、访问;2.如何快速地知道哪一页最近最久未使用的页面。为此,须利用以下两类支持硬件:(1)寄存器用于记录某进程在内存中各页的使用情况。实页/RR7R6R5R4R3R2R1R0101010010210101100300O001004011010115110101106001 01011700000111801101101(2)栈可利用一个特殊的栈来保存当前使用的各个页面的页面号。每当进程访问某页面时,便将该页面的页面号从栈中移出,将它压入栈顶。四、算法实现A.命中率=1-页面失效次数/页地址流长度 B.本实验中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数
6、。 C.关于随机数产生方法,采用TC系统提供函数RAND()和RANDOMIZE()来产生。const int MaxNum=320;/指令数const int M=5;/内存容量int PageOrderMaxNum;/页面请求int SimulateMaxNumM;/页面访问过程int PageCountM,LackNum;/PageCount用来记录LRU算法中最久未使用时间,LackNum记录缺页数float PageRate;/命中率; PageRate=1-(float)LackNum/(float)MaxNum);/计算命中率int n=rand()%320;/随机数产生320次
7、页面请求PageOrderk=n/10;/根据指令产生320次页面请求五、流程图开 始生成地址流输入算法号S1S4形成地址页号用户内存空间msize=2Msize32 FIFO()LRU()OPT()Msize加1S=? 是否用其他算法继续结 束NY123YN提示出错,重新输入六、源程序# include<iostream># include<time.h>using namespace std;const int MaxNum=320;/指令数const int M=5;/内存容量int PageOrderMaxNum;/页面请求int SimulateMaxNumM
8、;/页面访问过程int PageCountM,LackNum;/PageCount用来记录LRU算法中最久未使用时间,LackNum记录缺页数int PageCountOPTM;/PageCountOPT用来记录OPT算法中最久未使用时间float PageRate;/命中率int PageCount132;bool IsExit(int i)/FIFO算法中判断新的页面请求是否在内存中bool f=false;for(int j=0;j<M;j+)if(Simulatei-1j=PageOrderi)/在前一次页面请求过程中寻找是否存在新的页面请求f=true;return f;int
9、 IsExitLRU(int i)/LRU算法中判断新的页面请求是否在内存中int f=-1;for(int j=0;j<M;j+)if(Simulatei-1j=PageOrderi)f=j;return f;int Compare()/LRU算法找出内存中需要置换出来的页面int p,q;p=PageCount0;q=0;for(int i=1;i<M;i+)if (p<PageCounti)p=PageCounti;q=i;return q;int CompareOPT(int i)/OPT算法找出内存中需要置换出来的页面int temp5;for(int a=0;a&
10、lt;5;a+)tempa=0;for(int j=0;j<M;j+)for(int ii=i+1;ii<MaxNum;ii+)if(Simulatei-1j!=PageOrderii)tempj+;elsebreak;int max=temp0;int maxIndex=0;for(int i1=1;i1<M;i1+)if(max<tempi1)max=tempi1;maxIndex=i1;return maxIndex;void Init()/初始化页框for(int k=0;k<MaxNum;k+)int n=rand()%320;/随机数产生320次页面请
11、求PageOrderk=n/10;/根据指令产生320次页面请求for(int i=0;i<MaxNum;i+)/初始化页面访问过程for(int j=0;j<M;j+)Simulateij=-1;for (int q=0;q<M;q+)/初始化最久未使用数组PageCountq=0;PageCountOPTq=0;void AllNum()int j;cout<<"页面访问序列:"<<endl;for(j=0;j<MaxNum;j+)cout<<PageOrderj<<" "voi
12、d OutPut()/输出int i,j;cout<<endl;cout<<"页面访问过程(只显示前十个):"<<endl;for(i=0;i<10;i+)for(j=0;j<M;j+)if(Simulateij=-1)cout<<" "elsecout<<Simulateij<<" "cout<<endl;cout<<"缺页率= "<<LackNum<<endl;cout<&l
13、t;"命中率= "<<PageRate<<endl;cout<<"-"<<endl;void FIFO()/FIFO算法int j,x=0,y=0;LackNum=0;Init();/初始化for(j=0;j<M;j+)/将前五个页面请求直接放入内存中for(int k=0;k<=j;k+)if(j=k)Simulatejk=PageOrderj;elseSimulatejk=Simulatej-1k;LackNum+;for(x=M;x<MaxNum;x+)for(int t=1;t&l
14、t;M;t+)Simulatext=Simulatex-1t;if(!IsExit(x)/根据新访问页面是否存在内存中来更新页面访问过程LackNum+;Simulatexy%M=PageOrderx;y+;PageRate=1-(float)LackNum/(float)MaxNum);/算出命中率AllNum();OutPut();void LRU()/LRU算法int j,x=0,y=0;LackNum=0;Init();for(j=0;j<M;j+)/将前五个页面请求直接放入内存中for(int k=0;k<=j;k+)PageCountk+;if(j=k)Simulate
15、jk=PageOrderj;elseSimulatejk=Simulatej-1k;LackNum+;for(x=M;x<MaxNum;x+)for(int t=0;t<M;t+)/先将前一次页面访问过程赋值给新的页面访问过程Simulatext=Simulatex-1t;int p=IsExitLRU(x);if(p=-1)/根据返回的p值来更新页面访问过程int k;k=Compare();for(int w=0;w<M;w+)if(w!=k)PageCountw+;elsePageCountk=1;Simulatexk=PageOrderx;LackNum+;elsef
16、or(int w=0;w<M;w+)if(w!=p)PageCountw+;elsePageCountp=1;PageRate=1-(float)LackNum/(float)MaxNum);/算出命中率AllNum();OutPut();void OPT()/最佳访问算法Optimalint j,x=0,y=0;LackNum=0;Init();for(j=0;j<M;j+)/将前五个页面请求直接放入内存中for(int k=0;k<=j;k+)PageCountOPTk+; if(j=k)Simulatejk=PageOrderj;elseSimulatejk=Simul
17、atej-1k;LackNum+;AllNum();for(x=M;x<MaxNum;x+)for(int t=0;t<M;t+)/先将前一次页面访问过程赋值给新的页面访问过程Simulatext=Simulatex-1t;int p=IsExitLRU(x);/OPT算法中判断新的页面请求是否在内存中if(p=-1)/根据返回的p值来更新页面访问过程int k;k=CompareOPT(x);/OPT算法找出内存中需要置换出来的页面for(int w=0;w<M;w+)if(w!=k)PageCountOPTw+;elsePageCountOPTk=1;Simulatexk
18、=PageOrderx;LackNum+;elsefor(int w=0;w<M;w+)if(w!=p)PageCountOPTw+;elsePageCountOPTp=1;PageRate=1-(float)LackNum/(float)MaxNum);/算出命中率OutPut();void YourChoice(int choice)switch(choice)case 1:cout<<"-"<<endl;cout<<"FIFO算法结果如下:"<<endl;FIFO();break;case 2:
19、cout<<"-"<<endl;cout<<"LRU算法结果如下:"<<endl;LRU();break;case 3:cout<<"-"<<endl;cout<<"OPT算法结果如下:"<<endl;OPT();break;case 4:break;default:cout<<"重新选择算法:1-FIFO 2-LRU 3-OPT 4-退出"<<endl;cin>>choice;YourChoice(choice);void main()int choice,i=1;while(i)cout<<"请选择算法:1-FIFO 2-LRU 3-OPT 4-退出"<<endl;cin>>choice;if(choice=1|choice=2|choice=3|choice=4)YourCh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 33617-2025聚酰亚胺短纤维
- 健康管理专业教学标准(高等职业教育专科)2025修订
- 视觉训练与康复专业教学标准(高等职业教育专科)2025修订
- 期末复习《第7-8章》选择题常考热点专题训练 2024-2025学年鲁教版(五四制)八年级数学下册
- 垃圾分类调研报告7
- 2023-2029年中国压合板行业市场调查研究及发展战略规划报告
- 2025年中国雄安新区建设行业市场运行现状及投资规划建议报告
- 2025年中国油炸面食行业发展趋势预测及投资战略咨询报告
- 2022-2027年中国SLG页游市场前景预测及行业投资潜力预测报告
- 中国汽车外饰行业发展潜力分析及投资方向研究报告
- 餐饮连锁企业品牌授权与经营管理协议
- 北京市2024年高招本科普通批录取投档线
- DB32-T 5088-2025 废活性炭综合利用污染控制技术规范
- 2024-2025学年人教版数学八年级下册期末复习卷(含解析)
- 城市通信基站建设对周边居民影响风险评估报告
- 美容院洗涤协议书
- 学习解读《水利水电建设工程验收规程》SLT223-2025课件
- 2025-2030中国婚介网站行业发展趋势与投资战略研究报告
- 肥胖症诊疗指南(2024年版)解读
- 2025甘肃省农垦集团有限责任公司招聘生产技术人员145人笔试参考题库附带答案详解
- 2025届芜湖市重点中学七年级生物第二学期期末学业水平测试模拟试题含解析
评论
0/150
提交评论