1. 思想:总是淘汰最先进入内存的页面,即选择在内存中驻留时间最长的页面予以淘汰
  2. 优点:实现简单
  3. 缺点:算法性能差,往往与进程实际运行的规模不相符。有些页面,如存放全局变量、常用函数的页面,在整个进程的运行过程中会被频繁访问。如果频繁将其换进换出,则会产生“抖动”现象,因此,这种算法在实际中应用很少
  4. 注意:只有FIFO算法会产生Belady异常。Belady异常——当为进程分配的物理块数增大时,缺页次数不减反增的异常现象
  5. 例子: 假设最小物理块数为3块。页面引用序列如下:
    7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1

java先进先出与先进后出 先进先出算法的优缺点_学习

 

 缺页次数:15次                                                缺页率:15 / 20 = 75%

解析:

进程运行时,当进程要访问7, 0, 1三个页面时都会产生缺页中断

按照页面访问顺序,当进程要访问页面2时,内存中没有页面2,产生缺页中断。内存中的三个页面7, 0, 1,页面7最先进入内存,所以淘汰页面7,页面2装入物理块1

按照页面访问顺序,当进程要访问页面0时,页面0在物理块2中,不会产生缺页中断

按照页面访问顺序,当进程要访问页面3时,内存中没有页面3,产生缺页中断。内存中的三个页面2, 0, 1,页面0最先进入内存,所以淘汰页面0,页面3装入物理块2

按照页面访问顺序,当进程要访问页面0时,内存中没有页面0,产生缺页中断。内存中的三个页面2, 3, 1,页面1最先进入内存,所以淘汰页面1,页面0装入物理块3

按照页面访问顺序,当进程要访问页面4时,内存中没有页面4,产生缺页中断。内存中的三个页面2, 0, 3,页面2最先进入内存,所以淘汰页面2,页面4装入物理块1

以此类推,便可得到如图情况