1. 程式人生 > >虛擬記憶體詳解(2)

虛擬記憶體詳解(2)

一、定義以及基本思想

  1. 定義:系統對主存的抽象。
  2. 基本思想:允許每個資料物件有多個獨立的地址,其中每個地址選自不同的地址空間。

二、作用

  1. 將主存看成是一個儲存在磁碟上的地址空間的快取記憶體,在主存中只儲存活動區域,並根據需要在主存和磁碟中來回傳遞資料,通過這種方式可以高效的使用主存。
  2. 它為每個程序提供一致的的地址空間,從而簡化了記憶體管理。
  3. 它保護了每個地址空間不被其他程序所破壞。

三、虛擬記憶體和主存的區別

  1. 主存被組織為存放在記憶體條上的M個連續的位元組大小的單元組成的陣列,每個位元組都有一個唯一的實體地址(Physical Address,PA)
  2. 虛擬記憶體被組織為一個由存放在磁碟上的N個連續的位元組大小的單元組成的陣列。每個位元組都有一個唯一的虛擬地址(Virtual Address,VA)。
  3. 主存中每個位元組都有一個來自虛擬地址空間中的虛擬地址和一個選自實體地址空間中的實體地址。

四、地址空間

  1. 定義:是一個非負整數地址的有序集合。
    {0,1,2,……}
  2. CPU從一個N = 2^n個地址的地址空間中生成虛擬地址,這個地址空間被稱為虛擬地址空間(Virtual Address Space)。
    {0,1,2,3,……,N-1}
  3. 實體地址空間,對應於系統中實體記憶體M個位元組。
    {0,1,2,3,……,M-1}

五、虛擬頁和物理頁

磁碟中的內容快取到主存中,磁碟中的資料被分割成塊,這些塊作為磁碟和主存之間的傳輸單元。

  1. 將虛擬記憶體分割成的塊被稱為虛擬頁(Virtual Page,VP),其大小為P = 2^p個位元組。
  2. 將實體記憶體分割成的塊被稱為物理頁(Physical Page,PP)亦稱為頁幀,大小也為P個位元組。

六、虛擬頁三種狀態

  1. 未分配的:VM系統還未分配(建立)的頁。未分配的塊沒有任何資料和他們相關聯,因此不佔用任何磁碟空間。
  2. 快取的:當前已快取在實體記憶體中的已分配的頁。
  3. 未快取的:未快取在實體記憶體中的已分配的頁。

七、DRAM和SRAM

  1. SRAM快取:位於CPU和主存之間的L1、L2和L3的快取記憶體。
  2. DRAM快取:VM系統的快取,即:主存。

八、記憶體管理單元(MMU)

  1. 英文全稱:Memory Management Unit;
  2. 作用:主要負責CPU記憶體訪問的時候將虛擬地址轉換為實體地址的單元。也就是說CPU想要訪問記憶體必須先經過MMU的轉換,獲得真正的實體地址,才能讀寫實體記憶體的資料。

(SAW:Game Over!)