我正在从 Operating System Concepts by Galvin 阅读 Virtual Memory 并看到一个声明,它说:
“ 我们可以将 LRU 策略视为时间上向后看而不是向前看的最佳页面替换算法。 “
然后在另一行,它说:
" 如果我们让 Sr
是一个引用字符串 S
的反面,那么 S
上 OPT 算法(Optimal Page Replacement)的页面错误率与 Sr
上的 OPT 算法的页面错误率相同,类似地, S
上 LRU 算法(最近最少使用)的页面错误率与 Sr
上的 LRU 算法的页面错误率相同。”
因此,如果 LRU
是 OPT
及时向后看,那么字符串和它的反向缺页错误是一样的,因为根据我对第一条语句的理解:如果 LRU 的字符串 S 上的缺页错误是 x
并且 OPT 是 y
,那么 LRU 和 OPT 必须分别通过 y
和 x
在它的反向字符串 Sr 上出现页面错误。
为什么他们的 每次都必须与每个字符串集的 相同,并且是相反的?
LRU:最近最少使用的页面替换
OPT:最佳页面替换
最佳答案
措辞令人困惑,但并不是说 pfr(LRU(S))==pfr(OPT(S))
,因为这显然不是真的。据说它们显示相同的特征,因为 LRU(S)
是有效的 OPT(Sr)
,所以 pfr(LRU(S))==pfr(LRU(Sr))
。
所以你的分析是正确的:它们有不同的页面错误率。
关于memory-management - 为什么在 LRU 和 Optimal Page Replacement Algorithm 中,引用字符串及其反向页面错误是相同的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24790629/