对于最近最久未使用算法(LRU, Least Recently Used)
,是不会出现belady
异常(belady anomaly)的,证明如下:
设分配给当前进程的页面数量为n
,令 S n S_n Sn为当前时刻t
,某个进程驻留在内存中的所有页面的集合。要证明LRU
不会出现belady
异常,即证对于任意的k > 0
,给进程分配的页面数量为n + k
时,对于同一个页面访问序列, S n S_n Sn总是 S n + k S_{n+k} Sn+k的一个子集。不妨简单地令k = 1
,k > 1
的情况同理。以下归纳地证明该结论。
t = 1
时, S n S_n Sn和 S n + 1 S_{n+1} Sn+1都只包含同一个页面,结论成立。- 假设 t < t k − 1 t < t_{k - 1} t<tk−1时,该结论成立。
- 当 t = t k t = t_k t=tk时,设此时访问的页面为 c k c_k ck