VMの動作原理

教科書そのままなので、誤訳や理解不足もあるかもしれませんが置いておきます。
 * 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.