(57)【特許請求の範囲】
【請求項１】
物理計算機の仮想化制御プログラムにより制御される仮想計算機上に、認識可能なプロセッサ数に制限のある基本ソフトウェアを動作させる仮想計算機装置であって、
前記仮想計算機は、前記基本ソフトウェアによって認識されて計算を行う仮想プロセッサと、当該仮想プロセッサから独立して独自に計算を行う仮想計算ユニットとを備え、
前記基本ソフトウェアは、前記仮想計算ユニットにアクセスし、前記仮想プロセッサを使用しない所望の計算を行わせるユニット制御プログラムを備え、
前記仮想化制御プログラムは、前記仮想計算ユニットが計算を行う際に仲介し、前記物理計算機が備える物理プロセッサのうち、前記仮想プロセッサに対応しない物理プロセッサに、当該計算を行わせる、
ことを特徴とする仮想計算機装置。
【請求項２】
物理計算機のハイパーバイザにより制御される仮想計算機上に、認識可能なＣＰＵ（Central Processing Unit）数に制限のあるゲストＯＳ（Operating System）を動作させる仮想計算機装置であって、
前記仮想計算機は、前記ゲストＯＳによって認識されて計算を行う仮想ＣＰＵと、当該仮想ＣＰＵから独立して独自に計算を行う仮想計算デバイスとを備え、
前記ゲストＯＳは、前記仮想計算デバイスにアクセスし、前記仮想ＣＰＵを使用しない所望の計算を行わせるドライバを備え、
前記ハイパーバイザは、前記仮想計算デバイスが計算を行う際に仲介し、前記物理計算機が備える物理ＣＰＵのうち、前記仮想ＣＰＵに対応しない物理ＣＰＵに、当該計算を行わせる、
ことを特徴とする仮想計算機装置。
【請求項３】
前記物理計算機は、複数の前記物理ＣＰＵを備えており、
前記ゲストＯＳは、前記物理ＣＰＵの総数よりも少ない数の前記仮想ＣＰＵを認識しており、
前記ハイパーバイザは、前記仮想計算デバイスが行う計算を仲介する際に、前記ゲストＯＳが認識している前記仮想ＣＰＵに対応する前記物理ＣＰＵとは異なる前記物理ＣＰＵに、計算を行わせる、
ことを特徴とする請求項２に記載の仮想計算機装置。
【請求項４】
前記ドライバは、コード及びデータを伴って前記仮想計算デバイスにアクセスし、
前記ハイパーバイザは、前記仮想計算デバイスから前記コード及び前記データを取得すると、前記物理ＣＰＵに当該コード及びデータに基づいた計算を実行させる、
ことを特徴とする請求項２又は３に記載の仮想計算機装置。
【請求項５】
前記仮想計算デバイスは、内部に自己のＣＰＵ及びメモリを構成するように振る舞い、
前記ハイパーバイザは、仮想計算機のメモリ中のコードを、前記仮想計算デバイスの前記ＣＰＵから参照できるように前記仮想計算デバイスの前記メモリのテーブルを変更する、
ことを特徴とする請求項４に記載の仮想計算機装置。
【請求項６】
物理計算機のハイパーバイザにより制御される仮想計算機上に、認識可能なＣＰＵ数に制限のあるゲストＯＳを動作させる仮想計算機装置における計算資源活用方法であって、
前記仮想計算機は、仮想ＣＰＵ、及び、仮想計算デバイスを備え、前記ゲストＯＳは、ドライバを備えており、
前記仮想ＣＰＵが、前記ゲストＯＳによって認識されて計算を行うステップと、
前記仮想計算デバイスが、前記仮想ＣＰＵから独立して独自に計算を行うステップと、
前記ドライバが、前記仮想計算デバイスにアクセスし、前記仮想ＣＰＵを使用しない所望の計算を行わせるステップと、
前記ハイパーバイザが、前記仮想計算デバイスが計算を行う際に仲介し、前記物理計算機が備える物理ＣＰＵのうち、前記仮想ＣＰＵに対応しない物理ＣＰＵに、当該計算を行わせるステップと、
を備えることを特徴とする計算資源活用方法。
【請求項７】
コンピュータを、ハイパーバイザ、仮想計算機、及び、認識可能なＣＰＵ数に制限のあるゲストＯＳとして機能させるプログラムであって、
前記仮想計算機は、前記ゲストＯＳによって認識されて計算を行う仮想ＣＰＵと、当該仮想ＣＰＵから独立して独自に計算を行う仮想計算デバイスとを備え、
前記ゲストＯＳは、前記仮想計算デバイスにアクセスし、前記仮想ＣＰＵを使用しない所望の計算を行わせるドライバを備え、
前記ハイパーバイザは、前記仮想計算デバイスが計算を行う際に仲介し、前記コンピュータが備える物理ＣＰＵのうち、前記仮想ＣＰＵに対応しない物理ＣＰＵに、当該計算を行わせる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理計算機に備わっている計算資源をより有効に活用することのできる仮想計算機装置、計算資源活用方法、および、プログラムに関する。
【背景技術】
【０００２】
関連する仮想計算機装置では、物理計算機（物理マシン）上に仮想の計算機（仮想マシン）が構築され、この仮想マシン上に、所定のＯＳ（Operating System）がゲストＯＳとして動作するようになっている。ゲストＯＳは、仮想マシンとして仮想化された各種資源を利用して動作している。例えば、物理マシンの物理ＣＰＵ（Central Processing Unit）は、仮想マシンの仮想ＣＰＵとして割り当てられており、この仮想ＣＰＵをゲストＯＳが、計算資源として認識している。
【０００３】
このような仮想計算機装置には、物理計算機に複数の論理区画を設け、それぞれの論理区画でＯＳを同時稼動させるものもある。そして、ＯＳ稼働中に論理区画間で資源を動的に割り当てる発明も開示されている（例えば、特許文献１参照）。
【特許文献１】特開２００５−１４８８７５号公報  （第７−１４頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
通常、ＯＳが認識できるＣＰＵの数（ＣＰＵ内のコア数も含む）には、ＯＳ自身の制限等により、上限がある。そのため、ゲストＯＳでも、自己が認識できるＣＰＵ（仮想ＣＰＵ）の数を超えたＣＰＵを利用することができない。これにより、たとえ、物理マシンに多数のＣＰＵが備わっていたとしても、ゲストＯＳからは、そのうちの一部のＣＰＵしか利用できないという不都合が生じていた。
このように、仮想計算機装置では、ゲストＯＳから、物理計算機に備わっている計算資源を十分に活用できないという問題があった。
【０００５】
本発明は、このような課題を解決するためになされたもので、物理計算機に備わっている計算資源をより有効に活用することのできる仮想計算機装置、計算資源活用方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の観点に係る仮想計算機装置は、
物理計算機の仮想化制御プログラムにより制御される仮想計算機上に、認識可能なプロセッサ数に制限のある基本ソフトウェアを動作させる仮想計算機装置であって、
前記仮想計算機は、前記基本ソフトウェアによって認識されて計算を行う仮想プロセッサと、当該仮想プロセッサから独立して独自に計算を行う仮想計算ユニットとを備え、
前記基本ソフトウェアは、前記仮想計算ユニットにアクセスし、前記仮想プロセッサを使用しない所望の計算を行わせるユニット制御プログラムを備え、
前記仮想化制御プログラムは、前記仮想計算ユニットが計算を行う際に仲介し、前記物理計算機が備える物理プロセッサのうち、前記仮想プロセッサに対応しない物理プロセッサに、当該計算を行わせる、
ことを特徴とする。
【０００７】
本発明の第２の観点に係る仮想計算機装置は、
物理計算機のハイパーバイザにより制御される仮想計算機上に、認識可能なＣＰＵ数に制限のあるゲストＯＳを動作させる仮想計算機装置であって、
前記仮想計算機は、前記ゲストＯＳによって認識されて計算を行う仮想ＣＰＵと、当該仮想ＣＰＵから独立して独自に計算を行う仮想計算デバイスとを備え、
前記ゲストＯＳは、前記仮想計算デバイスにアクセスし、前記仮想ＣＰＵを使用しない所望の計算を行わせるドライバを備え、
前記ハイパーバイザは、前記仮想計算デバイスが計算を行う際に仲介し、前記物理計算機が備える物理ＣＰＵのうち、前記仮想ＣＰＵに対応しない物理ＣＰＵに、当該計算を行わせる、
ことを特徴とする。
【０００８】
本発明の第３の観点に係る計算資源活用方法は、
物理計算機のハイパーバイザにより制御される仮想計算機上に、認識可能なＣＰＵ数に制限のあるゲストＯＳを動作させる仮想計算機装置における計算資源活用方法であって、
前記仮想計算機は、仮想ＣＰＵ、及び、仮想計算デバイスを備え、前記ゲストＯＳは、ドライバを備えており、
前記仮想ＣＰＵが、前記ゲストＯＳによって認識されて計算を行うステップと、
前記仮想計算デバイスが、前記仮想ＣＰＵから独立して独自に計算を行うステップと、
前記ドライバが、前記仮想計算デバイスにアクセスし、前記仮想ＣＰＵを使用しない所望の計算を行わせるステップと、
前記ハイパーバイザが、前記仮想計算デバイスが計算を行う際に仲介し、前記物理計算機が備える物理ＣＰＵのうち、前記仮想ＣＰＵに対応しない物理ＣＰＵに、当該計算を行わせるステップと、
を備えることを特徴とする。
【０００９】
本発明の第４の観点に係るプログラムは、
コンピュータを、ハイパーバイザ、仮想計算機、及び、認識可能なＣＰＵ数に制限のあるゲストＯＳとして機能させるプログラムであって、
前記仮想計算機は、前記ゲストＯＳによって認識されて計算を行う仮想ＣＰＵと、当該仮想ＣＰＵから独立して独自に計算を行う仮想計算デバイスとを備え、
前記ゲストＯＳは、前記仮想計算デバイスにアクセスし、前記仮想ＣＰＵを使用しない所望の計算を行わせるドライバを備え、
前記ハイパーバイザは、前記仮想計算デバイスが計算を行う際に仲介し、前記コンピュータが備える物理ＣＰＵのうち、前記仮想ＣＰＵに対応しない物理ＣＰＵに、当該計算を行わせる、
ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、物理計算機に備わっている計算資源をより有効に活用することができる。
【発明を実施するための最良の形態】
【００１１】
以下に、図面を参照して、本発明の実施形態を説明する。
【００１２】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る仮想計算機装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００１３】
図１に示すように、仮想計算機装置１００は、物理計算機１１０と、仮想化制御プログラム１２０と、仮想計算機１３０と、基本ソフトウェア１４０とを含んで構成される。
【００１４】
物理計算機１１０は、種々のハードウェアから構成される計算機であり、物理的な計算機資源となる物理プロセッサ１１１を複数備えている。
【００１５】
仮想化制御プログラム１２０は、仮想化を実現するための専用のソフトウェアであり、仮想計算機１３０を制御する。
【００１６】
仮想計算機１３０は、仮想化制御プログラム１２０によって制御される仮想的な計算機であり、仮想プロセッサ１３１、及び、仮想計算ユニット１３２を備えている。
【００１７】
基本ソフトウェア１４０は、仮想計算機１３０上で動作し、所定のプロセス等から仮想計算ユニット１３２にアクセスするためのユニット制御プログラム１４１を備えている。
【００１８】
このような構成の仮想計算機装置１００では、基本ソフトウェア１４０が、仮想計算機１３０の仮想プロセッサ１３１を認識している。それでも、基本ソフトウェア１４０は、自身の制限等により、物理プロセッサ１１１の総数（全数）よりも少ない数の仮想プロセッサ１３１までしか認識できない状態となっている。
【００１９】
そのため、仮想計算機１３０は、仮想プロセッサ１３１から独立して独自に計算を行う仮想計算ユニット１３２を備えている。そして、基本ソフトウェア１４０（より詳細には、所定のプロセス）は、ユニット制御プログラム１４１から仮想計算ユニット１３２を呼び出して、計算を行わせる。つまり、基本ソフトウェア１４０は、仮想プロセッサ１３１を使用せずに、仮想計算ユニット１３２を使用して所望の計算を行わせることができる。
【００２０】
なお、仮想化制御プログラム１２０は、仮想計算ユニット１３２が計算を行う際（ユニット制御プログラム１４１から仮想計算ユニット１３２が呼び出された際）に仲介し、実際の計算を物理計算機１１０の物理プロセッサ１１１に行わせる。そして、その計算結果を仮想計算ユニット１３２に返すことで、仮想計算ユニット１３２の内部で計算が行われたように、基本ソフトウェア１４０に見せることができる。
【００２１】
すなわち、基本ソフトウェア１４０は、自己が認識している仮想プロセッサ１３１を使用せずに、仮想計算ユニット１３２を使用することよって所望の計算を行わせることができる。その際、実際の計算は、仮想化制御プログラム１２０によって仲介された物理プロセッサ１１１が行うため、基本ソフトウェア１４０が認識している仮想プロセッサ１３１の数を超えて、物理プロセッサ１１１を利用することが可能となる。
【００２２】
この結果、物理計算機１００に備わっている計算資源（物理プロセッサ１１１）をより有効に活用することができる。
【００２３】
（第２の実施形態）
図２は、本発明の第２の実施形態に係る仮想計算機装置の具体的な構成を示す模式図である。以下、本図を参照して説明する。
【００２４】
図２に示すように、仮想計算機装置２００は、物理マシン２１０と、ハイパーバイザ２２０と、仮想マシン２３０と、ゲストＯＳ２４０と、プロセス２５０とを含んで構成される。
【００２５】
物理マシン２１０は、物理的な計算機資源となるＣＰＵ（Central Processing Unit）、メモリ、ハードディスク、及び、コントローラ（Ｉ／Ｏ）等を有している。
具体的に物理マシン２１０は、内部に、複数の物理ＣＰＵ２１１を有している。なお、発明の理解を容易にするために、図２からは、他の計算機資源について省略している。
【００２６】
ハイパーバイザ（Hypervisor）２２０は、仮想化のために特化した専用のソフトウェア（一例として、カーネル等）であり、仮想マシン２３０を管理し、そして制御する。
【００２７】
仮想マシン２３０は、ハイパーバイザ２２０によって制御される仮想的な計算機である。この仮想マシン２３０の内部には、ハイパーバイザ２２０により生成された仮想ＣＰＵ２３１及び、仮想計算デバイス２３２が含まれている。
【００２８】
ゲストＯＳ（Operating System）２４０は、仮想マシン２３０上にて動作する所定のＯＳである。このゲストＯＳ２４０は、仮想マシン２３０内の仮想ＣＰＵ２３１を認識している。それでも、ＯＳ自身の制限、又は、意図的な制限により、ゲストＯＳ２４０は、物理ＣＰＵ２１１の全数よりも少ない数の仮想ＣＰＵ２３１までしか認識できない状態となっている。
そして、ゲストＯＳ２４０の内部には、仮想計算機デバイス２３２を制御するためのドライバ２４１が含まれている。つまり、ゲストＯＳ２４０は、仮想計算デバイス２３２を、実体のあるデバイスとして認識している。そして、その仮想計算デバイス２３２を制御するために、ドライバ２４１がゲストＯＳ２４０に備わっている。
このドライバ２４１は、ゲストＯＳ２４０が認識している仮想ＣＰＵ２３１以外の計算リソースを使用する際に、呼び出されて使用される。
【００２９】
プロセス２５０は、ゲストＯＳ２４０にて実行される所定のプロセスである。
【００３０】
このような構成の仮想計算機装置２００の動作について、図３〜５を参照して説明する。なお、上述したように、ゲストＯＳ２４０は、物理ＣＰＵ２１１の全数よりも少ない数の仮想ＣＰＵ２３１までしか認識できない状態となっている。
【００３１】
まず、図３を参照して、装置全体の動作について説明する。この図３は、仮想計算機装置２００における各動作過程を順番に説明するための模式図である。
【００３２】
最初に、ゲストＯＳ２４０上で動作するプロセス２５０は、ゲストＯＳ２４０が認識している仮想ＣＰＵ２３１以外の計算リソースを使用したい場合に、ドライバ２４１を呼び出す（Ｔ１）。具体的にプロセス２５０は、計算を実行するためのコード、計算されるデータを用意し、それらのコード及びデータを伴って、ドライバ２４１を呼び出す。
【００３３】
呼び出されたドライバ２４１は、仮想計算デバイス２３２にアクセスする（Ｔ２）。つまり、ドライバ２４１は、プロセス２５０から受け取ったコード及びデータを、仮想計算デバイス２３２に引き渡す。
【００３４】
ハイパーバイザ２２０は、ドライバ２４１による仮想計算デバイス２３２へのアクセスを検出する（Ｔ３）。そして、ハイパーバイザ２２０は、仮想計算デバイス２３２に渡されたコード及びデータを取得（捕捉）し、その内容（中身）に問題がないことを確認して、物理ＣＰＵ２１１上で計算を行わせる（Ｔ４）。その際、ハイパーバイザ２２０は、ゲストＯＳ２４０が認識していない物理ＣＰＵ２１１（仮想ＣＰＵ２３１に対応しない物理ＣＰＵ２１１）に、計算を行わせる。
なお、このときの実行モードは、特権的な命令が実行されない制限されたものとなっており、安全性が確保されている。
【００３５】
物理ＣＰＵ２１１は、計算が終了すると、ハイパーバイザ２２０にその終了を通知する（Ｔ５）。この通知に応答して、ハイパーバイザ２２０は、計算結果を物理ＣＰＵ２１１から受け取り、この計算結果を仮想計算デバイス２３２に供給する（Ｔ６）。そして、仮想計算デバイス２３２は、依頼された計算の終了をゲストＯＳ２４０のドライバ２４１に通知する（Ｔ７）。
【００３６】
この通知に応答して、ドライバ２４１は、計算結果を仮想計算デバイス２３２から受け取り、この計算結果をプロセス２５０に供給する（Ｔ８）。
【００３７】
このように、ドライバ２４１を経由して仮想計算デバイス２３２にアクセスすることにより、ゲストＯＳ２４０が認識していない物理ＣＰＵ２１１（仮想ＣＰＵ２３１）を使用して所望の計算を行わせることができる。
【００３８】
次に、図４を参照して、特に、仮想計算デバイス２３２の動作を詳細に説明する。この図４は、ゲストＯＳ２４０側から見た仮想計算デバイス２３２の動作を説明するための模式図である。
【００３９】
ゲストＯＳ２４０から見た場合、仮想計算デバイス２３２は、その内部に、ＣＰＵ２３２Ｃ及びメモリ２３２Ｍを内蔵するデバイスとみなすことができる。そのため、プロセス２５０が用意するコードＣＤやデータＤＴは、ゲストＯＳ２４０のライブラリやサービスルーチンを用いることなく、コード自身で計算が完結できるものとなっている。
【００４０】
プロセス２５０は、このようなコードＣＤ，データＤＴを伴って、ドライバ２４１を呼び出す（Ｔ１）。そして、ドライバ２４１は、プロセス２５０から受け取ったコードＣＤ，データＤＴを仮想計算デバイス２３２に引き渡す（Ｔ２）。
【００４１】
このように、ドライバ２４１経由でコードＣＤ，データＤＴを受け取った仮想計算デバイス２３２は、まず、自身の保有するメモリ２３２Ｍ上にコードＣＤをロードする。続いて、データＤＴを同様にメモリ２３２Ｍ上にロードすると、仮想計算デバイス２３２は、コードの先頭にジャンプして、与えられた計算の実行を開始する。ただし、このロードは、仮想的なものである。つまり、実際の実行は、上述したように、ハイパーバイザ２２０の制御の元、物理ＣＰＵ２１１によって行われる。
その際、コードＣＤの最終行には、計算終了をハイパーバイザ２２０へ伝えるための命令、若しくは、制御をハイパーバイザ２２０へ戻すコードが存在している。そして、物理ＣＰＵ２１１がそのような命令を実行することにより、ハイパーバイザ２２０は、計算終了を認識することができるようになっている。なお、コードが不正なものであった場合には、物理ＣＰＵ２１１における例外処理の発生やタイムアウトの検出などの方法により、計算の失敗が検出され、その失敗がハイパーバイザ２２０に通知されるようになっている。
【００４２】
ゲストＯＳ２４０から見た場合、このようなハイパーバイザ２２０の制御や物理ＣＰＵ２１１の計算を、あたかも、仮想計算デバイス２３２が、メモリ２３２ＭのコードＣＤを実行して、計算を行っているようにみなしている。そして、計算を終えた仮想計算デバイス２３２は、計算の終了をドライバ２４１に通知する（Ｔ７）。
【００４３】
ドライバ２４１は、この通知に応答して計算結果を仮想計算デバイス２３２から受け取り、受け取った計算結果をプロセス２５０に供給する（Ｔ８）。
【００４４】
このように、ゲストＯＳ２４０側から見ると、自己が認識している仮想ＣＰＵ２３１を使用せずに、仮想計算デバイス２３２を使用することよって、所望の計算を行わせることができる。
【００４５】
次に、図５を参照して、仮想マシン２３１（仮想計算デバイス２３２）がメモリ領域の共有を行う場合について説明する。この図５は、仮想計算デバイス２３２と、仮想ＣＰＵ２３１とのメモリ領域共有について説明するための模式図である。
なお、このメモリ領域の共有は、仮想計算デバイス２３２の一態様である。つまり、仮想計算デバイス２３２は、メモリ領域の共有を行わなくとも、計算を行うことができる。
【００４６】
図５に示すメモリ２３０Ｍは、仮想マシン２３０が認識するメモリを表している。すなわち、仮想マシン２３０の仮想ＣＰＵ２３１は、図中のＡ１に示す全範囲をアクセス可能となっている。
【００４７】
上述したコードＣＤ、つまり、ドライバ２４１が仮想計算デバイス２３２に渡すコードの情報は、メモリ２３０Ｍ上のＡ２にて示す範囲で指定されている。その情報を受け取ったハイパーバイザ２２０は、処理を依頼した仮想マシン２３２のメモリ２３０ＭにおけるコードＣＤの部分（Ａ２）を、仮想計算デバイス２３２のＣＰＵ２３２Ｃから参照できるように仮想計算デバイス２３２のメモリテーブルを変更する。
【００４８】
これによって、コードの転送を行うことなく、仮想計算デバイス２３２からコードＣＤの実行が可能になる。
【００４９】
このように、ゲストＯＳ２４０は、自己が認識している仮想ＣＰＵ２３１を使用せずに、仮想計算デバイス２３２を使用することよって所望の計算を行わせることができる。その際、実際の計算は、ハイパーバイザ２２０によって仲介された物理ＣＰＵ２１１が行うため、ゲストＯＳ２４０が認識している仮想ＣＰＵ２３１の数を超えて、物理ＣＰＵ２１１を利用することが可能となる。
【００５０】
この結果、物理計算機２００に備わっている計算資源（物理プロセッサ２１１）をより有効に活用することができる。
【００５１】
（他の実施形態）
上述した実施形態（特に、第２の実施形態）では、コード及びデータを、同時に仮想計算デバイス２３２に渡す場合について説明したが、同じ計算を繰り返し行わせる場合等では、２回目以降に、データのみを渡すようにしてもよい。
例えば、１回目にコード及びデータを仮想計算デバイス２３２に渡した際に、そのコードにて、仮想計算デバイス２３２を初期化する。そして、２回目以降は、コードだけを渡せば、仮想計算デバイス２３２が計算できるようにする。
【００５２】
上述した実施形態では、仮想計算デバイス２３２と物理ＣＰＵ２１１とを、１対１で割り付けることも可能であるが、それ以外にも、物理ＣＰＵ２１１を時分割して割り付けてもよい。
また、物理ＣＰＵ２１１の内部に複数のコアが形成されている場合に、仮想計算デバイス２３２をコア毎に割り付けてもよい。
【００５３】
上述した実施形態では、プロセス２５０がドライバ２４１を通じて仮想計算デバイス２３２に計算を依頼する場合について説明したが、このようなプロセス２５０以外に、ゲストＯＳ２４０自身が、ＯＳに特有の処理（計算）を仮想計算デバイス２３２に依頼するようにしてもよい。例えば、ＯＳの画像処理や、ネットワーク処理等を、仮想計算デバイス２３２に依頼してもよい。
【００５４】
なお、この発明の仮想計算機装置は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、コンピュータに上述のいずれかを実行するためのプログラムを格納した媒体（フレキシブルディスク、ＣＤ−ＲＯＭ等）から該プログラムをインストールすることにより、上述の処理を実行する仮想計算機装置を構成することができる。
【００５５】
また、コンピュータにプログラムを供給するための手法は、任意である。例えば、通信回線、通信ネットワーク、通信システム等を介して供給してもよい。一例を挙げると、通信ネットワークの掲示板（ＢＢＳ）に当該プログラムを掲示し、これをネットワークを介して配信する。
そして、このプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行することができる。
【００５６】
以上説明したように、本発明によれば、物理計算機に備わっている計算資源をより有効に活用することができる。
【図面の簡単な説明】
【００５７】
【図１】本発明の第１の実施形態に係る仮想計算機装置の構成を示すブロック図である。
【図２】本発明の第２の実施形態に係る仮想計算機装置の構成を示すブロック図である。
【図３】第２の実施形態に係る仮想計算機装置の動作過程を順番に説明するための模式図である。
【図４】ゲストＯＳ側から見た仮想計算デバイスの動作を説明するための模式図である。
【図５】仮想計算デバイスと、仮想ＣＰＵとのメモリ領域共有について説明するための模式図である。
【符号の説明】
【００５８】
１００  仮想計算機装置
１１０  物理計算機
１２０  仮想化制御プログラム
１３０  仮想計算機
１４０  基本ソフトウェア
２００  仮想計算機装置
２１０  仮想マシン
２２０  ハイパーバイザ
２３０  仮想マシン
２４０  ゲストＯＳ
２５０  プロセス
【図１】
0004730386.tif 000002
【図２】
0004730386.tif 000003
【図３】
0004730386.tif 000004
【図４】
0004730386.tif 000005
【図５】
0004730386.tif 000006