頁面置換演算法 1

2021-10-20 20:53:44 字數 777 閱讀 8132

cpu訪問的內容不在物理記憶體時就會產生缺頁中斷。

缺頁中斷處理的流程:

1.在cpu中訪問某個頁面,去頁表查詢這個頁面。

2.如果該頁表有效就直接使用,否則cpu傳送缺頁中斷請求。

3.作業系統收到了缺頁中斷,作業系統執行缺頁中斷處理函式,先會查詢該頁面在磁碟中的位置。

4.找到磁碟中對應的頁面,需要把頁面放到物理記憶體中。在換入之前應該先找到空白頁。

5.頁面從磁碟換入記憶體後把頁表狀態位改為有效。

6.cpu重新執行導致缺頁中斷的指令。

頁面置換演算法就是發生在第四步找不到空白頁面的情況。

頁表

最佳頁面置換演算法的思想是置換未來最長時間不訪問的頁面。實際上做不到只是用來衡量其他的演算法。

先入先出置換演算法

置換演算法置換在記憶體中停駐時間最長的頁面。簡單但是效能很差。

最近最久未使用

發生缺頁時最先置換最長時間沒被訪問的頁面,利用區域性性原理,假設最久未使用未來也是很長一段時間不會使用。演算法理論上很優,但是要實現需要維護乙個使用的鍊錶,開銷很大,所以不常使用。

時鐘頁面置換演算法

把所有頁面儲存在乙個環形鍊錶中,乙個指標指向最老的頁面,當發生缺頁中斷時,首先檢查指標指向的頁面,如果訪問位是0就置換出去,否則就清除訪問位,把指標向前移,重複操作。

最不常用演算法

淘汰訪問次數最少的那個頁面。想更好的工作需要定期更新。

頁面置換演算法

常用的頁面置換演算法有三種 先進先出演算法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 理想置換演算法 這是一種理想情況下的頁...