有人可以解释一下为什么 LRU 对于页面替换算法不实用,它对于替换缓冲区缓存中的文件缓冲区是完全可以接受的。
问问题
293 次
2 回答
0
为了使 LRU 策略成功,您需要一个具有良好时间局部性的用例(应该重用最近使用的对象)以及一种跟踪对象何时被使用的简单方法。文件和内存都符合第一个标准。文件也符合第二个标准——用户通常会执行系统调用来访问所需的数据,从而轻松更新 LRU。但是,没有廉价的方法来标记何时访问内存,因为操作系统通常不参与内存访问。这使得页面替换系统无法轻松确定排序。
一种可能的解决方法是通过 NRU(最近未使用)来近似 LRU,其中页面偶尔会在访问时设置为错误,并且在错误处理程序中完成使用跟踪。
于 2018-04-27T07:49:47.913 回答
0
LRU 有一种使用计数器的方法。每次发生页面调用时,我们使用 CPU 时钟来检查时间。因此,如果发生页面替换,您将选择最旧的页面。这种方法的缺点是,每当发生替换时,必须找到页表中最旧的页,并且每次更改页表时都必须更改页的时间。
于 2018-04-23T03:16:32.527 回答