PopekとGoldbergの仮想化要件

ポペックとゴールドバーグの仮想化要件



ポペックとゴールドバーグの仮想化要件とは、コンピュータアーキテクチャが効率的にシステムの仮想化を実現するための十分条件をまとめたものです。この要件は、ジェラルド・J・ポペックとロバート・P・ゴールドバーグが1974年の論文「Formal Requirements for Virtualizable Third Generation Architectures」で提唱しました。この論文では、仮想化可能なアーキテクチャの条件について詳細に分析されており、現代の仮想化技術の基礎となっています。

はじめに



仮想マシンとは、プロセッサ、メモリ、記憶装置、周辺機器など、ハードウェア資源の全てを仮想化する技術です。仮想マシンモニタ (VMM) は、仮想マシンの抽象化層を提供するソフトウェアであり、VMM が作り出す環境には、以下の三つの重要な特性が求められます。

等価性: VMM 上で動作するプログラムは、物理的なマシン上で直接実行した場合と、本質的に同じ振る舞いをしなければなりません。
資源の管理: VMM は、仮想化された資源を完全に管理下に置く必要があります。
効率性: ほとんどの命令は、VMM の介在なしに実行される必要があります。

ポペックとゴールドバーグは、上記の特性を全て満たす VMM を構築するために、実機が備えるべき命令セットアーキテクチャ (ISA) の特徴を分析しました。彼らの分析は、IBM 360、Honeywell 6000、DEC PDP-10といった第三世代アーキテクチャを基盤としていますが、現代のアーキテクチャにも適用できる普遍的な内容を含んでいます。

仮想化要件



仮想化要件を導き出すために、ポペックとゴールドバーグは命令セットの各命令を以下の3つに分類しました。

1. 特権命令: プロセッサがユーザーモードで実行しようとした場合、トラップされる命令
2. 制御センシティブ命令: システム資源の構成を変更しようとする命令
3. 動作センシティブ命令: システム資源の構成(例:再配置レジスタやプロセッサモード)に動作や結果が依存する命令

ポペックとゴールドバーグの分析結果は、以下の定理としてまとめられます。

定理1: 一般的な第三世代コンピュータにおいて、全てのセンシティブ命令が特権命令であれば、VMM を構築できます。

この定理は、VMM の正常な動作に影響を与える可能性のある命令(センシティブ命令)は、常に VMM に制御を渡すことが、資源管理の観点から十分条件であることを示しています。また、非特権命令を直接実行することで、効率性と等価性の特性も確保できると述べています。

さらに、再帰的な仮想化、つまり VMM が同じ VMM 上で動作するような場合についての ISA 要件も導出しています。

定理2: 一般的な第三世代コンピュータにおいて、仮想化可能であり、かつタイミング依存がない VMM が構築できるならば、再帰的な仮想化が可能です。

クリティカルな命令の扱い



効率性を犠牲にすれば、定理1で示された ISA 仮想化の条件を緩和できます。実際、過去には仮想化できない ISA のために VMM が実現された例が数多く存在します。このようなアーキテクチャの仮想化では、「クリティカルな命令」、つまりセンシティブであるにもかかわらず、特権命令ではない命令を適切に扱う必要があります。

これを実現する手法の一つが「パッチ」です。これは、動的再コンパイルの手法を用いて、クリティカル命令を実行時に検出し、VMM へのトラップに置き換えることで実現します。また、エミュレーションコードのキャッシュやハードウェア支援による高速化も提案されています。準仮想化は別のアプローチであり、ゲストOSを仮想環境で動作させる前に修正する必要があります。

命令セットと仮想化要件



いくつかのアーキテクチャが仮想化要件をどの程度満たしているかについて、以下に説明します。

PDP-10: センシティブ命令の一部が特権命令ではないため、ポペックとゴールドバーグの要件を満たしていません。
System/370: センシティブ命令がすべて特権命令であるため、仮想化要件を満たします。
Motorola MC68000: センシティブ命令である SR レジスタからの MOVE 命令が特権命令でないため、ポペックとゴールドバーグの要件を満たしていません。MC68010以降ではこの命令が特権化されました。
IA-32 (x86): 非特権のセンシティブ命令が17個存在するため、当初は仮想化要件を満たしていませんでした。しかし、Intel VT拡張やAMD-Vにより、ポペックとゴールドバーグの仮想化要件を満たすプロセッサが実現しました。
IA-64: 仮想化に関する手法が論文で示されています。
SPARC: UltraSPARCアーキテクチャには、超特権モードが存在し、sun4vプラットフォームを定義する上で重要な役割を果たします。

まとめ



ポペックとゴールドバーグの仮想化要件は、仮想化技術の基礎となる重要な概念です。これらの要件を理解することで、様々なアーキテクチャにおける仮想化の可能性や課題をより深く理解することができます。

関連項目



仮想機械
仮想化

参考文献



Smith, Jim; Ravi Nair (2005). Virtual Machines. Morgan Kaufmann. ISBN 1-55860-910-5

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。