OSとハードウェア
入れ子ページング(2段のアドレス変換)を使った仮想化で、ハードウェアが行うアドレス変換の説明として正しいものはどれか。
- A仮想マシンのOSのページテーブルだけをたどり、ハイパーバイザの表は使わない
- Bゲスト仮想→ゲスト物理→ホスト物理の2段で変換する
- Cハイパーバイザがすべてのメモリアクセスを横取りし、ソフトウェアで1回ずつ変換する
答えと解説を見る
正解:B. ゲスト仮想→ゲスト物理→ホスト物理の2段で変換する
仮想マシンのOSは、自分が管理する物理アドレス(ゲスト物理アドレス)が実際のメモリだと思っていますが、実際にはハイパーバイザが割り当てた別の場所にあります。入れ子ページングでは、ハードウェアがゲストのページテーブルでゲスト物理アドレスまで変換し、さらにハイパーバイザの表でホストの物理アドレスまで変換します。ゲストがページテーブルを書き換えるたびにハイパーバイザが介入する必要がなくなります。すべてのアクセスをソフトウェアで変換していては遅すぎます。
- A. ハイパーバイザの表も使い、2段で変換します。
- B. 正しい。ゲスト仮想→ゲスト物理→ホスト物理の2段で変換します。
- C. すべてをソフトウェアで変換すると遅すぎます。