OSとハードウェア

入れ子ページング(2段のアドレス変換)を使った仮想化で、ハードウェアが行うアドレス変換の説明として正しいものはどれか。

  1. A仮想マシンのOSのページテーブルだけをたどり、ハイパーバイザの表は使わない
  2. Bゲスト仮想→ゲスト物理→ホスト物理の2段で変換する
  3. Cハイパーバイザがすべてのメモリアクセスを横取りし、ソフトウェアで1回ずつ変換する
答えと解説を見る

正解:B. ゲスト仮想→ゲスト物理→ホスト物理の2段で変換する

仮想マシンのOSは、自分が管理する物理アドレス(ゲスト物理アドレス)が実際のメモリだと思っていますが、実際にはハイパーバイザが割り当てた別の場所にあります。入れ子ページングでは、ハードウェアがゲストのページテーブルでゲスト物理アドレスまで変換し、さらにハイパーバイザの表でホストの物理アドレスまで変換します。ゲストがページテーブルを書き換えるたびにハイパーバイザが介入する必要がなくなります。すべてのアクセスをソフトウェアで変換していては遅すぎます。

  • A. ハイパーバイザの表も使い、2段で変換します。
  • B. 正しい。ゲスト仮想→ゲスト物理→ホスト物理の2段で変換します。
  • C. すべてをソフトウェアで変換すると遅すぎます。
この分野を解く 分野ページへ

OSとハードウェアのほかの問題

  1. ゲストもホストも4段のページテーブルを使う入れ子ページングで、TLBミスが起きたとき、最悪で何回のメモリアクセスが必要になるか。
  2. 仮想マシンのOSが特権の必要な命令を実行したとき、ハイパーバイザに処理が移り、ハイパーバイザがその命令の効果を代わりに再現する方式を何と呼ぶか。
  3. 準仮想化(パラバーチャライゼーション)の説明として正しいものはどれか。
  4. コンテナと仮想マシンの違いとして正しいものはどれか。
  5. 多くのOSで、カーネルの領域を各プロセスのアドレス空間の一部(例えば上位の範囲)に割り当てておき、ページテーブルの保護ビットでユーザモードからのアクセスを禁止している。この配置の主な利点はどれか。