操作系统-常用页面置换算法模拟实验-实验07

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

操作系统课程实验报告姓名学号系任课教师指导教师评阅教师实验地点综合楼B104励耘楼A206综合楼B102丽泽楼C304-1(请勾选实际实验地点)实验时间实验课表现出勤和个人表现Q1(15+15(组长评分)=30分)得分:实验总分(Q1+Q2+Q3+Q4)实验完成情况Q2(45分(组长与教师评分的加权平均))得分:实验编号与实验名称:第7次常用页面置换算法模拟实验实验目的:通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。实验内容及要求(详见实验讲义与实验指导书):实验要求:1)要求用你熟悉的程序设计语言编写和调试一个页面置换模拟程序;要求在主函数中测试。2)实验报告中必须包括:设计思想、数据定义(包括详细说明)、处理流程(详细算法描述和算法流程图)、源代码、运行结果、体会等部分。3)必须模拟本实验内容中提到的算法中的至少2种页面置换算法。4)比较不同页面置换算法的效率实验内容编写一个程序,使用以下页面置换算法中的某2种分别模拟一个分页系统,并统计同一个页面访问序列情况下不同页面置换算法引发的缺页中断次数。1、第二次机会算法(SecondChance)2、最近最少使用算法(LeastRecentlyUsed,LRU)3、最不常用算法(NotFrequentlyUsed,NFU)4、最近未使用算法(NotRecentlyUsed,NRU)5、时钟页面置换算法6、老化算法(aging)页框的数量固定为4,虚拟页面数为8。实验输入为访问页面序列,比如0,1,3,2,7,1实验用到的软件(:)CFREE实验内容及关键步骤(代码)Q3(15分)得分:设计思想:在运行过程中,若其所要访问的页面不再内存而需把它们调入内存,应将哪个页面调出需根据一定的算法来确定,置换算法的好坏将直接影响到系统的性能,一个好的页面置换算法应具有较低的页面置换频率,从理论上讲,应将那些以后不会再访问的页面换出,或把那些再较长时间内不会再访问的页面调出。此次时间我选择是LRU页面置换算法和CLOCK页面置换算法。LRU置换算法:最近最久未使用置换算法,是根据页面调入内存后的使用情况进行决策的,由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰。该算法可利用一个特殊的栈来保存当前使用的各个页面的页面号,每当进程访问某页面时,便将该页面的页面号从该栈中移出,将它压入栈顶,因此,栈顶始终是最新被访问页面的编号,而栈底则是最近最久未使用的页面。CLOCK置换算法:简单的CLOCK置换算法只需为每页设置一位访问位,当页面被访问时,其访问位置1,置换算法在选择以为淘汰时,只需检查页的访问位,如果是0,则选择该页换出,如果是1,则重新将它置换为0,暂不换出,而给该页第二次驻留内存的机会,在按照FIFO算法检查第一个页面,LRU算法是较好的一种算法,而由于LRU在硬件上要求较多,在实践应用中多采用LRU的近似算法,CLOCK算法就是用得较多的一种LRU近似算法。算法流程图:源代码:#includeiostreamusingnamespacestd;voidPrint(intbc[],intblockCount){for(inti=0;iblockCount;i++){coutbc[i];}coutendl;}boolTravel(intbc[],intblockCount,intx){boolis_found=false;inti;for(i=0;iblockCount;i++){if(bc[i]==x){is_found=true;break;}}returnis_found;}intFoundMaxNum(inta[],intn){intk,j;k=a[0];j=0;for(inti=0;in;i++){if(a[i]=k){k=a[i];j=i;}}returnj;}voidLRU(intpc[],intbc[],intpageCount,intblockCount){cout1:LRU置换算法endl;if(pageCount=blockCount){cout缺页次数为0endl;cout缺页率为0endl;}else{intnoPage=0;inti,j,m;int*bc1=newint[blockCount];for(i=0;iblockCount;i++){bc1[i]=0;}for(i=0;ipageCount;i++){cout引用页:pc[i]endl;if(!Travel(bc,blockCount,pc[i])){if(iblockCount){bc[i]=pc[i];for(intp=0;p=i;p++){bc1[p]++;}}else{for(j=0;jblockCount;j++){bc1[j]++;}intk=FoundMaxNum(bc1,blockCount);bc[k]=pc[i];bc1[k]=1;}noPage++;cout物理快情况:;Print(bc,blockCount);}elseif(Travel(bc,blockCount,pc[i])){if(iblockCount){for(j=0;j=i;j++){bc1[j]++;}for(m=0;m=i;m++){if(bc[m]==pc[i]){break;}}bc1[m]=1;bc[m]=pc[i];}else{for(j=0;jblockCount;j++){bc1[j]++;}for(m=0;mblockCount;m++){if(bc[m]==pc[i]){break;}}bc1[m]=1;bc[m]=pc[i];}}coutendl;}cout缺页次数为:noPageendl;cout缺页率为:(float)noPage/pageCountendl;deletebc1;}}voidNRU(intpc[],intbc[],intpageCount,intblockCount){cout2:Clock置换算法endl;if(pageCount=blockCount){cout缺页次数为0endl;cout缺页率为0endl;}else{intnoPage=0;inti,j;int*bc1=newint[blockCount];for(i=0;iblockCount;i++){bc1[i]=0;}for(i=0;ipageCount;i++){cout引用页:pc[i]endl;if(!Travel(bc,blockCount,pc[i])){for(j=0;jblockCount;j++){if(bc1[j]==1){bc1[j]=0;}elseif(bc1[j]==0){break;}if(j==blockCount-1){j=-1;}}bc[j]=pc[i];bc1[j]=1;noPage++;cout物理快情况:;Print(bc,blockCount);}coutendl;}cout缺页次数为:noPageendl;cout缺页率为:(float)noPage/pageCountendl;deletebc1;}}intmain(){intpageCount=8,blockCount=4;inti;int*pc=newint[pageCount];cout输入页面访问次序endl;for(i=0;ipageCount;i++){cinpc[i];}cout1:LRU置换算法endl;cout2:Clock置换算法endl;cout按数字选择算法类别:endl;intn;while(cinn){if(n==1){int*bc=newint[blockCount];LRU(pc,bc,pageCount,blockCount);deletebc;}elseif(n==2){int*bc=newint[blockCount];for(i=0;iblockCount;i++){bc[i]=-1;}NRU(pc,bc,pageCount,blockCount);deletebc;}elsebreak;}deletepc;return0;}运行结果截图:实验过程中遇到的问题解决办法与实验体会Q4(需手写,10分)得分:在做该次作业的时候,通过对课本相关内容的温习,以及对自己在网络上找到的一些资源的了解。我对操作系统中页面调度的算法有了很大程度的了解,加深了对课程上知识的理解,也懂得了如何在程序中将这些算法实现,在程序中基本上实现了所要求的算法以及相关的性能分析,基本上实现了课程的要求。这次作业也暴露了自己在某些方面的不足之处,自己的语言功底有一定的不足,以及一开始对某个算法不够熟悉,将算法实现设计的比较复杂,此次自己的程序存在一些思想上的漏洞,反映出此次程序设计的要求有了一定的限制。通过这次的实践,我相信只要自己在每一次事件中都能仔细思考,课程设计其实不会太难,关键在于自己能不能认真思考,能不能亲自动手实践,而不是想着其他人的劳动成果,其实还要多操作,只有多操作才能从中发现问题。才能及时向老师和同学请教,解决问题,从而更好地掌握书本中知识,还有通过这次实践我也懂了,学校安排实践课的目的不在于做了多少,不在于做得好不好,关键在于能否认真对待,在于能否通过每次实践课对课本上只是有更深刻的了解,在于能否学到在课本上学不到的知识,我们必须努力将课本上的只是用于动手实践,在实践中加强对知识的理解,并找出一些课本上发现不到的问题,今后自己将更加重视自己的实践能力评阅教师特殊评语:评阅教师:日期:

1 / 11
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功