微觀理解
內(nèi)存管理單元(MMU)的一個重要功能是使系統(tǒng)能夠運(yùn)行多個任務(wù),作為獨(dú)立的程序運(yùn)行在他們自己的 私有虛擬內(nèi)存空間。
它們不需要了解系統(tǒng)的物理內(nèi)存圖,即硬件實(shí)際使用的地址,也不需要了解可能在同一時間執(zhí)行的其他程序。
所以在這種時候其實(shí)也要注意,你到底是使用的物理內(nèi)存還是虛擬內(nèi)存,使用的同一片內(nèi)存,會不會出現(xiàn)踩踏內(nèi)存的現(xiàn)象。
你可以為每個程序使用相同的虛擬內(nèi)存地址空間。
你也可以使用一個連續(xù)的虛擬內(nèi)存地圖,即使物理內(nèi)存是碎片化的。
這個虛擬地址空間與系統(tǒng)中的實(shí)際物理內(nèi)存地圖是分開的。
你可以編寫、編譯和鏈接應(yīng)用程序以在虛擬內(nèi)存空間中運(yùn)行。
如下圖所示的內(nèi)存虛擬和物理視圖的系統(tǒng)實(shí)例,一個系統(tǒng)中的不同處理器和設(shè)備可能有不同的虛擬和物理地址圖。
操作系統(tǒng)對MMU進(jìn)行編程,在這兩個內(nèi)存視圖之間進(jìn)行轉(zhuǎn)換。
要做到這一點(diǎn),虛擬內(nèi)存系統(tǒng)中的硬件必須提供地址轉(zhuǎn)換,即把處理器發(fā)出的虛擬地址轉(zhuǎn)換為主內(nèi)存中的物理地址。
虛擬地址是你、編譯器和鏈接器在內(nèi)存中放置代碼時使用的地址。
物理地址是由實(shí)際的硬件系統(tǒng)使用的。
MMU使用虛擬地址的最重要的位來索引映射表中的條目,并確定哪個塊被訪問。
MMU將代碼和數(shù)據(jù)的虛擬地址映射成實(shí)際系統(tǒng)中的物理地址。
這種轉(zhuǎn)換是在硬件中自動進(jìn)行的,對應(yīng)用程序是透明的。
除了地址轉(zhuǎn)換外,MMU還控制內(nèi)存訪問權(quán)限、內(nèi)存排序和每個區(qū)域內(nèi)存的緩存策略。
(安全地址與非安全地址的訪問控制權(quán)限,檢查頁標(biāo)簽)
MMU使任務(wù)或應(yīng)用程序的編寫方式要求它們對系統(tǒng)的物理內(nèi)存圖或可能同時運(yùn)行的其他程序一無所知。這使你可以為每個程序使用相同的虛擬內(nèi)存地址空間。
它還允許你使用一個連續(xù)的虛擬內(nèi)存地圖,即使物理內(nèi)存是碎片化的。這個虛擬地址空間與系統(tǒng)中的實(shí)際物理內(nèi)存地圖是分開的。應(yīng)用程序被編寫、編譯和鏈接以在虛擬內(nèi)存空間中運(yùn)行。
這個就回到了我之前說的這個MMU本質(zhì)上提供的能力。
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6545瀏覽量
122743 -
程序
+關(guān)注
關(guān)注
115文章
3720瀏覽量
80357 -
內(nèi)存管理
+關(guān)注
關(guān)注
0文章
167瀏覽量
14099 -
MMU
+關(guān)注
關(guān)注
0文章
91瀏覽量
18167
發(fā)布評論請先 登錄
相關(guān)推薦
評論