作業系統與硬體

將頁表做成多層(階層式)而非單層,其主要理由為下列何者?

  1. A因為可以省略不使用範圍的表,節省頁表所佔用的記憶體
  2. B因為每次位址轉換時要讀取的表變少,TLB未命中的處理變快
  3. C因為可以讓實體記憶體容量大於虛擬位址空間
查看答案與解析

正確答案:A. 因為可以省略不使用範圍的表,節省頁表所佔用的記憶體

單層頁表不論是否使用,都需要涵蓋虛擬位址空間所有分頁的項目,在64位元環境下表會變得非常龐大。改成多層後,只需為使用中的範圍建立下層的表,沒有使用的範圍則在上層表中將項目設為無效即可,因此只需依程式使用量配置記憶體。相對地,發生TLB未命中時要走訪的表會隨層數增加而變多,速度變慢。這與實體記憶體的大小無關。

  • A. 正確。可以省略不使用範圍的表,節省記憶體。
  • B. 要走訪的表數反而會隨層數增加。
  • C. 與實體記憶體的容量無關。
練習這個領域 前往領域頁面

作業系統與硬體的其他題目

  1. 虛擬位址為32位元、分頁大小為4 KB、頁表每個項目為4位元組時,單層頁表的大小是多少?
  2. 使用48位元的虛擬位址、分頁大小4 KB、每層表為512個項目(9位元)的多層頁表,需要走訪幾層表?
  3. 關於頁表的各個項目中通常包含的資訊組合,下列何者正確?
  4. 複製行程時使用寫入時複製(copy-on-write)的優點,下列何者正確?
  5. 關於需求分頁(demand paging)的說明,下列何者正確?

這個領域的比較