Linux核心記憶體管子系統分析

coding__madman發表於2016-05-05

還是那張熟悉的老圖:linux核心子系統簡介(由七個部分組成)


Linux記憶體管理模型:



1. 記憶體管子系統職能:

    1>  管理虛擬地址與實體地址的對映

    2>  管理實體記憶體的分配

2. 地址對映管理

    1> 虛擬地址空間分佈:

      linux採用的是一種虛擬地址的管理方式,對於一個32位的處理器對於的記憶體空間為4G,其中0到3G是使用者空間,       從3G到4G是核心空間,而核心空間從下圖中可以看出被分為了四個部分:直接對映區,vmalloc區,永久對映             區,以及固定對映區

    2> 虛擬地址轉化為實體地址:

      一個32位的虛擬地址是如何轉化為實體地址的:看下圖所代表的意義,第一步首先取虛擬地址的高十位作為一個         偏移,CR3暫存器作為一個基地址。相加後就可以從頁目錄中得到一個地址,這個地址會指向一個頁表,頁表的基         地址加上中間的十位就可以得到物理頁的基地址,然後再加上頁內的偏移,也就是低12位,就得到了實際的物理          地址!



896M以上的記憶體叫做高階記憶體,896M一下的記憶體叫做低端記憶體!

3. 實體記憶體分配




相關文章