在地址映射過程中,若在頁面中發現所要訪問的頁面不再記憶體中,則產生缺頁中斷。當發生缺頁中斷時作業系統必須在記憶體選擇一個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。而用來選擇淘汰哪一頁的規則叫做頁面置換演算法
考慮下述頁面走向:
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異常