




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LRU页调度算法实现学 院 计算机科学与技术 专 业 计算机科学与技术 学 号 学 生 姓 名 指导教师姓名 2014年3月15日一、设计目的、内容与要求(一)目的: 操作系统课程设计是计算机专业重要的教学环节,为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。(1)进一步巩固和复习操作系统的基础知识。(2)培养学生结构化程序、模块化程序设计的方法和能力。(3)提高学生调试程序的技巧和软件设计的能力。(4)提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。(二)内容: 程序应模拟实现LRU算法思想,对n个页面实现模拟调度。(三)要求:1. 不同的功能使用不同的函数实现(模块化),对每个函数的功能和调用接口要注释清楚。对程序其它部分也进行必要的注释。2. 对系统进行功能模块分析、画出总流程图和各模块流程图。3. 用户界面要求方便、简洁明了、美丽大方、格式统一。所有功能可以反复使用,最好使用菜单。4. 通过命令相应选项能直接进入某个相应菜单选项的功能模块。所有程序需调试通过。2、 算法的基本思想 LRU是Least Recently Used 近期最少使用算法。 内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,Oracle会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。什么是LRU算法? LRU是Least Recently Used的缩写,即最少使用页面置换算法,是为虚拟页式存储管理服务的。关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式 在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的功能,极大地提高了计算机的并发度。虚拟页式存储管理,则是将进程所需空间划分为多个页面,内存中只存放当前所需页面,其余页面放入外存的管理方式。程序中用到了if,switch选择语句,和for循环语句进行编程。If语句基本格式为:If (表达式)语句1else语句2Switch语句基本格式为:Switch (表达式)case 常量表达式1;语句序列1case 常量表达式2;语句序列2 三、主要功能模块流程图(1)主菜单流程图:(2)main函数流程图:(3)LRU程序流程图:(4)自定义函数流程图:四、系统测试(1)显示主菜单:(2)选择1:(3)选择3:(4)选择1:(4)输入要修改块的:五、结论 通过这两周的课设,我不仅复习了C语言的相关知识,还对操作系统有了进一步的理解和掌握。实验中,通过LRU(最近最久未使用)算法实现了页面调度模拟实验。LRU与其他几种调度算法在原理上既有区别又有联系。要想充分掌握LRU算法,也要会使用其他几种算法。虽然在程序设计中,出现了一些错误,但是经过同学的帮助和辅导老师的细心指导,我已经将错误纠正了。使程序达到预想的结果,能够实现简单的页面调度。通过此次实验,我发现自己在编程方面还有许多不足的地方,以后要多加动手编写,提高自己的编程能力。最后感谢同学的帮助和辅导老师的悉心指导,使我顺利完成此次实验。六、源程序#include #include #include #define Maxsize 50void Xiugaikuaishu();void Inition(); void Zidingyi(); void ShowCustomer(); void ShowResult(); void ShowNot();void LRU();int menu_select(); /菜单函数int pageNum = 0; int pagesMaxsize;/存储页号int FuzhuMaxsize;/辅助数组int TimeMaxsize;/记录页在内存中的时间int physicalblock;/记录物理块数int Fz;/辅助变量int main()for(;) switch(menu_select() case 1: Zidingyi(); break; case 2: ShowCustomer(); break; case 3: LRU(); break; case 4: exit(0); return 0;int menu_select() int n; 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);doprintf(n输入你的选择(14):); scanf(%d,&n); while(n4); return(n); void Zidingyi() int i;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,&pagesi);void LRU()int i,j;int ReplacePages = 0;/记录置换次数printf(*n);printf(-LRU算法结果显示-n);printf(n);ShowNot();for(i = Fz ; i pageNum; i+)int key = 0;for(j = 0 ; j physicalblock ; j+)/判断该页是否在物理块中if(Fuzhuj = pagesi) key = 1; /该页在内存中Timej = i;/更新时间break;if(key = 0)/若该页不在内存中ReplacePages+; /缺页次数加1int min = Time0;int flag = 0;for(j = 1 ; j Timej)min = Timej;/找到最久的页面flag = j;Timeflag = i;/记录时间Fuzhuflag = pagesi;ShowResult();printf(页面总数为:%dn,pageNum); printf(置换次数为:%dn,ReplacePages);double re1 = (double)ReplacePages)/(double)pageNum);printf(置换率为: %.2lfn,re1);printf(命中率为: %.2lfn,1-re1);printf(缺页次数为:%d n,ReplacePages+physicalblock);double re2 = (double)(ReplacePages+physicalblock)/(double)pageNum);printf(缺页率为: %.2lfn,re2);printf(*n);printf(-按1修改块数,按2返回主菜单-n); printf( n); printf( Yes-1,No-2 n);int la;scanf(%d,&la);if(la=1)Xiugaikuaishu(); elseprintf(*n);printf(-n);system(cls); void ShowResult()/显示每次换页后的结果int i;for(i = 0 ; i physicalblock ; i+)printf( %d,Fuzhui);printf(n);void Xiugaikuaishu()system(cls);printf(*n);printf(-请输入需要修改块的数目-n);int a;scanf(%d,&a);physicalblock = a;ShowCustomer();/显示自定义页面信息LRU();void ShowCustomer()/显示用户自定义的进程数和块数 system(cls);int i;printf(*n);printf(-显示-n);printf(进程数为: %dn,pageNum);printf(页号分别为: );for(i = 0 ; i pageNum ; i+)printf(%d ,pagesi);printf(n);printf(可用物理块数为: %dn,physicalblock);printf(*n);printf(-按任意键可返回主菜单-n);getchar();void ShowNot()/显示一定不用换页的部分Fz = physicalblock;int i,j,k=0,key = 0;for(i = 0 ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年广东省深圳市龙文教育九年级数学第一学期期末质量跟踪监视试题含解析
- 湖南师大附中2024年数学九上期末学业质量监测模拟试题含解析
- 大唐集团合同管理办法
- 广东省广州荔湾区六校联考2025届八上数学期末学业水平测试模拟试题含解析
- 太原市2025届数学八年级第一学期期末综合测试模拟试题含解析
- 福建省泉州市洛江区2024-2025学年九年级化学第一学期期末质量检测试题含解析
- 天安财产保险管理办法
- 大学学校财务管理办法
- 天津医保支付管理办法
- 公平竞争与市场秩序-洞察及研究
- 基于知识图谱的大语言模型研究综述
- GB 7718-2025食品安全国家标准预包装食品标签通则
- GB/T 45403-2025数字化供应链成熟度模型
- 氢气供货合同协议
- 家政清洁工劳动合同协议
- 农村社会学试题及答案
- 党的知识教学课件
- 眼压测量技术操作规范
- 石家庄市2024-2025学年高一(上期)期末考试生物试卷含答案详解
- 病区安全管理工作
- 填料塔培训课件
评论
0/150
提交评论