核心比較 2 6 核心中改進了記憶體管理

2021-04-23 08:44:04 字數 1120 閱讀 3807

隨著 linux 核心的發展和成熟,更多的使用者期待著 linux 可以執行非常大的系統來處理科學分析應用程式或者甚至海量資料庫。這些企業級的應用程式通常需要大量的記憶體才能好好執行。2.4 linux 核心有識別相當大數量的記憶體的功能,但是 2.5 核心發生了很多改變,使其有能力以更有效的方式處理更大量的記憶體。

反向對映

在 linux 記憶體管理器中,頁表保持對程序使用的記憶體物理頁的追蹤,它們將虛擬頁對映到物理頁。這些頁中有一些可能不是長時間使用,它們應該被交換出去。不過,在它們可以被交換出去之前,必須找到對映那個頁的每乙個程序,這樣那些程序中相應頁的頁表條目才可以被更新。在 linux 2.4 核心中,這是一項令人生畏的任務,因為為了確定某個頁是否被某個程序對映,必須遍歷每個程序的頁表。隨著在系統中執行的程序數量的增加,將這些頁交換出去的工作量也會增加。

反向對映,或者說是 rmap,就是為解決此問題而在 2.5 核心中實現的。反向對映提供了乙個發現哪些程序正在使用給定的記憶體物理頁的機制。不再是遍歷每個程序的頁表,記憶體管理器現在為每乙個物理頁建立了乙個鍊錶,包含了指向當前對映那個頁的每乙個程序的頁表條目(page-table entries, pte)的指標。這個鍊錶叫做 pte 鏈。pte 鏈極大地提高了找到那些對映某個頁的程序的速度,如圖 1 所示。

圖 1. 2.6 中的反向對映

反向對映還帶來了一些其他的複雜性。當頁被乙個程序對映時,必須為所有那些頁建立反向對映。同樣,當乙個程序釋放對頁的對映時,相應的對映也必須都刪除掉。這在退出時尤其常見。所有這些操作都必須在鎖定情況下進行。對那些執行很多派生和退出的應用程式來說,這可能會非常浪費並且增加很多開銷。

儘管有一些折衷,但可以證明反向對映是對 linux 記憶體管理器的乙個頗有價值的修改。通過這一途徑,查詢定位對映某個頁的程序這一嚴重瓶頸被最小化為只需要乙個簡單的操作。當大型應用程式向核心請求大量記憶體和多個程序共享記憶體時,反向對映幫助系統繼續有效地執行和擴充套件。當前還有更多對反向對映的改進正在研究中,可能會出現在未來的 linux 核心版本中。

paul larson 為 ibm linux technology center 的 linux test 團隊工作。過去一年中,他從事的專案包括 linux 測試專案、2.5/2.6 核心穩定性以及核心**覆蓋分析。可以通過 [email protected]

與他聯絡。

核心比較2 6 核心中改進了記憶體管理

級別 初級 paul larson pl us.ibm.com 軟體工程師,linux technology center,ibm 2004 年 4 月 01 日 隨著 linux 核心的發展和成熟,更多的使用者期待著 linux 可以執行非常大的系統來處理科學分析應用程式或者甚至海量資料庫。這些企...

核心比較 2 6 核心中改進了記憶體管理

從大記憶體頁到反向對映 更高的穩定性和更快的速度 paul larson pl us.ibm.com 軟體工程師,linux technology center,ibm 標記本文!建議 隨著 linux 核心的發展和成熟,更多的使用者期待著 linux 可以執行非常大的系統來處理科學分析應用程式或者...

Linux2 6核心比2 4核心的改進細節

1.模組子系統 module subsystem 統一裝置模型 unified device model 和 pnp支援模組子系統發生了重大變化。文章 www.iocblog.net 2.穩定性有所提高 為了徹底避免核心載入或者匯出正在被使用的核心模組,或者至少為了減少載入或者解除安裝模組的同時使用...