AVM/EF (Advanced Virtual Machine/Extended Facilities)は,富士通の仮想計算機(VM : Virtual Machine)システムを制御するオペレーティングシステム(以下OS)であり,1982年6月に発表された.AVM/EFでは,ハードウェアが持つ高速VM機構を利用して5〜15%という小さいオーバーヘッド(実計算機上でのCPU時間に対する仮想計算機システムでのCPU時間の増加比率)を実現し,高性能な仮想計算機システムを提供した.1989年6月には,Mシリーズの新しいアーキテクチャEXA (EXtended Architecture)に対応した拡張VM機構を使用し,オーバーヘッドをAVM/EFの最大1/3に削減したAVM/EX (Advanced Virtual Machine/Extended)が発表された.
以下に,富士通の仮想計算機用OSの歴史,仮想計算機用OSの機能および仮想計算機システムの導入効果について説明する.
1. 富士通の仮想計算機用OSの歴史
富士通は,FACOM Mシリーズ用仮想計算機用OSとしてAVM(Advanced Virtual Machine)を1980年から主に大型Mシリーズコンピュータ用に出荷していた.このAVMは,ハードウェアが有するAVMA(AVM Assist)を使用したが,AVMが行うシミュレーションのオーバーヘッド(実計算機上でのCPU時間に対する仮想計算機システムでのCPU時間の増加比率)が大きかった.
そこで,富士通は汎用コンピュータFACOM M-300シリーズで,このオーバーヘッドを大幅に削減する新しいアーキテクチャとして高速VM機構を開発した.この高速VM機構を活用し,さらに,仮想計算機で使用するチャネルを専用とする機能(専用チャネル機能)を新たに開発して,OSのオーバーヘッドを大幅に削減したAVM/EFを1982年6月に発表した(超大型コンピュータFACOM M-380モデルグループでのオーバーヘッドは5〜15%).
また,富士通は,従来のMシリーズアーキテクチャを拡張し,システム記憶(SSU),拡張チャネル機構(ECF)および拡張VM機構(EVM)などを追加した拡張アーキテクチャ EXA (EXtended Architecture)をM-700シリーズの上位機で実装したが,仮想計算機OSとして拡張アーキテクチャに対応したAVM/EX (Advanced Virtual Machine/Extended)を1989年6月に発表した.AVM/EXでは,ハードウェアの拡張VM機構を使用して,そのオーバーヘッドをAVM/EFに対し最大1/3(平均1/2)に削減した.
富士通は,FACOM Mシリーズ用仮想計算機用OSとしてAVM(Advanced Virtual Machine)を1980年から主に大型Mシリーズコンピュータ用に出荷していた.このAVMは,ハードウェアが有するAVMA(AVM Assist)を使用したが,AVMが行うシミュレーションのオーバーヘッド(実計算機上でのCPU時間に対する仮想計算機システムでのCPU時間の増加比率)が大きかった.
そこで,富士通は汎用コンピュータFACOM M-300シリーズで,このオーバーヘッドを大幅に削減する新しいアーキテクチャとして高速VM機構を開発した.この高速VM機構を活用し,さらに,仮想計算機で使用するチャネルを専用とする機能(専用チャネル機能)を新たに開発して,OSのオーバーヘッドを大幅に削減したAVM/EFを1982年6月に発表した(超大型コンピュータFACOM M-380モデルグループでのオーバーヘッドは5〜15%).
また,富士通は,従来のMシリーズアーキテクチャを拡張し,システム記憶(SSU),拡張チャネル機構(ECF)および拡張VM機構(EVM)などを追加した拡張アーキテクチャ EXA (EXtended Architecture)をM-700シリーズの上位機で実装したが,仮想計算機OSとして拡張アーキテクチャに対応したAVM/EX (Advanced Virtual Machine/Extended)を1989年6月に発表した.AVM/EXでは,ハードウェアの拡張VM機構を使用して,そのオーバーヘッドをAVM/EFに対し最大1/3(平均1/2)に削減した.
2. 仮想計算機用OSの機能
AVMの制御プログラムであるCP(Control Program)は,実計算機資源を分割,再構成し,実計算機の機能をシミュレートして,機能的に実計算機と等価な仮想計算機を作り出す.このVMの計算機資源はCPにより以下のように作り出された.
AVMの制御プログラムであるCP(Control Program)は,実計算機資源を分割,再構成し,実計算機の機能をシミュレートして,機能的に実計算機と等価な仮想計算機を作り出す.このVMの計算機資源はCPにより以下のように作り出された.
(1) 仮想コンソール
VMのシステムコンソール装置を仮想コンソールと呼んだ.CPは文字ディスプレイ装置などの仮想コンソールからのCPコマンド指令により実計算機のコンソールが持つIPL機能などをシミュレートした.
VMのシステムコンソール装置を仮想コンソールと呼んだ.CPは文字ディスプレイ装置などの仮想コンソールからのCPコマンド指令により実計算機のコンソールが持つIPL機能などをシミュレートした.
(2) 仮想CPU
VMのCPUを仮想CPUと呼んだ.CPは実CPUの演算時間をCPU配分に基づいて時分割で各VMに与え,仮想CPUを作り出した.
仮想CPUでの特権命令の実行や割り込み動作については,AVMではすべてCPがその動作をシミュレートした.しかし,AVM/EFおよびAVM/EXでは,CPが動作している(ホストモード)か,VMが動作している(ゲストモード)かを認識するモードを設け,ハードウェアが直接実行する仕組みを高速VM機構および拡張VM機構に設けた.ハードウェアが直接実行する範囲は高速VM機構と拡張VM機構で異なるが,このハードウェア機構によりAVM/EFおよびAVM/EXのオーバーヘッドの削減に寄与した.
また,AVM/EXは,MアーキテクチャとEXAアーキテクチャのVMを同時にサポートし,システム内のすべてのCPUはVM間で共用したり特定のVMが専用で使用したりできるようにして,運用の柔軟性と信頼性を高めた.
VMのCPUを仮想CPUと呼んだ.CPは実CPUの演算時間をCPU配分に基づいて時分割で各VMに与え,仮想CPUを作り出した.
仮想CPUでの特権命令の実行や割り込み動作については,AVMではすべてCPがその動作をシミュレートした.しかし,AVM/EFおよびAVM/EXでは,CPが動作している(ホストモード)か,VMが動作している(ゲストモード)かを認識するモードを設け,ハードウェアが直接実行する仕組みを高速VM機構および拡張VM機構に設けた.ハードウェアが直接実行する範囲は高速VM機構と拡張VM機構で異なるが,このハードウェア機構によりAVM/EFおよびAVM/EXのオーバーヘッドの削減に寄与した.
また,AVM/EXは,MアーキテクチャとEXAアーキテクチャのVMを同時にサポートし,システム内のすべてのCPUはVM間で共用したり特定のVMが専用で使用したりできるようにして,運用の柔軟性と信頼性を高めた.
(3) 仮想主記憶
VMの主記憶を仮想主記憶と呼んだ.仮想主記憶の実現方法には,2つの方法があった.1つは主記憶(実主記憶)の連続領域を各VMに専用の仮想主記憶として与える方法で,V=R (Virtual=Real)領域とドメイン領域の2種の領域タイプがあった.もう1つの方法は,主記憶(実主記憶)のページング領域をデマンドページング方式により複数のVMの主記憶として共通使用する方法である.
VM専用に仮想主記憶を与える方法のドメイン領域の場合, VMの仮想記憶空間(図のレベル3)の実際の主記憶(実主記憶)アドレスを求めるには,そのVMの仮想記憶空間(図のレベル3)がマッピングされている仮想主記憶(図のレベル2)のアドレスに,さらに仮想主記憶自身が割当てられている主記憶(図のレベル1)の先頭アドレスを加算する必要がある.AVMでは,VMシステムが生成したアドレス変換用テーブルの中の実アドレスを書き替える方式のため,OSのオーバヘッドが大きかった.高速VM機構および拡張VM機構では,ハードウェアにVMに割り当てた主記憶(実主記憶)アドレスの先頭を示すレジスタを設け,アドレス変換の際にこのレジスタの値を加算するようにした.これによりAVM/EFおよびAVM/EXでは,テーブルの書き換え作業が不要となりオーバヘッドを大幅に削減することができた.
VMの主記憶を仮想主記憶と呼んだ.仮想主記憶の実現方法には,2つの方法があった.1つは主記憶(実主記憶)の連続領域を各VMに専用の仮想主記憶として与える方法で,V=R (Virtual=Real)領域とドメイン領域の2種の領域タイプがあった.もう1つの方法は,主記憶(実主記憶)のページング領域をデマンドページング方式により複数のVMの主記憶として共通使用する方法である.
VM専用に仮想主記憶を与える方法のドメイン領域の場合, VMの仮想記憶空間(図のレベル3)の実際の主記憶(実主記憶)アドレスを求めるには,そのVMの仮想記憶空間(図のレベル3)がマッピングされている仮想主記憶(図のレベル2)のアドレスに,さらに仮想主記憶自身が割当てられている主記憶(図のレベル1)の先頭アドレスを加算する必要がある.AVMでは,VMシステムが生成したアドレス変換用テーブルの中の実アドレスを書き替える方式のため,OSのオーバヘッドが大きかった.高速VM機構および拡張VM機構では,ハードウェアにVMに割り当てた主記憶(実主記憶)アドレスの先頭を示すレジスタを設け,アドレス変換の際にこのレジスタの値を加算するようにした.これによりAVM/EFおよびAVM/EXでは,テーブルの書き換え作業が不要となりオーバヘッドを大幅に削減することができた.