如何执行LRU / LFU之类的页面替换策略?硬件MMU是否跟踪参考计数(对于LFU)?是否有可能将其作为内核的一部分来实现?
[通常,硬件为跟踪访问哪些页面提供了最小的支持,然后OS内核使用它来实现某种伪LRU分页策略。
例如,在x86上,每当访问页面时,MMU都会在PTE(页面表条目)中将A位置1。因此,内核会不断循环使用所有正在使用的内存,并检查并清除该位。自上次扫描以来,已访问任何设置了该位的页面,而自上次扫描以来,该位仍处于(仍)清零的任何页面都未被访问。这些页面可供替换。细节因操作系统而异,但通常会有某种队列结构来跟踪这些页面,并替换最旧的页面。