虛擬記憶體之頁面置換演算法

2021-07-02 05:04:29 字數 1125 閱讀 5509

四種頁面置換演算法:

一、最佳置換演算法

opt 策略選擇置換下次訪問距當前時間最長的那些頁,可以看出該演算法能導致最少的缺頁中斷,但是由於它要求作業系統必須知道將來的事件,顯然這是不可能實現的。但它仍然能作為一種標準來衡量其他演算法的效能。

二、最近最少使用演算法

lru 策略置換記憶體中上次使用距當前最遠的頁。根據區域性性原理,這也是最不可能訪問的頁。實際上,lru 策略的效能接近於 opt 策略。該方法的問題在於比較難以實現。一種實現方法是給每一頁新增乙個最後訪問的時間戳,並且必須每次訪問記憶體時,都更新這個時間戳。即使有這種方案的硬體,開銷仍然是非常大的。另外一種可選的方法是維護乙個關於訪問頁的棧,但開銷同樣很大。

三、先進先出演算法

fifo 策略把分配給程序的頁框視為乙個迴圈緩衝區,按迴圈方式移動頁。它所需的只是乙個指標,這個指標在該程序的頁框中迴圈。因此這是一種最簡單的頁面置換策略。除了它的簡單性,這種選擇方法所隱含的邏輯是置換駐留在記憶體中最長時間的頁:乙個很久以前取入記憶體的頁,到現在可能已經不會再用了。這個推斷是錯誤的,因為經常出現一部分程式或資料在整個程式的生命週期中使用頻率很高的情況,如果使用 fifo 演算法,則這些頁會被反覆的換入換出,增加了系統開銷。

四、時鐘

時鐘是 lru 的近似實現。最簡單的時鐘策略需要給每一頁框管理乙個附加位,稱為使用位。當某一頁眉次裝入記憶體時,則將該頁框的使用位置為 1;當該頁隨後被訪問到時(在訪問產生缺頁中斷後),他的使用位也會被置為 1。對於頁面置換演算法用於置換的候選頁框集合被視為乙個迴圈緩衝區,並且有乙個指標與之相關聯。當一頁被置換時,該指標被設定成指向緩衝區中的下乙個頁框。當需要置換一頁時,作業系統掃瞄緩衝區,以查詢使用位被置為 0 的乙個頁框。每當遇到乙個使用位為 1 的頁框時,作業系統就將該為重新置為 0 ;如果在這個過程開始時,緩衝區所有頁框的使用位均為 0,則選擇遇到的第乙個頁框置換;如果所有頁框的使用位均為 1,則指標在緩衝區中完整地迴圈一周,把所有使用位都置為 0,並且停留在最初的位置上,置換該頁框中的頁。

舉例:

虛擬記憶體 頁面置換演算法案例 演算法

概念介紹 案例解析 最佳 optimal 置換演算法 最佳置換演算法是由belady於1966年提出的一種理論上的演算法。其所選擇的被淘汰頁面,將是以後永不使用的,或是在最長 未來 時間內不再被訪問的頁面 採用最佳置換演算法,通常可保證獲得最低的缺頁率。但由於人們目前還無法預知乙個程序在記憶體的若干...

作業系統實驗之虛擬記憶體頁面置換演算法

設計程式模擬先進先出fifo 最佳置換opi和最近最久未使用lru頁面置換演算法的工作過程。假設記憶體中分配給每個程序的最小物理塊數為m,在程序執行過程中要訪問的頁面個數為n,頁面訪問序列為p1,pn,分別利用不同的頁面置換演算法排程程序的頁面訪問序列,給出頁面訪問序列的置換過程,計算每種演算法缺頁...

Linux虛擬記憶體和三種頁面置換演算法

見部落格 linux linux的虛擬記憶體詳解 mmu 頁表結構 中的虛擬記憶體 虛擬記憶體的頁 物理記憶體的頁框 頁表。見部落格 linux linux的虛擬記憶體詳解 mmu 頁表結構 中的請頁與交換。考慮下面情況 在請頁成功之後,記憶體中已沒有空閒物理頁框了。這時,系統必須啟動所謂的 交換 ...