先进先出置换算法(FIFO)
最简单的页面置换算法,淘汰最先调入的。
实现:队列
依据: 先进入的可能已经使用完毕。
基本思想:
当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。
理由:
最早调入主存的页面不再被使用的可能性最大。 即优先淘汰最早进入内存的页面。(往前看)
说明:
- 该算法的出发点是最早调入内存的页面,其不再被访问的可能性会大一些。
- 该算法实现比较简单,对具有线性顺序访问的程序比较合适,而对其他情况效率不高。因为经常被访问的页面,往往在内存中停留最久,结果这些常用的页面却因变老而被淘汰。
- 先进先出算法存在一种 异常现象,即在某些情况下会出现分配给的进程物理块数增多,缺页次数有时增加,有时减少的奇怪现象,这种现象称为Belady现象。
物理页面 | 2 | 3 | 2 | 1 | 5 | 2 | 4 | 5 | 3 | 2 | 5 | 2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
物理块1 | 2 | 2 | 2 | 3 | 1 | 5 | 2 | 4 | 3 | |||
物理块2 | 3 | 3 | 1 | 5 | 2 | 4 | 3 | 5 | ||||
物理块3 | 1 | 5 | 2 | 4 | 3 | 5 | 2 | |||||
是否缺页 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
缺页9次,总访问次数12次
缺页率:9/12 = 75%