📜  近期未使用(NRU)页面替换算法

📅  最后修改于: 2021-08-24 04:45:03             🧑  作者: Mango

它是页面替换算法。该算法从编号最小的非空类中随机删除一个页面。该算法的隐含之处在于,与频繁使用的干净页面相比,最好至少删除一个时钟滴答之后仍未引用的已修改页面。

它易于理解,实现起来效率适中,并且所提供的性能虽然肯定不是最佳的,但可能是足够的。修改页面时,将设置修改后的位。当需要替换页面时,操作系统会将页面分为4类。

  • 0:-未引用,未修改
  • 1:-未引用,已修改
  • 2:-引用,未修改
  • 3:-已引用,已修改

在上述4个类别中,如果存在,则NRU将替换“未引用,未修改”页面。请注意,此算法暗示“修改但未引用”的重要性不如“未修改并参考”重要。

例子 –

Page Referenced Modified
0 1 0
1 0 1
2 0 0
3 1 1

  • 情况1暗示未引用和修改。
  • 情况2表示未引用和未修改。
  • 情况3暗示引用和修改。
  • 情况0表示“引用”和“未修改”。

算法 :
从给定的参考字符串, NRU将从随机编号最低的非空类中随机删除一个页面。该算法的隐含之处在于,与频繁使用的干净页面相比,最好删除至少一个时钟滴答(通常为20毫秒)中未引用的修改页面。

例子 –