重新调页
缺页故障要么是新页故障要么是重新调页故障。 如果没有最近引用页面的记录的话,会出现一个新页故障。 而出现重新调页故障是指一个知道其最近已经引用的页再次被引用,但由于该页在上次访问后已经被替换(可能写到磁盘上)而在内存中找不到它。
理想的页面替换策略通过总是替换那些不会再次引用的页面帧而完全减少重新调页故障(假设有足够的实内存)。 因而重新调页故障数是页面替换算法有效性的一个相反评测标准,算法将频繁被重用的页面保存在内存中,从而降低了总体 I/O 需求并潜在地改善了系统性能。
为了分清一个缺页故障是新页故障还是重新调页故障,VMM 维护一个重新调页历史记录缓冲区,它包含 N 个最近缺页故障的页面标识,其中 N 是内存可保留的帧数。 例如,512 MB 内存需要一个 128 KB 的重新调页历史记录缓冲区。 在页面调进时,如果它的标识可在重新调页历史记录缓冲区中找到,那么将它计为一个重新调页。 VMM 还可以分别评估计算内存重新调页率和文件内存重新调页率,只需为每种类型的内存维护重新调页故障计数即可。 每次页面替换算法运行时都将重新调页率乘以 0.9,这样可比历史重新调页活动更有力地反映最近的重新调页活动。