先進先出頁面置換算法

先進先出頁面置換算法

地址映射過程中,若在頁面中發現所要訪問的頁面不再記憶體中,則產生缺頁中斷。當發生缺頁中斷時作業系統必須在記憶體選擇一個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。而用來選擇淘汰哪一頁的規則叫做頁面置換算法。最簡單的頁面置換算法是先入先出(FIFO)法。

簡介

優先淘汰最早進入記憶體的頁面,亦即在記憶體中駐留時間最久的頁面。該算法實現簡單,只需把調入記憶體的頁面根據先後次序連結成佇列,設定一個指針總指向最早的頁面。但該算法與進程實際運行時的規律不適應,因為在進程中,有的頁面經常被訪問。

實現過程

假定系統為某進程分配了三個物理塊,並考慮有以下頁面號引用串:7, 0, 1, 2, 0, 3, 0,4,2,3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1。釆用FIFO算法進行頁面置換,進程訪問頁面2時,把最早進入記憶體的頁面7換出。然後訪問頁面3時,再把2, 0, 1中最先進入記憶體的頁換出。由下圖可以看出,利用FIFO算法時進行了12次頁面置換。

訪問頁面70120304230321201701
物理塊1777222444000777
物理塊200033322211100
物理塊31110003332221
缺頁否

缺點

FIFO算法還會產生當所分配的物理塊數增大而頁故障數不減反增的異常現象,這是由Belady於1969年發現,故稱為Belady異常,如下圖所示。只有FIFO算法可能出現Belady異常,而LRU和OPT算法永遠不會出現Belady異常。

訪問頁面123412512345
物理塊11114445,5'5
物理塊222211133
物理塊33332224
缺頁否
111555544
物理塊2*222211115
物理塊3*33332222
物理塊4*4444333
缺頁否

相關詞條

熱門詞條

聯絡我們