【问题标题】:page replacement algorithms: optimal, FIFO, and LRU页面替换算法:优化、FIFO 和 LRU
【发布时间】:2017-05-23 13:41:01
【问题描述】:

我有一个问题,我不确定。

一共有三个物理页面的计算机内存,以及页面引用顺序: 1、2、3、2、1、4、3、5、6、4、3、5、3、5、6、7、2、1、5、7。使用最优、FIFO和LRU页面替换算法.

我试过了,但我不确定我的答案。 另外,在这种情况下,哪一个是好的算法?为什么?

我的回答:

最佳:PF 10

先进先出:PF 12

LRU:PF 16

【问题讨论】:

  • 您的计算看起来正确。那么你剩下的作业有什么问题呢?你可能担心或想太多了。似乎只有 2 个可能的答案。要么这是一个现实世界的问题,FIFO 是最好的,因为它的 PF 最少,要么这是一个可塑性的问题,optimal 是最好的,因为如果你知道页面加载顺序,它总是最好的策略前进 - 因此Bélády's Algorithm 的名称 optimal

标签: algorithm operating-system


【解决方案1】:

如果我们从理论上分析,那么最优页面替换算法是最好的。 原因:

  • 它最大限度地减少页面错误(所有页面替换算法中的最少页面错误)
  • 它克服了 Belady 的异常

但是这个算法的问题是,它需要对所需页面的未来了解,即需要在内存中获取哪个页面,这并非总是可能的。

如果页面是已知的,那么您必须使用 OPR 算法。否则,根据页面需求,分析每个算法的成本并实施导致页面错误最小的页面替换策略。

【讨论】:

    【解决方案2】:

    任何页面替换的主要内容是页面的访问模式/序列。此访问权限因操作系统的运行时工作负载而异。

    如果我们可以清楚地看到访问模式并可以预测未来需要的页面,那么“最佳页面替换”是最好的。正如 sanjay 在另一个答案中所提到的,它最大限度地减少了页面错误。

    如果模式无法预测,LRU 可能适用于大多数实际工作负载。但是一些工作负载可能会显示 FIFO 优于 LRU。您可以在此处找到相同的discussion

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多