Belady现象:
采用FIFO算法时,如果对—个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。Belady现象可形式化地描述为:一个进程户要访问M个页,OS分配舻个内存页面给进程P;对一个访问序列S,发生缺页次数为PE(占,N)。当N增大时,PE(S,N)时而增大时而减小。Belady现象的原因是FIFO算法的置换特征与进程访问内存的动态特征是矛盾的,即被置换的页面并不是进程不会访问的。
先进先出算法(FIFO)。选择装入最早的页面置换。可以通过链表来表示各页的装入时间先后。FIFO的性能较差,因为较早调入的页往往是经常被访问的页,这些页在FIFO算法下被反复调入和调出,并且有Belady现象。
维基百科给出的示例:
Page Requests: 3 2 1 0 3 2 4 3 2 1 0 4
Newest Page: 3 2 1 0 3 2 4 4 4 1 0 0
3 2 1 0 3 2 2 2 4 1 1
Oldest Page: 3 2 1 0 3 3 3 2 4 4
× × × × × × × × ×
Page Requests: 3 2 1 0 3 2 4 3 2 1 0 4
Newest Page: 3 2 1 0 0 0 4 3 2 1 0 4
3 2 1 1 1 0 4 3 2 1 0
3 2 2 2 1 0 4 3 2 1
Newest Page: 3 3 3 2 1 0 4 3 2
× × × × × × × × × ×
页框从3个增加到4个 但缺页从9个增加到10个