(3)最近最久未使用算法(Least Recently Used,LRU)当需要淘汰某一页时,选择在最近一段时间内最久没有使用过的页,把它淘汰。这依据的是程序局部性原理,即如果某页被访问,它可能马上还要被访问;相反,如果某页长时间未被访问,它可能最近也不可会被访问。这种算法实现的方法有两种:第一,在页表中设置访问字段,记录该页自上次被访问以来所经历的时间t,当需要淘汰一个页面时,选择时间最久的那个页面。将新页的 t 置 0,其它页t+1。 缺点:需要不断对前面访问过的页面进行记录和更新,如果由软件完成修改,则系统开销大;如果由硬件完成,则成本将加大。 第二,利用一个特殊的栈来保存当前使用的各个页的页号。当访问某页时,则将该页的页号从栈中抽出,再将它压入栈顶。因此,栈顶始终是最新被访问的页面的编号,而栈底则是最久未使用的页号。淘汰一页时,从栈底抽出一个页号。 缺点:每次产生中断,都要对栈表进行修改,整个系统性能将成倍降低,硬件开销大。 例:给定一个访问串为(6,1,3,2,1,6,1,4,5,3,1,3,5,0,2,0,1,6,1,0),可用空闲页面数为3,计算缺页中断率。缺页次数=13缺页中断率=13/20=65% (4)最不经常使用算法(Least Frequently Used,LFU)选择到当前时间为止被访问次数最少的页置换。其实现方法是每页设置一个访问计数器,每当页面被访问
原创力文档

文档评论(0)