操作系统课程设计报告--页面淘汰算法实现.docVIP

操作系统课程设计报告--页面淘汰算法实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课程设计报告 课程设计题目:页面淘汰算法实现 基本要求: 设计随机页面序号产生程序,并说明随机的性能和其性能可能对算法的影响 编写页面淘汰算法(FIFO、OPT、LRU) 结果数据的显示或提取 结果数据的分析 几点说明: 设计并绘制算法流程,附加说明所需的数据结构 如何标记时间的先后、最久的将来、最久未被使用 三、算法描述: (1)先进先出页面置换算法(FIFO) FIFO算法这是最早出现的置换算法,该算法总是淘汰最先进入内存的页面,即选择在 内存中驻时间最久的页面予以淘汰。该算法实现简单只需把一个进程已调入内存的页面, 按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。 但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如, 含有全局变量、常用函数、例程等的页面,FIFO算法并不能保证这些页面不被淘汰。 (2)最佳置换算法(OPT) 它是由Belady于1966 年提出的一种理论上的算法。其所选择的被淘汰页面,将是以后 永不使用的或许是在最长(未来)时间内不再被访问的页面。采用最佳置换算法,通常可保证 获得最低的缺页率。但由于人目前还无法预知一个进程在内存的若干个页面中,哪一个页面 是未来最长时间内不再被访问的,因而该算法是无法实现的,但可以利用此算法来评价其它 算法。 (3)最近最久未使用置换算法(LRU) 最近最久未使用(LRU)置换算法,是根据页面调入内存后的使用情况进行决策的。由 于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似, 因此,LRU 置换算法是选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访 问字段,用来记录一个页面自上次被访问以来所经历的时间t,,当须淘汰一个页面时,选择 现有页面中其t值最大的,即最近最久未使用的页面予以淘汰。 总体设计 根据要求设计页面淘汰算法的活动图 运行程序进入主页面,在正上方,已经通过随机生成函数生成了页面号,在其下方,显 示可选项:0、退出程序1、FIFO算法2、OPT算法3、LRU算法。根据需要,选择相应的 法,程序自动生成页面淘汰的先后顺序,以及置换次数和缺页次数,并打印在下方,执行完 以后,再次进入主页面,到输入0,退出程序。 算法流程图 FIFO算法流程图: OPT算法流程图 LRU算法流程图: 五、详细设计 首先根据程序要求,我们分别定义两个宏,用以存放我们的物理块数目以及页面数目,再定义一个结构体,用以物理块的存储,代码如下: #define MemPageCount 4 #define InstructionCount 20 struct page { int serial; //页面号 int time; //时间计数 }mempage[MemPageCount]; 其次,建立主函数,根据程序需要,定义相应的变量,建立switch语句,用以算法的选择,部分定义如下: int i,j,k,m,n; //指令页面集合,可以考虑让页面指令集合随机生成 int instruction[InstructionCount]; int mem_counter; //内存页面集合计数器 int switch_counter; //置换次数 最后,根据算法流程图,实现相应算法的代码编写。 结果分析: 物理块数为3、页面数目为20: 物理块数为4、页面数目为20: 根据结果,我们不难发现,OPT算法,是三种算法中性能最好的,它的置换次数最少,LRU次之,,不过性能最差的还是FIFO,由于缺页率=缺页次数/总的页面数,所以我们不难发现,随着物理块数的增加,缺页率都相应有所增加,但是OPT算法的增加较为明显,即产生了belady现象。 课程设计总结: 通过本次课程设计,让我对页面淘汰算法有了充分的了解,我不仅对我们常用的算法进行了编写,还对一些理想的算法也进行了编写,并且通过适当的方法,得以了验证。 就该程序而言,随机性使得程序出现了更多的可能性,为我们验证算法提供很大的方便,电脑自动分配,大大的节约了我们的时间,但是我们通过实验不难发现,如果所设的页面项目过大,也会影响我们算法的性能执行效率。对我们所涉及的算法,让我有很大的感触。 在FIFO 算法中,无论有无发生缺页或者置换,都需要对每个在内存中的页面的time 值进行增加操作,以保持最先进入的那个页面的time 值是最大的;一个新进来的页面,其time值设置为0。当然,该算法也可以通过队列结构来实现,利用队列的先进先出(FIFO)特性完成,无需设置time字段。distance

文档评论(0)

ze122230743 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档