我正在从 Operating System Concepts by Galvin 阅读 Virtual Memory 并看到一个声明,它说:

我们可以将 LRU 策略视为时间上向后看而不是向前看的最佳页面替换算法。

然后在另一行,它说:

" 如果我们让 Sr 是一个引用字符串 S 的反面,那么 S 上 OPT 算法(Optimal Page Replacement)的页面错误率与 Sr 上的 OPT 算法的页面错误率相同,类似地, S 上 LRU 算法(最近最少使用)的页面错误率与 Sr 上的 LRU 算法的页面错误率相同。

因此,如果 LRUOPT 及时向后看,那么字符串和它的反向缺页错误是一样的,因为根据我对第一条语句的理解:如果 LRU 的字符串 S 上的缺页错误是 x 并且 OPT 是 y ,那么 LRU 和 OPT 必须分别通过 yx 在它的反向字符串 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/

10-12 16:14