1. 先进先出算法的工作原理
先进先出算法就是说选择在内存中驻留时间最长的页面,如果要淘汰一个页面的话,要选择这个页面淘汰,也就意味着其实在系统中维护了一个表,这个表记录了当前在内存中这些页的驻留时间,以时间排序,比如链表的头放当前驻留时间最长的页面,链表的尾巴放最短页面,当发生缺页中断时候,需要把驻留时间最长的页面置换出去,就相当于是把链表首这个页面给置换出去。那如果把新页加进来,这个页的位置应该添加在这个链表的尾部,这样就形成先进先出算法的大致过程。
这个算法实现起来很简单,维护一个 List 就 OK 了, 产生缺页中断的次数其实是比较多的,而且还有很特殊现象——Belady 的现象 ,这个现象会产生一种很奇怪的事情,比如一般来说当给一个运行的程序分为更多的物业的时候,按道理来说应该它缺页次数是变得少了,如果是采用 FIFO 算法的话,那可能出现给它物理页帧越多,反而产生缺页次数越大这种现象,这种称为Belady 现象。
2. 先进先出算法特征
3. 先进先出算法示例
FIFO 算法的特点是要把驻留时间最长的页替换出去,