【发布时间】:2011-06-15 13:51:01
【问题描述】:
所以 Belady 的异常指出,当使用 FIFO 页面替换策略时,当添加更多页面空间时,我们会遇到更多页面错误。
我的直觉告诉我们,当我们添加更多的页面空间时,我们应该减少或最多相同数量的页面错误。
如果我们将 FIFO 队列视为管道,那么添加更多页面空间就像让管道变得更大:
____
O____O size 4
________
O________O size 8
那么,为什么会出现更多页面错误?我的直觉是,使用更长的管道,您需要更长的时间才能开始出现页面错误(因此,使用无限管道,您将没有页面错误),然后您将遇到同样多的页面错误,并且通常与较小的管道一样。
我的推理有什么问题?
【问题讨论】:
-
不确定您在此处寻找的确切内容 - WP 页面有一个实际示例:en.wikipedia.org/wiki/Belady's_anomaly
-
你读过Wikipedia article吗?它被称为异常,因为它与大多数人的直觉背道而驰。 :)
-
在这种特殊情况下,拥有更多页框会导致算法将页面保留更长时间,最终导致稍后使用频率降低,并且它们不会足够快地从 FIFO 中退出以释放空间对于最终需要的页面。但是我不知道您可以从中获得一般的直觉。这就是可能发生的事情。
-
“在这种特殊情况下,拥有更多页框会导致算法将页面保留更长时间,最终导致以后使用频率降低”我不明白这会产生什么影响。为什么根本不把它们放在内存中会更好(当你有一个更小的管道时会发生什么)
-
吞噬:在这种情况下,当然会更好,但 FIFO 无法预测未来。你看过维基百科上的例子吗?
标签: operating-system virtual-memory page-fault