嵌入式學習(三)-內存管理

用於個人學習記錄

硬件篇:

1:RAM,ROM及硬盤的聯繫及區別:

RAM(Random Access Memory):隨機存取存儲器,與CPU直接交換數據的內部存儲器,可以隨時讀寫,而且速度很快,通常作爲操作系統或進程的數據存儲介質,也就是所謂的"內存",斷電後數據丟失。

ROM(Read-Only Memory):只讀存儲器,是一種只能讀出事先所存數據的固態半導體存儲器,其特性是一旦儲存資料就無法再將之改變或刪除,通常存放BOIS信息,斷電後數據保持。

硬盤:HDD,是一種外部存儲設備,數據可讀可寫。

硬盤既不屬於RAM,也不屬於ROM,RAM與ROM是內部存儲器,而硬盤是外部存儲器。

2:MMU(內存管理單元)

MMU(Memory Management Unit):內存管理單元,主要負責虛擬地址映射爲物理地址

虛擬地址:虛擬地址是相對於物理地址來說的。虛擬地址的提出,主要是爲了解決在操作系統中,多線程內存地址重複,大進程在小內存運行等問題 , 在32位系統中,虛擬地址空間中有4G,在操作系統中程序中使用的都是虛擬地址

 

虛擬地址轉換爲物理地址的過程:

1:物理內存分頁,一個物理頁的大小爲4K字節,第0個物理頁從物理地址 0x00000000 處開始。由於頁的大小爲4KB,就是0x1000字節,所以第1頁從物理地址0x00001000 處開始。第2頁從物理地址 0x00002000 處開始。可以看到由於頁的大小是4KB,所以只需要32bit的地址中高20bit來尋址物理頁。

2:一個物理頁中,由1024個4字節的頁表項組成。頁表項的大小爲4個字節(32bit),所以一個頁表中有1024個頁表項。頁表中的每一項的內容(每項4個字節,32bit)高20bit用來放一個物理頁的物理地址,低12bit放着一些標誌。

3:虛擬地址最低的12bit(2的12次方等於4096),作爲頁內偏移,剛好可以索引4KB,也就是一個物理頁中的每個字節。

例子:

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