頁面置換演算法(OPT,FIFO,LRU)

2021-09-07 09:19:08 字數 1133 閱讀 1276

位址對映過程中,若在頁面中發現所要訪問的頁面不在記憶體中,則產生缺頁中斷。當發生缺頁中斷時,如果作業系統記憶體中沒有空閒頁面,則作業系統必須在記憶體選擇乙個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。而用來選擇淘汰哪一頁的規則叫做頁面置換演算法。

下面以頁面訪問順序:4,3,2,1,4,3,5,4,3,2,1,5,實際頁面數為3為例,研究三種演算法的不同

理想置換演算法,從主存中移出永遠不再需要的頁面;如無這樣的頁面存在,則選擇最長時間不需要訪問的頁面。於所選擇的被淘汰頁面將是以後永不使用的,或者是在最長時間內不再被訪問的頁面,這樣可以保證獲得最低的缺頁率。

如下圖,當順序訪問4,3,2時缺頁,將4,3,2調入記憶體,接下來訪問1時,產生缺頁,將後面最長時間未用到的2置換出去,以此類推,每次缺頁時都置換未來最長時間未用到的頁面。但是,我們不可能**未來需要用到哪些頁,因此這是理想演算法。

最簡單的頁面置換演算法。這種演算法的基本思想是:當需要淘汰乙個頁面時,總是選擇駐留主存時間最長的頁面進行淘汰,即先進入主存的頁面先淘汰。其理由是:最早調入主存的頁面不再被使用的可能性最大。

如下圖,當順序訪問4,3,2時缺頁,將4,3,2調入記憶體,接下來訪問1時,按照先進先出的原則,將剛剛最先進入的4置換,接下來訪問4時,又缺頁了,再將剩餘頁面中最先進入的頁面3置換,以此類推

這種演算法的基本思想是:利用區域性性原理,根據乙個作業在執行過程中過去的頁面訪問歷史來推測未來的行為。它認為過去一段時間裡不曾被訪問過的頁面,在最近的將來可能也不會再被訪問。所以,這種演算法的實質是:當需要淘汰乙個頁面時,總是選擇在最近一段時間內最久不用的頁面予以淘汰。

如下圖,當順序訪問4,3,2時缺頁,將4,3,2調入記憶體,接下來訪問1時,將過去最少用到的頁面置換出去,這裡4,3,2過去用到的頻率都是一樣的,因此任意置換乙個即可。往下看可以看到,當我們訪問5,產生缺頁的時候,過去用到4兩次,用到3兩次,用到1一次,因此選擇將過去用到次數最少的1置換出去。

頁面置換演算法

常用的頁面置換演算法有三種 先進先出演算法fifo first in first out 該演算法的基本思想是首先淘汰那些駐留在主存時間最長的頁面。最近最久未用演算法 lru 該演算法的基本思想是 如果某一頁被訪問了,那麼它很可能馬上又被訪問 反之,如果某一頁很久沒被訪問,那麼最近也不會再訪問。lr...

頁面置換演算法

include using namespace std int process 100 頁面佇列 int memory 3 塊數 int optqueue 100 opt演算法的佇列 int fifoqueue 100 fifo演算法佇列 int lruqueue 100 lru演算法佇列 int ...

頁面置換演算法

位址對映過程中,若在頁面中發現所要訪問的頁面不再記憶體中,則產生缺頁中斷。當發生缺頁中斷時作業系統必須在記憶體選擇乙個頁面將其移出記憶體,以便為即將調入的頁面讓出空間。而用來選擇淘汰哪一頁的規則叫做頁面置換演算法。常見的置換演算法有 1 最佳置換演算法 opt 理想置換演算法 這是一種理想情況下的頁...