作業系統與硬體

在使用巢狀分頁(nested paging,兩層位址轉換)的虛擬化中,關於硬體進行位址轉換的說明,下列何者正確?

  1. A只走訪虛擬機器作業系統的頁表,不使用虛擬機器監視器的表
  2. B分兩層轉換:客體虛擬位址→客體實體位址→主機實體位址
  3. C虛擬機器監視器攔截所有記憶體存取,以軟體逐次轉換
查看答案與解析

正確答案:B. 分兩層轉換:客體虛擬位址→客體實體位址→主機實體位址

虛擬機器的作業系統以為自己管理的實體位址(客體實體位址)就是真正的記憶體,但實際上它位於虛擬機器監視器所分配的另一處。在巢狀分頁中,硬體先用客體的頁表轉換到客體實體位址,再用虛擬機器監視器的表轉換到主機的實體位址。如此一來,客體每次改寫頁表時,就不需要虛擬機器監視器介入。若所有存取都以軟體轉換,速度會太慢。

  • A. 也會使用虛擬機器監視器的表,分兩層轉換。
  • B. 正確。分兩層轉換:客體虛擬→客體實體→主機實體。
  • C. 全部以軟體轉換會太慢。
練習這個領域 前往領域頁面

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

  1. 在客體與主機都使用4層頁表的巢狀分頁中,發生TLB未命中時,最壞情況下需要幾次記憶體存取?
  2. 當虛擬機器的作業系統執行需要特權的指令時,處理會轉移到虛擬機器監視器,由其代為重現該指令效果的方式,稱為什麼?
  3. 關於半虛擬化(paravirtualization)的說明,下列何者正確?
  4. 關於容器(container)與虛擬機器的差異,下列何者正確?
  5. 許多作業系統會將核心的區域配置在各行程位址空間的一部分(例如高位範圍),並以頁表的保護位元禁止使用者模式存取。這種配置的主要優點為何?

這個領域的比較