Linux記憶體布局

2021-07-22 12:42:15 字數 623 閱讀 4153

變數名稱

說明num_physpages

最高可用頁框的頁框號

totalram_pages

可用頁框的總數量

min_low_pfn

ram 中在核心映像後第乙個可用頁框的頁框號

max_pfn

最後乙個可用頁框的頁框號

max_low_pfn

被核心直接對映的最後乙個頁框的頁框號(低位址記憶體)

totalhigh_pages

核心非直接對映的頁框的總數(高位址記憶體)

highstart_pfn

核心非直接對映的第乙個頁框的頁框號

highend_pfn

核心非直接對映的最後乙個頁框的頁框號

下圖顯示linux怎樣填充前3mb的ram。

我們看到圖中可用的頁框,是記憶體的其餘部分,我們稱為動態記憶體,這不僅是程序所需的寶貴資源,也是核心本身所需的寶貴資源。實際上,整個系統的效能取決於如何有效地管理動態記憶體。因此,現在所有多工作業系統都在盡力優化對動態記憶體的使用,也就是盡可能做到當需要是分配,不需要時釋放。

後面的博文中,我們將重點討論核心如何給自己分配動態記憶體。主要包括頁框管理、高階記憶體對映、夥伴系統演算法、slab分配器、記憶體池、非連續記憶體區管理。

Linux記憶體布局

我們先來看下linux記憶體布局,此圖比我之前寫的那篇文章寫的布局更詳細 在linux中,每乙個程序都被抽象為task struct結構體,稱為程序描述符,儲存著程序 各方面的資訊 例如開啟的檔案,訊號以及記憶體等等 然後task struct的乙個屬性mm struct管理著程序的所有虛擬記憶體,...

linux記憶體布局學習

linux系統中的程序總是以為自己是唯一的,那程序是如何被對映到記憶體中的呢?以前總是覺得這些東西太高深,可望而不可及 從現在開始,讓我們慢慢揭開這神秘的面紗。典型的linux c程式記憶體布局,從低位址到高位址分別如下 1.段,即cpu要執行的程式 段是可共享的,同乙份 在記憶體中只有乙份拷貝 段...

2Linux記憶體布局

變數名稱 說明 num physpages 最高可用頁框的頁框號 totalram pages 可用頁框的總數量 min low pfn ram 中在核心映像後第乙個可用頁框的頁框號 max pfn 最後乙個可用頁框的頁框號 max low pfn 被核心直接對映的最後乙個頁框的頁框號 低位址記憶體...