操做系統--頁面置換算法


在這裏插入圖片描述咱們這裏只學習局部頁面置換算法!

功能:當缺頁中斷髮生時,須要調入新的頁面而內存已滿時,選擇內存當中那個物理頁面被替換
目標:儘量減小頁面的換進換出次數(即缺頁中斷的次數)算法

1、最優頁面置換算法

把將來再也不使用的或短時間內較少使用的頁面換出

最優頁面置換算法,是不可能實現的,由於它是須要知道將來的,因此最優頁面置換算法,只能看成頁面置換算法中的一個理想標準。shell

咱們其餘的頁面置換算法是經過局部性原理的指導下經過過去的數據,對將來進行預測,能夠經過和最優頁面置換算法進行比較,來測評其餘頁面置換算法的效果。性能

在這裏插入圖片描述

2、先進先出算法(FIFO)

基本思路:選擇在內存中駐留時間最長的頁面並淘汰
缺點:性能較差,調出的頁面有多是常常須要被訪問的頁面,而且有Belady現象。FIFO算法不多單獨使用。學習

FIFO的實例:
 注意最開始的a、b、c、d進入內存的順序!.net

3、最近最久未使用算法(LRU)

基本思路:當一個缺頁中斷髮生時,選擇最久未使用的那個頁面並淘汰。
特色:它是對最優頁面置換算法的一個近似,其依據仍是程序的局部性原理。code

LRU實例:
在這裏插入圖片描述blog

4、時鐘頁面置換算法

它是一種LRU的近似,對FIFO的一種改進
在這裏插入圖片描述實例:
在這裏插入圖片描述產生缺頁中斷,咱們要在存在內存裏的頁中選一個,放入硬盤,因此存在位確定都是1,最開始指向page0,最早進入內存那個,而後像時鐘同樣依次找到每一個page,若used bit=1,則將其置爲0,used bit=0,則將此頁放入硬盤!圖片

5、二次機會法

在原來的clock方法中,再加入一位dirty bit,標誌這個頁是否寫入過,寫入時,此位會置1,沒寫過的頁,硬盤和此頁內容一致,因此不須要再回寫到磁盤,寫過的頁,須要回寫到磁盤,開銷較大。內存

二次機會法,意味着有兩次機會,這兩次機會是給最近被寫入過的頁的,只要used bit和dirty bit都爲0,才能被替換。
在這裏插入圖片描述get

相關文章
相關標籤/搜索