MMU(內存管理單元)理解

 32位機有0---4G的虛擬內存地址空間

(32位共有2^32 = 4x2^30個數,一個數對應內存中一個字節,故內存中共有4x2^30B=4G的地址空間)

虛擬內存各區的存儲內容,如上的內存結構圖所示,

.text  :存儲代碼段

.data :存儲數據,定義的變量在此處

heap:堆,由低地址向高地址,malloc的空間在此處

stack:棧,由高地址向低地址,函數及函數裏定義的變量在此處

以上各部分佔用0-3G,,稱爲用戶空間

3G-4G稱爲內核區(內核空間)

其中,PCB(進程控制塊)位於此地址空間中;

 

0-4G的虛擬內存空間,是在程序運行,進程產生的時候,纔會有的。

但虛擬內存並不是真實存在,程序、數據其實都是存在物理內存的。物理內存並一定有4G大小。

所以,就需要將虛擬內存與物理內存進行對應,媒介就是MMU

例如:0x8123a300  int value = 1;   0x8123a300 就是虛擬內存地址;

寫程序的時候,使用的是虛擬地址。

 

MMU的作用:

1)虛擬地址與物理地址映射

2)設置修改內存訪問級別,權限高的能訪問內核區,權限低的訪問用戶區。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章