頁置換算法FIFO、LRU、OPT
為什么需要頁置換
- 在地址映射過程中,若在頁面中發現所要訪問的頁面不再內存中,則產生缺頁中斷。當發生缺頁中斷時操作系統必須在內存選擇一個頁面將其移出內存,以便為即將調入的頁面讓出空間。而用來選擇淘汰哪一頁的規則叫做頁面置換算法
實力(實例)
考慮下述頁面走向:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
當內存塊數量分別為3時,試問FIFO、LRU、OPT這三種置換算法的缺頁次數各是多少?
假設:缺頁定義為所有內存塊最初都是空的,所以第一次用到的頁面都產生一次缺頁。
當內存塊數量為3時:
1、FIFO
發生缺頁中斷的次數為16。
在FIFO算法中,先進入內存的頁面被先換出。當頁6要調入時,內存的狀態為4、1、5,考查頁6之前調入的頁面,分別為5、1、2、4,可見4為最先進入內存的,本次應換出,然后把頁6調入內存。
2、LRU
發生缺頁中斷的次數為15。
在LRU算法中,最近最少使用的頁面被先換出。當頁6要調入時,內存的狀態為5、2、1,考查頁6之前調入的頁面,分別為5、1、2,可見2為最近一段時間內使用最少的,本次應換出,然后把頁6調入內存。
3、OPT
發生缺頁中斷的次數為11。
在OPT算法中,在最遠的將來才被訪問的頁面被先換出。當頁6要調入時,內存的狀態為1、2、5,考查頁6后面要調入的頁面,分別為2、1、2、…,可見5為最近一段時間內使用最少的,本次應換出,然后把頁6調入內存。
總結
- LRU算法:平均命中率最高算法,選擇近期最少訪問的頁作為被替換頁。 無Belady異常
- FIFO算法:是一個實現起來比較簡單的頁面置換算法,其基本原則是“選擇最早進入主存的頁面淘汰”,理由是最早進入的頁面,其不再使用的可能性比最近調入的頁面要大。有Belady異常
- OPT算法:根據未來實際使用情況將未來的近期里不用的頁替換出去。這種算法是用來評價期它替 換算法好壞的標准。不可能實現。所選擇的被淘汰頁面將是以后永不使用的,或者是在最長時間內不再被訪問的頁面,這樣可以保證獲得最低的缺頁率。無Belady異常