欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

10 页面替换算法中的 Belady 现象、工作集、驻留集 - 答:因为 LRU 算法符合堆栈算法的特点,而 FIFO 算法不符合堆栈算法的特点。堆栈算法的特点是给出的物理页帧越多,产生的缺页中断次数就越少。 思考时钟算法和增强时钟算法会产生贝拉迪现象吗? LRU、FIFO 和时钟的比较:

最编程 2024-07-02 09:11:59
...
  • LRU算法和FIFO算法本质上都是先进先出的思路。只不过LRU针对页面最近访问的时间来进行排序。所以需要在每一次页面访问的时候动态地调整各个页面之间的先后顺序(有一个页面最近访问的时间变了);而FIFO是针对页面进入内存的时间来进行排序,这个时间是固定不变的。所以页面之间的先后顺序是固定的。如果一个页面在进入内存后没有被访问。那么它最近访问的时间就是它进入内存的时间。换句话说,如果内存当中所有的页面都未曾访问过,那么LRU算法就退化为FIFO算法。

  • LRU算法性能比较好,但系统的开销比较大;FIFO算法系统的开销比较小,但有可能会发生Belady现象。因此,折中的办法就是Clock算法,在每一次页面访问时,它不必动态的区调整页面在链表中的顺序,而仅仅是做一个标记,然后等到发生缺页中断的时候,再把它移动到链表尾端。对于内存中那些未被访问的页面,Clock算法的表现和LRU一样好;而对于那些曾经被访问过的页面,它不能像LRU算法那样,记住它们准确的位置。