我了解到由于计算开销,真正的LRU没有在虚拟内存系统中实现。那么,为什么LRU算法在文件缓存中可行?
我认为原因可能是inode中的时间字段。这是对的吗?
答案 0 :(得分:2)
这是关于速度的。
虚拟内存状态位必须以纳秒更新,因此需要硬件支持,并且LRU的状态信息在硬件中实现起来很昂贵。例如。时钟算法旨在以较低的硬件支持来近似LRU。
文件系统操作大约为毫秒。 CPU可以在很短的时间内在软件中执行LRU。从CPU的角度来看,毫秒是如此“缓慢”(190千条指令)只能防止少量的缓存未命中产生巨大的回报。