教科書そのままなので、誤訳や理解不足もあるかもしれませんが置いておきます。
* VMの動作原理
* CPUの仮想化
* CPUはレジスタと命令で動作する。VMMはアクティブなVMへの
ポインタを保持し、CPUからのデータをアクティブなVMに引きわたす。
また、アクティブなVMを切替えるタイミングで仮想レジスタから物理
レジスタに内容をコピーする。これはコンテキストスイッチと呼ばれる
処理で、OS内のプロセスの切替でも発生する処理である。
* メモリの仮想化
* VMMで、VMのページテーブルと実メモリのページテーブルをマッピング
するシャドウページテーブルを管理する。VM内でのメモリアクセスは、
シャドウページテーブルにしたがって実メモリにアドレス変換されて
アクセスされる。これはレガシOSで大きなメモリを扱う場合に
用いられる方法と同じである。
* デバイス仮想化(I/O仮想化)
* ストレージ: VMMでエミュレートする。併せてキャッシュと圧縮も行うこ
とで実ドライブへのアクセスがスループットにあたえる影響を低減する
* ネットワーク: VM内に仮想デバイスドライバをもち、VMMで変換を行う。
物理マシンは複数のIPアドレスを保持することができるため、
* ディスプレイ,入力装置: 仮想デバイスドライバ経由。
リモートコンソール技術に近い。
* 参考資料
* Smith, James E. and Nair, Ravi. 2005. Virtual Machies. Elsevier.
Chapter8 - System Virtulizaion.
CPU仮想化の原理は、シングルコアのCPUの場合の説明と解釈しました。
マルチコアのCPUで、ASMP方式をとる場合は、VM切り替え時のコンテクストスイッチは無いと考えてよいですか?