1. 程式人生 > >深入淺出處理器(下)_內存管理(映射)

深入淺出處理器(下)_內存管理(映射)

深入淺出 不同 ces watermark 意義 分享 下使用 shadow 模式

專題1—深入淺出處理器

處理器(下)_內存管理(映射)

1.內存管理單元(MMU)

內存管理單元簡稱MMU,它負責虛擬地址到物理地址的映射,並提供硬件機制的內存訪問權限檢查。MMU使得每個用戶進程擁有自己獨立的地址空間,並通過內存訪問權限的檢查保護每個進程所用的內存不被其他進程破壞。操作系統系統內存管理單元實現虛擬內存和內存保護。
重點就在於地址映射:頁表的結構與建立、映射的過程。

2.問題:下面程序輸出結果是否完全相同?

int g_v = 1;

int main(void)
{
    printf("g_v = %d\n", g_v);
    printf("&g_v = %p\n", &g_v);
    Pause(1);

    return 0;
}

按照正常邏輯分析,理論上上不同進程在內存中的不同位置執行,因此,全局變量地址不同。
實驗結果:
技術分享圖片
運行後地址相同,和我們預期的不同,原因在於我們基於操作系統所使用的地址都是虛擬地址。
技術分享圖片
經常被以往的事實:
應用程序開發時,面對的內存為虛擬內存,虛擬內存模式下使用的內存為虛擬地址,個一個進程擁有自己獨立的虛擬地址空間。虛擬內存於實際物理內存無關,時一個假想的足夠大的內存空間。
所以,內存需求為1G的應用程序也可以運行在實際內存為256M的計算機上。

3.3虛擬內存的意義

虛擬內存的意義在於,能夠支持多個打內存需求量的進程同時運行於較小的物理內存中。
技術分享圖片

4虛擬內存的機制

A.虛擬內存需要重新映射到物理內存。
B.虛擬地址映射到物理內存中的實際地址。

C.每次只有進程的少量代碼在物理內存中運行
D.大部分進程代碼位於存儲區中

3.5頁式內存管理

頁時一個內存單位,指一定數量的內存,通常一頁的大小時4K
虛擬內存管理和物理內存以頁為單位進行管理
進程的活動頁被載入內存時,記錄頁地址的映射關系
技術分享圖片
頁式內存管理分為兩個部分:(p, d)
P 指的是地址高位,頁編號
d 指的是地址地位,頁內偏移量
技術分享圖片
技術分享圖片
技術分享圖片
3.6如何提升電腦性能,why?
A.更換主頻更高的處理器(同系列):當主頻更高時上述流程中的查詢速度和換入換出的速度都將提高,自然提升了電腦的讀寫速度,從而提高新能。
B.增加物理內存大小:增加物理內存則減少了上述流程的換入和換出次數。
C.更換SSD固態硬盤:增加了內存讀寫的速度。

深入淺出處理器(下)_內存管理(映射)