【问题标题】:Is it possible for a FIFO page-replacement strategy to outperform LRU?FIFO 页面替换策略是否有可能胜过 LRU?
【发布时间】:2012-03-05 15:59:06
【问题描述】:

作为我的操作系统作业的一部分,我被要求比较给定页面访问序列的先进先出和最近最少使用的页面替换策略产生的页面错误数量。令人困惑的是,FIFO 产生的页面错误似乎比 LRU 少。这可能吗,还是我做错了?

【问题讨论】:

  • 当然可以。没有一种算法在页面替换方面是最好的。 LRU 在现实世界的使用中优于 FIFO,但肯定有可能建立一个相反的情况。
  • 为您自己的启迪而建议的扩展:给定 any 两种页面替换策略 X 和 Y,证明存在一个访问序列,使得 X 的页面错误少于 Y。

标签: algorithm operating-system page-replacement


【解决方案1】:

是的,FIFO 有可能击败 LRU。我能想到的最小的例子,

缓存大小:2 页。

访问模式:A、B、A、C

之后,LRU 缓存包含“A,C”,而 FIFO 缓存包含“B,C”。到目前为止,他们各自错过了 3 次。因此,如果下一页访问是“B”,则 FIFO 优于 LRU。如果是“A”,则 LRU 优于 FIFO。如果是其他任何东西,它们将保持绑定。

【讨论】:

  • 这必须是最小的例子:当然不可能有 cachesize=1 的例子,因为当 cachesize=1 时 LRU=FIFO。并且没有 cachesize=2, totalnumaccesses=4 的例子是可能的,因为这样的例子必须涉及在第 3 次访问时驱逐,但是 LRU 和 FIFO 总是在第 3 次访问时驱逐相同的项目(如果有的话),所以这里没有区别。
【解决方案2】:

在不给你答案的情况下给你提示有点困难。你为什么不尝试为自己设置问题?把自己放在老师的脑海里,一个扭曲的黑暗地方,试着以一种能让你的(同学)学生深入思考的方式来设置问题。

【讨论】:

  • 理论上它显然取决于给定的序列。并为“扭曲的黑暗地方”+1,这是一个很好的建议:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2013-12-06
  • 2023-03-14
相关资源
最近更新 更多