https://www.cnblogs.com/Leophen/p/11397699.html
进程运行时,若其访问的页面不在内存而需将其调入,但内存已无空闲空间时,就需要从内存中调出一页程序或数据,送入磁盘的对换区,其中选择调出页面的算法就称为页面置换算法。
好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页面先调出
(优先淘汰最早进入内存的页面)
FIFO 算法是最简单的页面置换算法。FIFO 页面置换算法为每个页面记录了调到内存的时间,当必须置换页面时会选择最旧的页面
“FIFO 算法当进程分配到的页面数增加时,缺页中断的次数可能增加也可能减少”
FIFO 算法基于队列实现,不是堆栈类算法
注意,并不需要记录调入页面的确切时间,可以创建一个 FIFO 队列,来管理所有的内存页面。置换的是队列的首个页面。当需要调入页面到内存时,就将它加到队列的尾部
FIFO 页面置换算法易于理解和编程。然而,它的性能并不总是十分理想:
(淘汰以后不会使用的页面)
发现 Belady 异常的一个结果是寻找最优页面置换算法,这个算法具有所有算法的最低的缺页错误率,并且不会遭受 Belady 异常。这种算法确实存在,它被称为 OPT 或 MIN