欢迎来到天天文库
浏览记录
ID:41030449
大小:18.03 KB
页数:7页
时间:2019-08-14
《2019操作系统课程设计报告模板》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、操作系统课程设计报告模板 操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。以下是xx整理的。 页面置换算法定义 在地址映射过程中,若在页面中发现所要访问的页面不再内存中,则产生缺页中断。当发生缺页中断时操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。 所使用的算法 1)最佳置换算法(OPT):将以后永不使用的或许是在最 长(未来)时间内不再被访问的页面换出。 2)先进先出算法(FIFO):淘汰
2、最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。 3)最近最久未使用算法(LRU):淘汰最近最久未被使用的页面。 设计思想 选择置换算法,先输入所有页面号,为系统分配物理块,依次进行置换: OPT基本思想: 是用一维数组page存储页面号序列,memery是存储装入物理块中的页面。数组next记录物理块中对应页面的最后访问时间。每当发生缺页时,就从物理块中找出最后访问时间最大的页面,调出该页,换入所缺的页面。FIFO基本思想: 是用队列存储内存中的页面,队列的特点是先进先出,与该算法是一致的,所以每当发生缺页时,就从队头删除一页,而从队尾加入
3、缺页。或者借助辅助数组time记录物理块中对应页面的进入时间,每次需要置换时换出进入时间最小的页面。LRU基本思想: 是用一维数组page存储页面号序列,memery是存储装入物理块中的页面。数组flag标记页面的访问时间。每当使用页面时,刷新访问时间。发生缺页时,就从物理块中页面标记最小的一页,调出该页,换入所缺的页面。 实验环境:vc++,编程语言:c语言#include#include/*全局变量*/ intmSIZE;/*物理块数*/ intpSIZE;/*页面号引用串个数*/ staticintmemery={0};/*物理块中的页号*/stati
4、cintpage={0};/*页面号引用串*/staticinttemp={0};/*辅助数组*//*置换算法函数*/voidFIFO;voidLRU;voidOPT;/*辅助函数*/ voidprint(unsignedintt);voiddesignBy;voiddownload; voidmDelay(unsignedintDelay);/*主函数*/voidmain{ inti,k,code;system("color0A");designBy;printf("┃请按任意键进行初始化操作...┃");printf("┗━━━━━━━━━━━━━━━━━━
5、━━━┛");printf(">>>");getch;system("cls");system("color0B");printf("请输入物理块的个数(M>>");getch; system("cls");}while(code!=4);getch;} /*载入数据*/voiddownload{inti;system("color0D");printf("╔════════════╗");printf("║正在载入数据,请稍候!!!║");printf("╚════════════╝");printf("Loading...");printf("for(i=0;
6、i");}printf("Finish.载入成功,按任意键进入置换算法选择界面: >>>");getch;} /*设置延迟*/ voidmDelay(unsignedintDelay){ unsignedinti; for(;Delay>0;Delay--){for(i=0;i memery=page;time=i; for(j=0;j for(i=mSIZE;i if(memery!=page)k++; } if(k==mSIZE)/*如果不在物理块中*/{ count++;/*计算换出页*/ max=time for(j=0;j /*
7、最近最久未使用置换算法*/voidLRU{ intmemery={0}; intflag={0};/*记录页面的访问时间*/inti,j,k,m; intmax=0;/*记录换出页*/intcount=0;/*记录置换次数*//*前mSIZE个数直接放入*/for(i=0;i memery=page;flag=i; for(j=0;j for(i=mSIZE;i if(memery!=page)k++;elseflag=i;/*刷新该页的访问时间*/} if(k==mSIZE)/*如果不在物理块中*/{ count++;/*计算换出
此文档下载收益归作者所有