页面置换算法

进程“抖动”

进程页面置换过程中,刚被换出的页面很快又要被访问,需要将它重新调入,此时又需要再选一页调出;而此时刚被调出的页面很快又被访问,又需将它调入,如此频繁地更换页面,以致一个进程在运行中把大部分时间都花费在页面置换工作上,我们称该进程发生了“抖动”。

最佳(Optimal)置换算法

最佳置换算法是一种理论上的算法,其所选择的被淘汰页面将是以后永不使用的,或许是在最长(未来)时间内不再被访问的页面。
采用最佳置换算法通常可保证获得最低的缺页率,但由于人们目前还无法预知,一个进程在内存的若干个页面中,哪一个页面是未来最长时间内不再被访问的,因而该算法是无法实现的,但可以利用该算法去评价其它算法。

先进先出(FIFO)页面置换算法

FIFO算法是最早出现的置换算法,该算法总是淘汰最先进入内存的页面,即选择在内存驻留时间最久的页面予以淘汰。
FIFO算法所依据的条件是各个页面调入内存的时间,而页面调入的先后并不能反映页面的使用情况,因此该算法性能较差。

最近最久未使用(LRU:Least Recently Used)置换算法

LRU页面置换算法是根据页面调入内存后的使用情况做出决策的。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰。

最少使用(LFU:Least Frequently Used)置换算法

LFU置换算法选择在最近时期使用最少的页面作为淘汰页。

Clock置换算法

  • 简单的Clock置换算法
    当利用简单Clock算法时,只需为每一页设置一位访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列。当某页被访问时,其访问位被置1。置换算法在选择一页淘汰时,只需检查页的访问位。如果是0,就选择该页换出;若为1,则重新将它置0,暂不换出,给予该页第二次驻留内存的机会,再按照FIFO算法检查下一个页面。当检查到队列中的最后一个页面时,若其访问位仍为1,则再返回到队首去检查第一个页面。
    但因该算法只有一位访问位,只能用它表示该页是否已经使用过,而置换时是将未使用过的页面换出去,故又把该算法称为最近未用算法或NRU(Not Recently Used)算法。
  • 改进型的Clock置换算法
    在改进型Clock算法中,除须考虑页面的使用情况外,还须再增加一个因素--置换代价。这样,选择页面换出时,既要是未使用过的页面,又要是未被修改过的页面。把同时满足这两种条件的页面作为首选淘汰的页面。由访问位A和修改位M可以组合成下面四种类型的页面:
    • 类(A=0,M=0):表示该页最近既未被访问,又未被修改,是最佳淘汰页。
    • 类(A=0,M=1):表示该页最近未被访问,但已被修改,并不是很好的淘汰页。
    • 类(A=1,M=0):表示最近已被访问,但未被修改,该页有可能再被访问。
    • 类(A=1,M=1):表示最近已被访问且被修改,该页可能再被访问。
      改进型Clock算法的执行过程可分为以下三步:
    • 从指针所指示的当前位置开始,扫描循环队列,寻找A=0且M=0的第一类页面,将所遇到的第一个页面作为所选中的淘汰页。在第一次扫描期间不改变访问位A。
    • 如果第一步失败,即查找一轮后未遇到第一类页面,则开始第二轮扫描,寻找A=0且M=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第二轮扫描期间,将所有扫描过的页面的访问位都置0。
    • 如果第二步也失败,亦即未找到第二类页面,则将指针返回到开始的位置,并将所有的访问位复0。然后重复第一步,即寻找A=0且M=0的第一类页面,如果仍失败,必要时再重复第二步,寻找A=0且M=1的第二类页面,此时就一定能找到被淘汰的页。

该算法与简单Clock算法比较,可减少磁盘的I/O操作次数。但为了找到一个可置换的页,可能须经过几轮扫描。换言之,实现该算法本身的开销将有所增加。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8.1虚拟存储的需求背景 虚拟内存是非连续内存分配的一个延续,非连续内存分配在存储空间内可以连续也可以不连续。虚拟...
    龟龟51阅读 5,908评论 2 6
  • 进程运行时,若其访问的页面不在内存而需将其调入,但内存已无空闲空间时,就需要从内存中调出一页程序或数据,送入磁盘的...
    saviochen阅读 3,084评论 0 6
  • 最佳置换算法 先进先出(FIFO)置换算法 最近最少未使用(LRU)算法 1.最佳置换算法(理想化算法) 淘汰最久...
    Corbin___阅读 2,573评论 0 2
  • 我第一次听到“演员赵丽颖”这个名字的时候,是高二时,一次下晚自习后,我和好朋友一起走在回家的路上。我们一向喜欢在路...
    唐桃桃阅读 438评论 0 3
  • “为纪念被用坏的菜刀,和菜刀下牺牲的鱼虾鸟兽们,特建此墓,以慰在天之灵。” 菜刀和鱼虾都祭奠的墓,听起来有些匪夷所...
    80天旅行阅读 461评论 0 0