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

2021-10-24 17:05:02 字數 1215 閱讀 9174

見部落格【linux】linux的虛擬記憶體詳解(mmu、頁表結構)中的虛擬記憶體、虛擬記憶體的頁、物理記憶體的頁框、頁表。

見部落格【linux】linux的虛擬記憶體詳解(mmu、頁表結構)中的請頁與交換。

考慮下面情況:在請頁成功之後,記憶體中已沒有空閒物理頁框了。這時,系統必須啟動所謂的「交換」機制,即呼叫相應的核心操作函式,在物理頁框中尋找乙個當前不再使用或者近期可能不會用到的頁面所佔據的頁框。找到後,就把其中的頁移出,以裝載新的頁面。對移出頁面根據兩種情況來處理:如果該頁未被修改過,則刪除它;如果該頁曾經被修改過,則系統必須將該頁寫回輔存。

上述的「交換」機制即下面要提到的頁面置換演算法,雖然有三種演算法型別,但是linux系統使用的是其中的最近最少使用(lru)頁面置換演算法

以下內容**三種頁面置換演算法

程式執行過程中,有時要訪問的頁面不在記憶體中,而需要將其調入記憶體。但是記憶體已經無空閒空間儲存頁面,為保證程式正常執行,系統必須從記憶體中調出一頁程式或資料送到磁碟對換區,此時需要一定的演算法來決定到底需要調出那個頁面。通常將這種演算法稱為「頁面置換演算法」。

2.1 最佳置換演算法(opt)

(1)實現原理:每次選擇未來長時間不被訪問的或者以後永不使用的頁面進行淘汰。

(2)舉例:假定系統為某程序分配了三塊物理塊,並有以下頁面:

(3)特點

2.2 先進先出頁面置換演算法(fifo)

(1)實現原理:淘汰最先進入記憶體的頁面,即選擇在頁面待的時間最長的頁面淘汰。

(2)舉例

依舊是上乙個演算法的例子

(3)特點

2.3 最近最少使用置換演算法(lru)

(1)實現原理:選擇最近且最久未被使用的頁面進行淘汰

(2)舉例:

依舊是上乙個演算法的例子

(3)特點

虛擬記憶體和頁面檔案

什麼叫做虛擬記憶體呢?有很多朋友會從 虛擬磁碟 虛擬光碟機 等概念簡單推廣到記憶體方面,認為用做記憶體交換和擴充套件空間的 磁碟頁面檔案 就是 虛擬記憶體 因為不是記憶體晶元,卻要做記憶體的用途,所以是 虛擬 的記憶體。其實這種觀點是錯誤的!那麼到底什麼叫做虛擬記憶體呢?簡而言之,所謂虛擬記憶體就是...

linux 物理記憶體和虛擬記憶體

vmstat是virtual memory statistics虛擬記憶體統計縮寫 物理記憶體是計算機記憶體的大小,從物理記憶體中讀寫資料比硬碟中讀寫資料要快很多,而記憶體是有限的,所以就有了物理記憶體和虛擬記憶體的概念。物理記憶體就是硬體的記憶體,是真正的記憶體。虛擬記憶體是為了滿足物理記憶體不足...

物理記憶體 頁面檔案 交換區和虛擬記憶體

物理記憶體,顧名思義,就是實實在在存在的那個東西,插在你電腦主機板上的記憶體條所提供的空間。頁面檔案,這個是硬碟上的一塊空間,在windows下表現為乙個檔案。這個頁面檔案存在的意義就是在物理記憶體被占用滿以後,將物理記憶體中的東西移動到硬碟上的這個空間,騰出物理記憶體給需要的應用程式來使用。交換區...