操作系统课设-LRU-OPT.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《操作系统课设-LRU-OPT.doc》由会员分享,可在线阅读,更多相关《操作系统课设-LRU-OPT.doc(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date操作系统课设-LRU-OPT操作系统课设-LRU-OPT学 号: 01209103401课 程 设 计题 目请求页式管理缺页中断模拟设计-LRU、OPT学 院计算机科学与技术学院专 业计算机科学与技术专业班 级计算机0901班姓 名指导教师王红霞2012年1月11日课程设计任务书学生姓名: 专业班级: 计算机0901班 指导教师: 王红霞 工作单位: 计算机科学与技术
2、学院 题 目: 请求页式管理缺页中断模拟设计- LRU、OPT初始条件:1预备内容:阅读操作系统的内存管理章节内容,了解有关虚拟存储器、页式存储管理等概念,并体会和了解缺页和页面置换的具体实施方法。2实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1实现指定淘汰算法。能够处理以下的情形: 能够输入给作业分配的内存块数; 能够输入给定的页面,并计算发生缺页的次数以及缺页率; 缺页时,如果发生页面置换,输出淘汰的页号。2设计报告内容应说明: 课程设计目的与功能; 需求分析,数据结构或模块说明(功能与框图); 源程序的主要部分
3、; 测试用例,运行结果与运行情况分析; 自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他的其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。时间安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收,撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日请求页式管理缺页中断模拟设计
4、-LRU、OPT1 设计目的与功能1.1 设计目的巩固并加深对虚拟存储器、请求页式存储管理等概念的理解,掌握请求页式管理中的置换算法的基本思想。并针对LRU(最近最久未使用页面置换算法),以及OPT(理想型淘汰算法)两种算法,利用高级语言,设计出相应的模拟程序。结合设计的程序,在理论联系实际的基础上,分析各个页面置换算法的优缺点。以及在对课程的整体把握上,提升对操作系统这门课程的全面认识。1.2 设计功能本次课程设计需要实现LRU和OPT两种置换算法。能够实现以下功能:1) 能够输入给作业分配的内存块数;2) 能够输入给定的页面,并计算发生缺页的次数以及缺页率; 3) 缺页时,如果发生页面置换
5、,输出淘汰的页号。在实现以上功能的前提下,程序也应该达到正确性、可读性、健壮性、效率与地存储量要求等算法的5个特性。2 设计需求分析2.1 需求分析2.1.1 请求页式管理的实现请求页式管理是在静态页式管理的基础上发展起来的,它允许只装入部分页面的程序和数据,便启动运行。此后,再通过调页功能和页面置换功能,陆续把即将要运行的页面调入内存,同时把暂时不运行的页面换出到外存上,置换时以页面为单位。为了能实现请求调页和置换功能,系统必须提供必要的硬件支持和相应的软件。其中硬件支持包括:1) 请求分页的页表机制,它是在纯分页的页表机制上增加若干项而形成的,作为请求分页的数据结构;2) 缺页中断机构,当
6、要访问的页面尚未调入内存时,便产生一缺页中断,以请求OS将所缺的页调入内存;3) 地址变换机构,它同样是在纯分页地址变换机构的基础上形成的。2.1.2 置换算法分析请求页式管理中的置换算法在内存中没有空闲页时被调用,它的目的是选出一个被淘汰的页面。如果内存中有足够的空闲页面存放调入的页,则不必使用置换算法。本次设计使用最近最久未使用页面置换算法(least recently used,LRU)和理想型淘汰算法(optional replacement algorithm,OPT)。2.1.2.1 LRU置换算法最近最久未使用页面置换算法(least recently used,LRU),该算法
7、的基本思想是:当需要淘汰某一页时,选择离当前时间最近的一段时间内最久没有使用过的页先淘汰。该算法的主要出发点是,如果某页被访问了,则它可能马上还要被访问,或者如果某页很长时间未被访问,则它在最近一段时间也不会被访问。2.1.2.2 OPT置换算法理想型淘汰算法(optional replacement algorithm,OPT),该算法淘汰在访问串中将来再也不出现的或者是在离当前最远的位置上出现的页,这样淘汰掉该页将不会造成因需要访问该页又立即把它调入的现象。这种算法难以实现,因为它要求必须预先知道每一个进程的访问串。请求页式管理的具体实现过程如图1所示。2.2 数据结构及功能框图2.2.1
8、 数据结构程序是以基本的变量和结构体实现,在两种算法中有大量的代码重用,故采用宏定义(#define LO(wname)等,使代码更加简化。/- - - - - - - - - - - 基本数据变量说明- - - - - - - - - - - - - int input; /输入的页面数int num; /内存块允许装入页面数int *in; /准备调入的页面序列 int *memory; /用来记录进入内存的页面信息struct pageint Pnumber; /页面的页号int Mnumber; /在内存中对应的块号int stayin; /是否在内存中;page PtotalN; /
9、对N个页面进行操作开始结束请求页面序列是否结束页面是否在内存中内存块是否已满选择要调入页面放入未被占用的内存块中,修改页表利用算法,选择应该替换的页面并修改YYYNNN图1 请求页式管理实现过程/- - - - - - - - - - - 基本操作的函数原型说明- - - - - - - - - - - - - void LRU(); /实现LRU算法的函数void OPT(); /实现OPT算法的函数int getLRU(int page); /LRU中页面置换函数,对给定的页page,替换页框中的页int getOPT(int page); /OPT中页面置换函数,对给定的页page,替换
10、页框中的页#define LO(wname); /对LRU和OPT中的前num个页的公操作处理#define get(smblx,smbly,smblz); /页面置换过程的公操作,用smblx等变量替换 2.2.2 程序功能框图程序中首先输入页面的数目存入input中,输入页框的数目存入num中,在按次序输入页面号码,存入in数组中。程序给出选择,当进行LRU模块时,LRU模块对页面进行分配,当出现缺页调用getLRU()进行缺页处理,而OPT模块与之类似。程序功能框图如图2。Main()getOPT (int page)getLRU(int page)OPT()LRU()图2 程序功能框图
11、3 源程序的主要部分3.1 源程序简介本次设计中LRU以及OPT算法中页面置换的思想,分别对照页框的内容,向前查找最久未被使用的页面号和向后查找最后被使用的页面号,将其替换之。在设计的思想上可以转化为以当前即将调入的页面为中心,LRU为向前查找离中心最远的页号,而OPT为向后查找离中心最远的页号。这样在方法上有了共同之处,以此可以通过对相同的代码进行宏定义。3.2 源程序核心代码3.2.1 main函数代码main函数实现对各输入数据及待数据结构的初始化,以及通过选择来调用LRU或OPT算法。伪代码如下:int main() /页号、块号、页面顺序的输入,以及初始化等工作。while(true
12、) /部分全局变量的初始化工作,每次循环需重新开始 char chose;cout请您选择:1、LRU算法endl;cout 2、OPT算法endl;cout 3、退出endl; cout*chose;if(chose!=1&chose!=2)break;switch(chose)case 1:LRU();break;case 2:OPT();break; cout*endl;3.2.2 LRU及OPT函数代码LRU和OPT的主要思想有许多共同之处,所以通过宏定义,来实现程序的共同功能。程序中都是通过LO宏来实现的,区别在于传递的参数不同,即LRU函数调用getLRU()子函数。而OPT函数调
13、用getOPT()函数。void LRU() coutLRU替换算法过程如下:endl; LO(LRU); /通过LO宏,传递LRU给get#wname(int page),即getLRU(int page)void OPT() coutOPT替换算法过程如下:endl; LO(OPT); /通过LO宏,传递OPT给get#wname(int page),即getOPT(int page)3.2.3 LO(wname)宏的代码LO宏是用来对LRU和OPT的置换进行公处理的,即在内存块未满,或者不需要发生置换时两者的代码是相同的,而唯一不同在于缺页中断处理函数,getLRU(int page)或
14、者getOPT(int page)。所以,通过宏定义,把不同的代码作为参数传递,来实现不同函数的功能。伪代码如下:#define LO(wname)int i,missTime=0,replace=0,full=0,page=0; /i 为循环控制变量,missTime为缺页次数/replace代表置换的页框号full为控制变量,page为页面数do /实现块未满时的页面分配,LRU和OPT相同while(full!=num);for( i=page;iinput;i+)if(Ptotalini.stayin =1) coutini号页已在页框中,endl;elsemissTime+;repl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 LRU OPT
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内