0

我了解到,由于计算开销,真正的 LRU 没有在虚拟内存系统中实现。那么,为什么 LRU 算法在文件缓存中是可行的呢?

我认为原因可能是 inode 中的时间字段。那是对的吗?

4

1 回答 1

3

这是关于速度的。

虚拟内存状态位必须在纳秒内更新,因此需要硬件支持,而 LRU 的状态信息在硬件中实现的成本很高。例如,时钟算法被设计为用较便宜的硬件支持来逼近 LRU。

文件系统操作是毫秒级的。CPU 可以在很短的时间内在软件中执行 LRU。从 CPU 的角度来看,毫秒是如此“慢”(19 万条指令),以至于仅防止少量缓存未命中就会产生巨大的回报。

于 2013-04-22T02:54:49.460 回答