LRU页面调度算法实现_第1页
LRU页面调度算法实现_第2页
LRU页面调度算法实现_第3页
LRU页面调度算法实现_第4页
LRU页面调度算法实现_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-/LRU页调度算法实现学 院计算机科学与技术专 业 计算机科学与技术学 号学生姓名指导教师姓名2014年3月15日-/一、设计目的、内容与要求(一)目的:操作系统课程设计是计算机专业重要的教学环节,为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。感谢阅读(1)进一步巩固和复习操作系统的基础知识。(2)培养学生结构化程序、模块化程序设计的方法和能力。精品文档放心下载(3)提高学生调试程序的技巧和软件设计的能力。(4)提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。谢谢阅读(二)内容:程序应模拟实现LRU算法思想,对n个页面实现模拟调度。谢谢阅读(三)要求:不同的功能使用不同的函数实现(模块化),对每个函数的功能和调用接口要注释清楚。对程序其它部分也进行必要的注释。感谢阅读对系统进行功能模块分析、画出总流程图和各模块流程图。谢谢阅读用户界面要求方便、简洁明了、美丽大方、格式统一。所有功能可以反复使用,最好使用菜单。谢谢阅读通过命令相应选项能直接进入某个相应菜单选项的功能模块。所有程序需调试通过。感谢阅读二、算法的基本思想LRU是LeastRecentlyUsed近期最少使用算法。谢谢阅读内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,Oracle会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。精品文档放心下载什么是LRU算法?LRU是LeastRecentlyUsed的缩写,即最少使用页面置换算法,是为虚拟页式存储管理服务的。关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式——在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的功能,极大地提高了计算机的并发度。虚拟页式存储管理,则是将进程所需空间划分为多个页面,内存中只存放当前所需页面,其余页面放入外存的管理方式。感谢阅读程序中用到了if,switch选择语句,和for循环语句进行编程。精品文档放心下载If语句基本格式为:If(表达式)语句1else语句2-/Switch语句基本格式为:Switch(表达式){case 常量表达式1;语句序列1case 常量表达式2;语句序列2}三、主要功能模块流程图(1)主菜单流程图:Init;I=0I<blockYPrintf(“%d”,Fuzhu[i];)I++NPrintf(“\n”)(2)main函数流程图:开始进入主菜单是否输入为“1”

是否输入为N “2”

是否输入为“3”

-/是否输入为“4”YYYY自定义块数和显示进程数和进入LRU算法退出进程数块数N结束(3)LRU程序流程图:-/开始页数是否已N满?Y该页是否在物N找到最久的页面,退出LRU算法理块中更新时间,置换Y更新时间结束(4)自定义函数流程图:Init;I=0I<pageNumYPages[i]=rand()%100;I++NGetchar90;四、系统测试-/(1)显示主菜单:(2)选择1:(3)选择3:-/(4)选择1:(4)输入要修改块的:-/五、结论通过这两周的课设,我不仅复习了C语言的相关知识,还对操作系统有了进一步的理解和掌握。实验中,通过LRU(最近最久未使用)算法实现了页面调度模拟实验。LRU与其他几种调度算法在原理上既有区别又有联系。要想充分掌握LRU算法,也要会使用其他几种算法。感谢阅读虽然在程序设计中,出现了一些错误,但是经过同学的帮助和辅导老师的细心指导,我已经将错误纠正了。使程序达到预想的结果,能够实现简单的页面调度。通过此次实验,我发现自己在编程方面还有许多不足的地方,以后要多加动手编写,提高自己的编程能力。谢谢阅读最后感谢同学的帮助和辅导老师的悉心指导,使我顺利完成此次实验。精品文档放心下载六、源程序#include<stdio.h>#include<stdlib.h>#include<time.h>#defineMaxsize50voidXiugaikuaishu();voidInition();voidZidingyi();voidShowCustomer();voidShowResult();voidShowNot();voidLRU();intmenu_select();//菜单函数-/intpageNum=0;intpages[Maxsize];//存储页号intFuzhu[Maxsize];//辅助数组intTime[Maxsize];//记录页在内存中的时间精品文档放心下载intphysicalblock;//记录物理块数感谢阅读intFz;//辅助变量intmain(){for(;;){switch(menu_select()){case1:Zidingyi();break;case2:ShowCustomer();break;case3:LRU();break;case4:exit(0);}}return0;}intmenu_select(){intn;printf("***************欢迎进入主界面*****************\n");感谢阅读printf("*请求页式存储管理中LRU算法的实现*\n");printf("**\n");printf("*1.自定义进程数和块数*\n");printf("*2.显示用户自定义*\n");printf("*3.LRU算法*\n");printf("*4.EXIT*\n");printf("**\n");printf("**********************************************\n");感谢阅读do{printf("\n输入你的选择(1~4):");精品文档放心下载scanf("%d",&n);}while(n<1||n>4);return(n);}voidZidingyi()-/{inti;system("cls");printf("**********************************************\n");谢谢阅读printf("页式储存管理-LRU算法\n");printf("**********************************************\n");printf("自定义进程数和块数\n");printf("请输入进程数:");精品文档放心下载scanf("%d",&pageNum);getchar();printf("请输入块数:");scanf("%d",&physicalblock);谢谢阅读getchar();printf("请依次输入页号引用串(中间用空格隔开):");感谢阅读for(i=0;i<pageNum;i++)谢谢阅读scanf("%d",&pages[i]);}voidLRU(){inti,j;intReplacePages=0;//记录置换次数printf("***********************************************\n");谢谢阅读printf("LRU算法结果显示\n");谢谢阅读printf("\n");ShowNot();for(i=Fz;i<pageNum;i++)精品文档放心下载{intkey=0;for(j=0;j<physicalblock;j++)//判断该页是否在物理块中精品文档放心下载{if(Fuzhu[j]==pages[i]){key=1;//该页在内存中Time[j]=i;//更新时间break;}}if(key==0)//若该页不在内存中{ReplacePages++; //缺页次数加1intmin=Time[0];intflag=0;for(j=1;j<physicalblock;j++)感谢阅读{-/if(min>Time[j]){min=Time[j];//找到最久的页面flag=j;}}Time[flag]=i;//记录时间Fuzhu[flag]=pages[i];ShowResult();}}printf("页面总数为:%d\n",pageNum);谢谢阅读printf("置换次数为:%d\n",ReplacePages);谢谢阅读doublere1=((double)ReplacePages)/((double)pageNum);精品文档放心下载printf("置换率为: %.2lf\n",re1);感谢阅读printf("命中率为: %.2lf\n",1-re1);精品文档放心下载printf("缺页次数为:%d\n",ReplacePages+physicalblock);谢谢阅读doublere2=((double)(ReplacePages+physicalblock))/((double)pageNum);感谢阅读printf("缺页率为: %.2lf\n",re2);精品文档放心下载printf("***********************************************\n");感谢阅读printf("按1修改块数,按2返回主菜单\n");谢谢阅读printf("printf(" Yes--1,No--2intla;

\n");\n");scanf("%d",&la);if(la==1){Xiugaikuaishu();}else{printf("********************************************\n");printf("\n");system("cls");谢谢阅读}}voidShowResult()//显示每次换页后的结果感谢阅读{inti;for(i=0;i<physicalblock;i++)感谢阅读{printf(" %d",Fuzhu[i]);}printf("\n");-/}voidXiugaikuaishu(){system("cls");printf("*************************************************\n");printf("请输入需要修改块的数目\n");感谢阅读{inta;scanf("%d",&a);physicalblock=a;}ShowCustomer();//显示自定义页面信息感谢阅读LRU();}voidShowCustomer()//显示用户自定义的进程数和块数谢谢阅读{system("cls");inti;printf("**************************************************\n");精品文档放心下载printf("显示\n");感谢阅读printf("进程数为: %d\n",pageNum);感谢阅读printf("页号分别为: ");for(i=0;i<pageNum;i++)精品文档放心下载{printf("%d ",pages[i]);}printf("\n");printf("可用物理块数为:%d\n",physicalblock);printf("****************************************************\n");printf("按任意键可返回主菜单\n");感谢阅读getchar();}voidShowNot()//显示一定不用换页的部分精品文档放心下载{Fz=physicalblock;inti,j,k=0,key=0;fo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论