使用最近最少使用计算页面错误

Calculating page faults with Least Recently Used

我不熟悉内存管理和页面替换算法。我找到并打印了一个关于最近最少使用算法的问题,但不幸的是,我无法确定我的答案和思考过程是否正确。

我正在努力通过阅读免费教科书和观看 YouTube 上的示例来巩固我对算法的理解。但是,如果您能解释我是否掌握了这个概念,并提供有关如何改进我的答案和纠正我的思维过程的任何建议,我将不胜感激。 请看下图,其中粗体数字是页面错误,带星号的数字是页面点击(我计算了 21 个页面错误):

P.S。如果难以横向阅读,我很抱歉,但这是我可以在没有小数字的情况下将整个 table 放入图像中的唯一方法。

我觉得是正确的。 (因此在您的思维过程中没有发现任何有趣的错误;抱歉。)

在页面错误的情况下,LRU(最近最少使用)在最后访问的页面 table 中查找该页面并将其替换为新页面。在你的图表中,当你用 1 替换 2 时,我可以看到第 6 页错误中的错误。这就是我在这个算法中的想法:

  • 在页面 table 中查找页面(如果页面命中则移动下一步)

  • 如果出现页面错误,则找出页面[=40=中最后访问的页面]。(与[=40=中最后被替换的页面无关) ].)

  • 用出现页面错误的新页面替换该页面。

以您的案例为例:

  1. 您收到 1 的页面错误。
  2. 页面 table 中的第一个元素是最后访问的 5(给它编号 0)。
  3. 第二个元素是 2,2 步前访问过。
  4. 第三个元素是 3,在 5 步之前访问过。
  5. 第四个元素是 4 ,在 1 步之前访问过。

因此您需要将 3 替换为上次访问的新页面。