使用最近最少使用

时间:2016-04-27 22:59:34

标签: algorithm operating-system lru page-fault page-replacement

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

我正在努力通过阅读免费教科书和在YouTube上观看示例来巩固我对算法的理解。但是,我非常感谢你能解释我是否掌握了这个概念,并提出了如何改进我的答案并纠正我的思考过程的任何建议。 请看下面的图像,其中粗体数字是页面错误,带星号的数字是页面命中(我计算了21页错误): enter image description here

P.S。如果难以横向阅读,我很抱歉,但这是我可以在图像中使用整个表格而没有小数字的唯一方法。

2 个答案:

答案 0 :(得分:1)

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

  • 在页面表中查找页面(如果页面命中,则接下来移动)

  • 如果发生页面错误,请找出页面表中最后访问的页面。(它与表格中最后一个替换页面无关。)

  • 将该页面替换为我们收到页面错误的新页面。

以你的案例为例:

  1. 您收到1页错误。
  2. 页表中的第一个元素是最后访问的5(给它编号0)。
  3. 第二个元素是2,在2步前访问过。
  4. 第三个元素是3,在5步之前访问过。
  5. 第四个元素是4,在1步之前访问过。
  6. 所以你需要用最后访问的新页面替换3。

答案 1 :(得分:-1)

对我而言看起来是正确的。 (因此,在你的思考过程中并没有发现任何有趣的错误;抱歉。)