準仮想化

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

計算機科学において準仮想化(じゅんかそうか、: Paravirtualization)は、仮想機械へのソフトウェアインタフェースを提供する仮想化技術の一つである。それはハードウェアの上層に存在し、仮想機械 (VM) と似ているが同一のものではない。 準仮想化を用いることでハイパーバイザ (VMM) はよりシンプルにでき、その上で動作する仮想機械の動作パフォーマンスを仮想化されていない物理ハードウェア上で動作させる時に近づけることができるようになるだろう。しかしながら、オペレーティングシステムを準仮想化されたVMMの上で動作させるには修正が必要になる。プロプライエタリなオペレーティングシステムの開発をおこなっている所は、戦略的な目的で準仮想化を可能にするために自社製品に手を入れることになるかもしれない。

歴史[編集]

これは古くからあるアイデアに基づいた新しい用語である。IBMのVMオペレーティングシステムは1972年から(CP-67と同じくらい早くに)すでにこのような機能を提供していた。[1] 仮想機械の世界では、これは「診断」コードとして参照されていた。なぜなら、この機能は通常ソフトウェアをメンテナンスするハードウェア専用として使用される命令コードを使っていたからであり、未定義であったからである。IBMの会話型モニタシステムは、サービスを要求するためにVMを呼び出すための「診断」コードを使っている。

Parallels Workstationオペレーティングシステムは、それと同等のhypercallを呼び出している。やっていることは同じで、システムが下層のハイパーバイザを呼び出しているだけである。このような呼び出しは「ゲスト」オペレーティングシステムでサポートされる必要があり、このような呼び出しをするためにハイパーバイザ固有のコードを持たなければならない。

「準仮想化」という用語は、Denali仮想マシンモニタに関連した研究文献で最初に使われた。[2] また、この用語はXenL4、VirtualLogix VLX、TRANGOハイパーバイザ関連の文書にも使われている。これらのプロジェクトすべてが準仮想化技術を用いており、x86命令セットのうち仮想化しづらいものを組み込まない仮想機械を実装することによって、x86ハードウェア上での仮想機械のパフォーマンスを高めている。準仮想化はARMPowerPC、DSPのようなx86以外のハードウェアプラットフォーム上でも使われている。

パフォーマンスを高めるために準仮想化を用いた例として、現実に搭載されているネットワークカードDMAを用いたパケット送信機能がないにも関わらずその機能をサポートしたインテリジェントなネットワークカードを、VMモニタがゲストオペレーティングシステムに提供しているものがある[要出典]。パケット送信はVMモニタによって完全に行われ、NICの割り込みもそのモニタが処理を行ってしまう。ゲストオペレーティングシステムに割り込みを配送するのはオーバーヘッドが大きい処理であるため、それが省略される分パフォーマンスは改善される。

脚注・出典[編集]

  1. ^ VM History and Heritage”. IBM. 2007年10月10日閲覧。
  2. ^ A. Whitaker, M. Shaw, and S. D. Gribble, "Denali: Lightweight Virtual Machines for Distributed and Networked Applications", Univ. of Washington Technical Report 02-02-01, (2002). (Available from Denali publications, technical reports, and talks)

関連項目[編集]

外部リンク[編集]