ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:218.35KB ,
资源ID:19062819      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19062819.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(页面置换算法的实验报告Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

页面置换算法的实验报告Word下载.docx

1、深入掌握内存调度算法的概念原理和实现方法。编写程序实现:(1) 先进先出页面置换算法(FIFO)(2) 最近最久未使用页面置换算法(LRU)(3) 最佳置换页面置换算法(OPT)设计一个虚拟存储区和内存工作区,编程序演示以上三种算法的具体实现过程,并计算访问命中率。演示页面置换的三种算法。通过随机数产生一个指令序列,将指令序列转换成为页地址流。计算并输出各种算法在不同内存容量下的缺页率。1.2课程设计需求在各种存储器管理方式中,有一个共同的特点,即它们都要求将一个作业全部装入内存方能运行,但是有两种情况:(1) 有的作业很大,不能全部装入内存,致使作业无法运行;(2) 有大量作业要求运行,但内

2、存容量不足以容纳所有这些作业。而虚拟内存技术正式从逻辑上扩充内存容量,将会解决以上两个问题。 从内存中调出一页程序或数据送磁盘的对换区中,通常,把选择换出的页面的算法称为页面置换算法(Page-Replacement Algorithms)。进而页面置换算法程序能客观的将其工作原理展现在我们面前。第二章 概要设计2.1系统分析由于分区式管理尽管实现方式较为简单,但存在着严重的碎片问题使得内存的利用率不高。再者,分区式管理时,由于各作业或进程对应于不同的分区以及在分区内各作业或进程连续存放,进程的大小或内存可用空间的限制。而且分区式管理也不利于程序段和数据段的共享。页式管理正是为了减少碎片以及为

3、了只在内存存放那些反复执行或即将执行的程序段与数据部分,而把那些不经常执行的程序段和数据存放于外存待执行时调入,以提高内存利用率而提出来的页式管理有动态页式管理和静态页式管理之分,动态页式管理是在静态页式管理的基础上发展起来的。请求页式管理属于动态页式管理中的一种,它的地址变换过程与静态页式管理时的相同,也是通过页表查出相应的页面号,由页面号与页内相对地址相加而得到实际物理地址。有关的地址变换部分是由硬件自动完成的。当硬件变换机构发现所要求的页不在内存时,产生缺页中断信号,由中断处理程序做出相应的处理。中断处理程序是由软件实现的。除了在没有空闲页面时要按照置换算法选择出被淘汰页面之外,还要从外

4、存读入所需要的虚页。这个过程要启动相应的外存和涉及到文件系统。因此,请求页式管理是一个十分复杂的过程,内存利用率的提高是以牺牲系统开销的代价换来的。这里用到了置换算法。它是在内存中没有空闲页面时被调用。目的是选出一个被淘汰的页面。如果内存中有足够的空闲页面存放所调入的页,则不必使用置换算法。把内存和外存统一管理的真正目的是把那些被访问概率非常高的页存放在内存中。因此,置换算法应该置换那些被访问概率低的页,将它们移出内存。2.2调页策略 2.2.1何时调入页面如果进程的许多页是存放在外存的一个连续区域中,则一次调入若干个相邻的页,会比一次调入一页的效率更高效一些。但如果调入的一批页面中的大多数都

5、未被访问,则又是低效的。可采用一种以预测为基础的预调页策略,将那些预计在不久之后便会被访问的页面,预先调入内存。如果预测较准确,那么,这种策略显然是很有吸引力的。但目前预调页的成功率仅为50%。且这种策略主要用于进程的首次调入时,由程序员指出应该先调入哪些页。2.2.2请求调页策略 当进程在运行中需要访问某部分程序和数据时,若发现其所在的页面不在内存,便即提出请求,由OS将其所需页面调入内存。由请示调页策略所确定调入的页,是一定会被访问的,再加之请求调页策略比较易于实现,故在目前的虚拟存储器中,大多采用此策略。但这种策略每次仅调入一页,故须花费较大的系统开销,增加了磁盘I/O的启用频率。2.2

6、.3从何处调入页面在请求分页系统中的外存分为两部分:用于存放文件的文件区和用于存放对换页面的对换区。通常,由于对换区是采用连续分配方式,而事件是采用离散分配方式,故对换区的磁盘I/O速度比文件区的高。这样,每当发生缺页请求时,系统应从何处将缺页调入内存,可分成如下三种情况:系统拥有足够的对换区空间,这时可以全部从对换区调入 所需页面,以提高调页速度。为此,在进程运行前,便须将与该进程有关的文件,从文件区拷贝到对换区。系统缺少足够的对换区空间,这时凡是不会被修改的文件,都直接从文件区调入;而当换出这些页面时,由于它们未被修改而不必再将它们换出时,以后需要时,再从对换区调入。UNIX方式。由于与进

7、程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入。而对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时,应从对换区调入。由于UNIX系统允许页面共享,因此,某进程所请求的页面有可能已被其它进程调入内存,此时也就无须再从对换区调入。2.3模块设计第三章 详细设计3.1系统设计在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据,送磁盘的对换区中。但应将哪个页面调出,须根据一定的算法来确定。通常,把选择换出页面的算法称为页面置换算法(Page_ReplacementAlg

8、orithms)。一个好的页面置换算法,应具有较低的页面更换频率。从理论上讲,应将那些以后不再会访问的页面换出,或将那些在较长时间内不会再访问的页面调出。3.2算法思想及流程图3.2.1 主程序流程图如图(321)所示主流程图(图321)3.2.2先进先出(FIFO)页面置换算法算法的基本思想:这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单只需把一个进程已调入内存的页面,按先后次序存入一个时间数组,并将其中时间值最大的页面进行淘汰,并替换入新的页面就可以实现。算法流程图:如图(322)所示FIFO置换算法(图322)3.2.3

9、最佳页面置换置换算法(OPT)其所选择的被淘汰页面,将是永不使用的,或者是在最长时间内不再被访问的页面。可保证获得最低的缺页率。但由于人们目前还无法预知一个进程在内存的若干个页面中,哪一个页面是未来最长时间内不再被访问的,因而该算法也是无法实现的。但是可利用该算法去评价其它算法。如图(323)所示OPT页面置换算法(图323)3.2.4最近最久未使用页面置换算法LRU当需要淘汰某一页时,选择离当前时间最近的一段时间内最久没有使用过的页先淘汰。该算法的主要出发点是,如果某页被访问了,则它可能马上还被访问。或者反过来说,如果某页很长时间未被访问,则它在最近一段时间不会被访问。如图(324)所示LR

10、U页面置换算法(图324)第四章 源程序结构分析4.1程序结构 Input(int m,Pro pL)/打印页面走向状态 srand(j);/以时钟时间j为种子,初始化随机数发生器 void print(Pro *page1)/打印当前的页面 int Search(int e,Pro *page1 )/寻找内存块中与e相同的块号int Max(Pro *page1)/寻找最近最长未使用的页面int Count(Pro *page1,int i,int t,Pro pL)/记录当前内存块中页面离下次使用间隔长度4.2 源代码分析#include#include time.hstdio.h#def

11、ine L 20 /页面长度最大为20 int M; /内存块struct Pro/定义一个结构体 int num,time;Input(int m,Pro pL)/打印页面走向状态 coutm; if(m20|m10) coutendl; cout页面长度必须在1020之间endl请重新输入L: else break; while(1); int i,j; j=time(NULL);/取时钟时间输出随机数: for(i=0;ii+) pi.num=rand( )%10;/产生0到9之间的随机数放到数组p中 pi.time=0;pi.num return m; void print(Pro *

12、page1)/打印当前的页面 Pro *page=new ProM; page=page1; for(int i=0;M;pagei.numint Search(int e,Pro *page1 )/寻找内存块中与e相同的块号i+)if(e=pagei.num)return i;/返回i值 return -1; int e=page0.time,i=0; while(iM) /找出离现在时间最长的页面 if(epagei.time) e=pagei.time; i+; for( i=0;i+)if(e=pagei.time)return i;/找到离现在时间最长的页面返回其块号 int cou

13、nt=0; for(int j=i;j6|M2) 物理块m必须在26之间请重新输入m: for(int i=0;i+)/初始化页面基本情况 pagei.num=0; pagei.time=m-1-i; i=0;1:FIFO页面置换2:LRU页面置换3:OPT页面置换请选择页面置换算法:c; system(cls); if(c=1)/FIFO页面置换 n=0; cout FIFO算法页面置换情况如下: while(i=0) /当前页面在内存中 cout /输出当前页pi.num 不缺页 i+; /i加1 else /当前页不在内存中 if(t=M)t=0; else n+; /缺页次数加1 pa

14、get.num=pi.num; /把当前页面放入内存中 cout print(page); /打印当前页面 t+; /下一个内存块 /指向下一个页面 缺页次数:n 缺页率:n/m=0)/如果已在内存块中 paget.time=0;/把与它相同的内存块的时间置0 for(a=0;a else/如果不在内存块中 int a=0; for(t=0;tt)q=t;/把空内存块中块号最小的找出来 pageq.num=pi.num; n+; cout print(page); i+; else int temp=0,s; for(t=0;t+)/寻找内存块中下次使用离现在最久的页面 if(tempCoun

15、t(page,i,t,p) temp=Count(page,i,t,p); s=t; /把找到的块号赋给s pages.num=pi.num; n+; cout print(page); while(c=1|c=2|c=3);return 0;第五章 调试 程序在运行的情况下,进入主界面输入菜单,如图(41)所示:页面长度:输入16,分配的物理块:输入4, 主界面(图41)选1,进入FIFO算法页面置换,如图(42)所示 FIFO算法置换(图42)选2,进入LRU算法页面置换,如图(43)所示 LRU算法置换(图43)选3,进入OPT算法页面置换,如图(44)所示 OPT算法置换(图44) 第

16、六章 体会与自我评价这次操作系统课程设计,让我们对操作系统有了更深的认识,首先操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统内核与基石。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:我们这次课程设计的题目是页面置换算法,是属于存储器管理。在进程运行过程中,若其访问的页面不在内存而需把它们调入内存,但内存以无空闲空间时,为了保证该进程能正常的运行,系统必须从内存中调出一页程序或数据送磁盘的兑换区中,但应将哪个页面调出,需根据一定的算法来确定。通常,把选择换成页面的算法称为页面置换算法。通过本次课程设计,我们对页面置换算法的了解更加的深刻。主要有以下置换算法: OPT

17、(最佳置换算法)、FIFO(先进先出置换算法)、LRU(最近最久未使用算法)。每种算法都有各自的优缺点,OPT算法是实际中不能实现的,但是可以利用该算法去评价其它算法;FIFO算法与进程实际运行的规律不相适用,因为在进程中,有些页面经常被访问;LRU算法是根据页面调入内存后的使用情况进行决策的。在这次课程设计中,遇到了一些困难,例如怎么实现各种算法,如何进行函数调用及对数据的限制操作等,在遇到这些困难的时候,我们会去查阅资料,仔细看书,尝试用不同的方法解决,在各种方法中选择一种最好的方法,有的时候会碰到不知道如何实现的函数,我们会查看MSDN,这次是用的+语言做的,每一步都是自己独立完成的,这

18、次课程设计我最大的收获是学以致用,通过这次设计我们看到了自己学习的能力,我们相信在以后的学习中,会更加的努力上进。最后,还非常感谢辛苦的操作系统老师,首先,因为他辛苦的为我们讲解操作系统这门课,让我们对操作系统有了一定的了解,为这次课程设计奠定了良好的基础,其次,还要感谢他认真指导我们的这次课程设计,给了我们这次总体运用自己能力的机会,我们坚信:只要功夫深,铁杵磨成针。第七章 参考文献1计算机操作系统 汤小丹,梁红兵,哲凤屏 西安电子科技大学出版社 2007.5 2visual C+ 高级编程范例 谭桂华等 清华大学出版社 2004.5 3操作系统教程与实验 胡明庆,高巍,钟梅 清华大学出版社 2007.1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1