操作系统新素材.ppt

  1. 1、本文档共589页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 5、 页面置换算法 ——Page Replacement Algorithms 当要将一页面并装入入到全满的内存中时,必须把已在内存中的某一页置换掉。用来选择置换哪一页的规则叫做页面置换算法。 颠簸(抖动)现象 在虚存中,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃。这种现象称为颠簸或抖动。例如,一个每隔几条指令就发生一次页面故障的进程称为在颠簸(因为一条指令的执行只需几纳秒,而每从磁盘上读入一个页面则常需几十毫秒)。 系统发生颠簸的原因 页面置换算法不合理 分配给进程的物理页面数太少 * (1)最佳页面置换换算法(OPT算法) 从内存中置换出以后永不再使用的页面;如无这样的页面,则选择以后最长时间内不需要访问的页。 1966年Belady提出的理想算法,但无法实现,因为页面访问的顺序是很难预知的。 主要用于评价其他置换算法。 * 例:设某请求分页系统采用固定分配局部置换策略,一进程的页面走向为2,3,2,1,5,2,4,5,3,2,5,2,该进程分得3个物理块,初始为空。 OPT 2 3 2 1 5 2 4 5 3 2 5 2 2 3 3 1 5 5 5 5 5 5 5 5 2 2 3 3 3 3 3 3 2 2 2 2 2 2 4 4 4 4 4 4 x x ? x x ? x ? ? x ? ? 缺页次数=6次 缺页率=6/12=50% * (2)先进先出页面置换算法(FIFO算法) 置换驻留在内存时间最长的页面,即先进入内存的页面先被置换掉。理由是:最先进入内存的页面不再被访问的可能性最大。 实现简单:只需把进程在内存的页面按先后次序链成1个队列,并设置1个替换指针,使它总是指向内存中最老的页面。 缺点:效率不高 * 上例: FIFO 2 3 2 1 5 2 4 5 3 2 5 2 2 3 3 1 5 2 4 4 3 3 5 2 2 2 3 1 5 2 2 4 4 3 5 2 3 1 5 5 2 2 4 3 x x ? x x x x ? x ? x x 缺页次数=9次 缺页率=9/12=75% * (3)最近最久未使用页面置换算法 (LRU算法) 选择在最近一段时间最久未使用的页面予以置换。 根据程序局部性原理,那些刚被使用过的页面,可能马上还要被使用,而在较长时间里未被使用的页面,可能不会马上使用到。 * 上例: LRU 2 3 2 1 5 2 4 5 3 2 5 2 2 3 2 1 5 2 4 5 3 2 5 2 2 3 2 1 5 2 4 5 3 2 5 3 2 1 5 2 4 5 3 3 x x ? x x ? x ? x x ? ? 缺页次数=7次 缺页率=7/12=58.3% * 该算法理论上性能好,但实现代价高(需硬件支持,如:为进程每个内存页面设一计时器或寄存器,或为进程所有内存页面设一栈/链表)。 * LRU的硬件解法: 系统为每页设置一个寄存器R,每当访问这一页时,将该页对应的寄存器R置1,以后每个时间间隔将所有的R左移一位,当淘汰一页时就选择R值最大的页。也就是说R值越大,对应的页未被使用的时间越长。所以淘汰的是最久未使用的页。显然,R的位数越多越精确。但系统硬件成本也就越高。 * LRU软件解法: 设置一个页号栈,当一个页面被访问时,就立即将它的页号压入页号栈,并检查页号栈中是否有与刚压入栈顶的相同的页号,若有,则从页号栈中抽出,以保证页号栈中无相同的页号。当系统要淘汰一节时,总是从页号栈底取出一个页号淘汰,即淘汰的页是最久未使用的。 * (4)二次机会(SC, Second Chance)置换算法 ——FIFO法的一种改进实现 实现:页表目中增设访问位R,初

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档