(57)【要約】【課題】複数の使用者が個々に使用する複数のクライアントを有するクライアントシステムにおいて、電力消費を低減する。【解決手段】入力ユニット（キーボード１３、マウス１４）と、デイスプレイ（１２）を、サーバ（１０）のＵＳＢポートに、ＵＳＢデバイスとして、接続し、且つサーバ（１０）を仮想計算機で構成する。仮想計算機のホストＯＳ（２０）が、各入力ユニット、デイスプレイと対応するゲストＯＳを認識するテーブル（２６）を使用して、各入力ユニットとデイスプレイを、サーバ（１０）の対応するゲストＯＳ（２２−１〜２２−４）を操作させる。このため、利用者のクライアントで、ＣＰＵ，メモリが不要となり、省エネルギー化に寄与する。【選択図】図３
2011145912.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとメモリとバスと複数のバスアダプタとを有し、仮想マシンを動作する複数のゲストＯＳをホストＯＳで管理するとともに、仮想計算機モニタが、少なくとも前記ＣＰＵ，前記メモリを有する物理資源を仮想資源に分割し、分割した仮想資源を単位として前記ゲストＯＳに前記物理資源を割り当てる仮想計算機として動作する物理サーバと、
前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する、複数の入力ユニットと、複数の出力ユニットとを有し、
前記物理サーバの前記ホストＯＳは、前記複数のゲストＯＳの各々に、前記ゲストＯＳを使用する前記入力ユニットと前記出力ユニットの前記バス上での識別番号を格納する構成定義テーブルを有し、
前記ホストＯＳが、前記構成定義テーブルを用いて前記入力ユニットからの入力を対応する前記ゲストＯＳに通知し、前記ゲストＯＳの処理結果を、前記ゲストＯＳに対応する前記出力ユニットに出力する
ことを特徴とする仮想計算機を使用したクライアントシステム。
【請求項２】
前記ホストＯＳは、前記入力ユニットのいずれかからの起動文字列を受け、前記構成定義テーブルに登録された文字列と前記起動文字列とが一致するか判定し、前記起動文字列が前記登録された文字列と一致している場合に、前記起動文字列を発した入力ユニットに対応するゲストＯＳを起動する
ことを特徴とする請求項１の仮想計算機を使用したクライアントシステム。
【請求項３】
前記ホストＯＳは、前記入力ユニットからの強制停止文字列を受け、前記構成定義テーブルに登録された文字列と前記強制停止文字列とが一致するか判定し、前記強制停止文字列が、前記登録された文字列と一致している場合に、前記強制停止文字列を発した入力ユニットに対応する前記ゲストＯＳを強制停止する
ことを特徴とする請求項１の仮想計算機を使用したクライアントシステム。
【請求項４】
ＣＰＵとメモリとバスと複数のバスアダプタとを有する物理サーバを、仮想マシンを動作する複数のゲストＯＳをホストＯＳで管理するとともに、仮想計算機モニタが、少なくとも前記ＣＰＵ，前記メモリを有する物理資源を仮想資源に分割し、分割した仮想資源を単位として前記ゲストＯＳに前記物理資源を割り当てる仮想計算機として動作するステップと、
前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する複数の入力ユニットからの入力を、前記ゲストＯＳを使用する前記入力ユニットと出力ユニットの前記バス上での識別番号を格納する構成定義テーブルを参照して、対応する前記ゲストＯＳに通知するステップと、
前記ゲストＯＳの処理結果を、前記構成定義テーブルを参照して、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する複数の表示ユニットの内、前記ゲストＯＳに対応する前記出力ユニットに出力するステップを有する
ことを特徴とする仮想計算機を使用したクライアント制御方法。
【請求項５】
ＣＰＵとメモリとバスと複数のバスアダプタとを有する物理サーバを、仮想マシンを動作する複数のゲストＯＳをホストＯＳで管理するとともに、仮想計算機モニタが、少なくとも前記ＣＰＵ，前記メモリを有する物理資源を仮想資源に分割し、分割した仮想資源を単位として前記ゲストＯＳに前記物理資源を割り当てる仮想計算機として動作するステップと、
前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する複数の入力ユニットからの入力を、前記ゲストＯＳを使用する前記入力ユニットと出力ユニットの前記バス上での識別番号を格納する構成定義テーブルを参照して、対応する前記ゲストＯＳに通知するステップと、
前記ゲストＯＳの処理結果を、前記構成定義テーブルを参照して、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する複数の出力ユニットの内、前記ゲストＯＳに対応する前記出力ユニットに出力するステップとを、
コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機を使用したクライアントシステム、仮想計算機を使用したクライアント制御方法及びそのプログラムに関する。
【背景技術】
【０００２】
近年のパーソナルコンピュータの普及に伴い、アプリケーションソフトのインストールやバージョンアップや、ハードウェアのメンテナンス等の運用、管理コストが無視できない。このような問題を解決するため、シンクライアントという技術が提案されている。
【０００３】
図２０は、従来のシンクライアントの説明図である。図２０に示すように、サーバ２００とシンクライアントＰＣ（Personal Computer）１００とを、通信ユニットであるＮＩＣ（Network Interface Card）１１０，１２０で接続する。そして、クライアントＰＣ１００は、キーボード、マウス、ディスプレイ（ＶＧＡ：Video Graphics Array 画面）と、ＣＰＵ、メモリのみを持ち、サーバ２００が処理を行い、サーバ２００での処理結果をクライアントＰＣ１００に表示するものである。
【０００４】
シンクライアントでは、クライアントＰＣ１００で操作した内容が、ＮＩＣ１１０，１２０を通じてサーバ２００に送られる。サーバ２００は、ＣＰＵ、メモリ、デイスク装置を有し、所定のアプリケーションを実行し、処理し、その結果をクライアントＰＣ１００に返送する。クライアントＰＣでは、サーバ２００から送られた処理結果が表示される。サーバ２００は、実サーバであっても、仮想計算機で分割した仮想マシンのサーバのどちらでもかまわない。
【０００５】
このシンクライアントでは、クライアントＰＣ１００に、キーボード、マウス、ＶＧＡと、ＮＩＣ１１０を処理するための処理能力が必要であるため、ＣＰＵとメモリが搭載されている。しかしながら、他の処理はそれ程必要ないため、ＣＰＵ、メモリとも高性能なものを使用しなくても良い。
【０００６】
このため、シンクライアントを用いることで、クライアントＰＣ１００では処理を行わないため、ＰＣクライアント１００へのアプリケーションのインストール、アップデート等が不要となり、且つ省電力なＰＣでも十分に使用可能である。又、クライタントＰＣ１００でデータを保持しないため、情報漏洩の危険がない。
【０００７】
又、仮想計算機システムは、実計算機システム２００に、仮想計算機モニター（仮想化ソフトウェア）と、ホストＯＳ（Operating System）と、複数の仮想マシン（ゲストＯＳ（Operating System））とを搭載する。ホストＯＳは、ゲストＯＳを管理するため設けられる。仮想計算機モニターは、ホストＯＳ、ゲストＯＳを、仮想化制御する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−０５２４０７号公報（図１乃至図７）
【特許文献２】特開平１１−１３４１１７号公報
【非特許文献】
【０００９】
【非特許文献１】「シンクライアント」（thin client）（IT用語辞典、http://e-words.jp/w/E382B7E383B3E382AFE383A9E382A4E382A2E383B3E38388.html,２００９年８月２４日閲覧）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の構成では、消費電力の低いＰＣでも構成可能であるので、全体的に見たら省エネルギー化できる。しかしながら、従来のシンクライアントでは、クライアントＰＣ側に、キーボード、マウス、ＶＧＡとＮＩＣ１１０を処理するための処理能力が必要であるため、ＣＰＵとメモリの搭載が必要である。
【００１１】
通常、ＰＣの電力消費は、ＣＰＵが約３０％、電源が約４０％と言われているため、省エネルギー化に限度があり、更なる電力消費の低減が困難である。又、各クライアントにＣＰＵとメモリを必要とするため、事務所等の複数のＰＣを利用するシステムでは、更なるコスト低減も困難である。
【００１２】
従って、本発明の目的は、仮想化技術を使用して、より省エネルギー化を可能とする仮想計算機を使用したクライアントシステム、仮想計算機を使用したクライアント制御方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
この目的の達成のため、クライアントシステムは、ＣＰＵとメモリとバスと複数のバスアダプタとを有し、仮想マシンを動作する複数のゲストＯＳをホストＯＳで管理するとともに、仮想計算機モニタが、少なくとも前記ＣＰＵ，前記メモリを有する物理資源を仮想資源に分割し、分割した仮想資源を単位として前記ゲストＯＳに、前記物理資源を割り当てる仮想計算機として動作する物理サーバと、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する、複数の入力ユニットと、複数の出力ユニットとを有し、前記物理サーバの前記ホストＯＳは、前記複数のゲストＯＳの各々に、前記ゲストＯＳを使用する前記入力ユニットと前記出力ユニットの前記バス上での識別番号を格納する構成定義テーブルを有し、前記ホストＯＳが、前記構成定義テーブルを用いて前記入力ユニットからの入力を対応する前記ゲストＯＳに通知し、前記ゲストＯＳの処理結果を対応する前記出力ユニットに出力する。
【００１４】
又、この目的の達成のため、クライアント制御方法は、ＣＰＵとメモリとバスと複数のバスアダプタとを有する物理サーバを、仮想マシンを動作する複数のゲストＯＳをホストＯＳで管理するとともに、仮想計算機モニタが、少なくとも前記ＣＰＵ，前記メモリを有する物理資源を仮想資源に分割し、分割した仮想資源を単位として前記ゲストＯＳに前記物理資源を割り当てる仮想計算機として動作するステップと、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する、複数の入力ユニットからの入力を、前記ゲストＯＳを使用する前記入力ユニットと出力ユニットの前記バス上での識別番号を格納する構成定義テーブルを参照して、対応する前記ゲストＯＳに通知するステップと、前記ゲストＯＳの処理結果を、前記構成定義テーブルを参照して、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する複数の出力ユニットの内、前記ゲストＯＳに対応する前記出力ユニットに出力するステップを有する。
【００１５】
更に、この目的の達成のため、プログラムは、ＣＰＵとメモリとバスと複数のバスアダプタとを有する物理サーバを、仮想マシンを動作する複数のゲストＯＳをホストＯＳで管理するとともに、仮想計算機モニタが、少なくとも前記ＣＰＵ，前記メモリを有する物理資源を仮想資源に分割し、分割した仮想資源を単位として前記ゲストＯＳに前記物理資源を割り当てる仮想計算機として動作するステップと、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する、複数の入力ユニットからの入力を、前記ゲストＯＳを使用する前記入力ユニットと出力ユニットの前記バス上での識別番号を格納する構成定義テーブルを参照して、対応する前記ゲストＯＳに通知するステップと、前記ゲストＯＳの処理結果を前記構成定義テーブルを参照して、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する複数の表示ユニットの内、前記ゲストＯＳに対応する前記出力ユニットに出力するステップとを、コンピュータに実行させる。
【発明の効果】
【００１６】
入力ユニット（キーボード、マウス）と、デイスプレイを、仮想計算機として動作するサーバのバスポートに、バスデバイスとして接続し、ホストＯＳが、各入力ユニットやデイスプレイと対応するゲストＯＳを認識するため、各入力ユニットとデイスプレイは、サーバの対応するゲストＯＳを操作できる。このため、利用者のクライアントで、ＣＰＵやメモリが不要となり、省エネルギー化に寄与する。また、ホストＯＳに、バス接続ツリーとゲストＯＳを対応させるための機能を設けたため、ゲストＯＳをハンドルする処理を追加するだけで実現できる。
【図面の簡単な説明】
【００１７】
【図１】本発明のクライアントシステムの一実施の形態の物理ブロック図である。
【図２】図１のクライアントシステムのサーバの一実施の形態の物理ブロック図である。
【図３】図１、図２の仮想計算機システムのソフトウェアの機能ブロック図である。
【図４】図１乃至図３のクライアントの接続形態の説明図である。
【図５】図３のゲストＯＳ構成定義テーブルの説明図である。
【図６】本発明の一実施の形態のホストＯＳのゲストＯＳ管理用プログラムの処理フロー図（その１）である。
【図７】本発明の一実施の形態のホストＯＳのゲストＯＳ管理用プログラムの処理フロー図（その２）である。
【図８】ゲストＯＳ管理処理の動作説明図である。
【図９】本発明の一実施の形態の仮想マシンの起動処理の説明図である。
【図１０】図９の物理メモリの割り当ての説明図である。
【図１１】図１０の実物理アドレスとゲスト物理アドレスのアドレス変換の説明図である。
【図１２】図９のＩ／Ｏリソースの割り当ての第１の実施の形態の割込み番号管理表の説明図である。
【図１３】図９のＩ／Ｏリソースの割り当ての第１の実施の形態のデバイスメモリ管理表の説明図である。
【図１４】図９のＩ／Ｏリソースの割り当ての第２の実施の形態の説明図（その１）である。
【図１５】図９のＩ／Ｏリソースの割り当ての第２の実施の形態の説明図（その２）である。
【図１６】本発明の一実施の形態の仮想マシンの終了処理の説明図である。
【図１７】本発明の他の実施の形態の仮想計算機システムのソフトウェアの機能ブロック図である。
【図１８】図１７のＩ／Ｏ動作の説明図である。
【図１９】本発明の更に他の実施の形態の仮想計算機の説明図である。
【図２０】従来のクライアントシステムの説明図である。
【発明を実施するための形態】
【００１８】
以下、実施の形態の例を、仮想計算機を使用したクライアントシステム、仮想計算機のクライアント処理、仮想計算機の処理、他の実施の形態の順で説明するが、開示のクライアントシステムは、この実施の形態に限られない。
【００１９】
（仮想計算機を使用したクライアントシステム）
図１は、本発明のクライアントシステムの一実施の形態の物理ブロック図である。図２は、図１のクライアントシステムのサーバの一実施の形態の物理ブロック図である。図３は、図１、図２の仮想計算機システムのソフトウェアの機能ブロック図である。図４は、図１乃至図３のクライアントの接続形態の説明図である。図５は、図３のゲストＯＳ構成定義テーブルの説明図である。
【００２０】
図１に示すように、物理サーバ１０は、複数（ここでは、４つ）のＵＳＢ（Universal Serial Bus）ポートを有する。複数（ここでは、４つ）のデスク（机）１５−０〜１５−３の各々には、マウス１４−０〜１４−３、キーボード１３−０〜１３−３、デイスプレイ（ＶＧＡ）１２−０〜１２−３が設けられる。
【００２１】
サーバ１０のＵＳＢポートには、複数（ここでは、４つ）のＵＳＢハブ１１−０〜１１−３のいずれかが接続される。この各ＵＳＢハブ１１−０〜１１−３に、対応するマウス１４−０〜１４−３、キーボード１３−０〜１３−３、デイスプレイ１２−０〜１２−３が接続される。
【００２２】
従って、各マウス１４−０〜１４−３、キーボード１３−０〜１３−３、デイスプレイ１２−０〜１２−３は、サーバ１０のＵＳＢデバイスとして動作する。ここで、サーバ１０のＵＳＢポート数に制限があるため、マウスやキーボード、デイスプレイはＵＳＢハブを介しサーバ１０に接続しているが、ＵＳＢポート数に余裕がある場合や、クライアント数が少ない場合には、ＵＳＢハブを省略できる。
【００２３】
このＵＳＢデバイスには、図１で説明するように、ＵＳＢの識別番号（図１の図示の「ＵＳＢ×××」）を付与し、図４で説明するように、ＵＳＢデバイスの接続状態を示すツリーを作成する。
【００２４】
図２により、物理サーバ１０を説明する。図２に示すように、物理サーバ１０は、実計算機１と周辺装置５〜７とを有する。実計算機１は、１つ又は複数のＣＰＵ／メモリ２と、ホストバスアダプタ（ＵＳＢコントローラを含むＨＢＡ:  Host Bus Adaptor））３と、ネットワークインタフェースカード（ＮＩＣ: Network Interface Card）４とを、ハードウェアとして有する。
【００２５】
このホストバスアダプタ（ＨＢＡ）３は、スイッチ５（以下、「ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）スイッチ）とも称する」を介し、ストレージ装置（例えば、デイスク装置）７と接続する。ネットワークインタフェースカード（ＮＩＣ）４は、Ｎｅｔスイッチ６を介しＬＡＮ（Local Area Network）８と接続する。ここで、ホストバスアダプタ３は、ＵＳＢコントローラを有し、ＵＳＢコントローラに、図３で説明するＵＳＢポート３−０〜３−３が接続される。
【００２６】
この物理ハードウェアに対し、図３で説明する仮想化ソフトウェアを搭載することにより、物理サーバ（実計算機）１を、複数の仮想サーバ９として機能させることができる。図３で説明するように、例えば、仮想化ソフトウェアで、ＣＰＵ／メモリ２を、仮想サーバとして機能させ、サーバ１とＩ／Ｏ装置（ここでは、スイッチ５、ストレージ装置７、Ｎｅｔスイッチ６）の関係を仮想化する。
【００２７】
例えば、Ｉ／Ｏアダプタ接続の仮想化（スイッチ／仮想化装置）、ＨＢＡ３、ＮＩＣ４のアドレスの仮想化、Ｉ／Ｏ装置（ここでは、ＦＣスイッチ５、ストレージ装置７、Ｎｅｔスイッチ６）のアクセス権の設定により、サーバに対するＩ／Ｏ資源の割り当て、変更及びサーバの交換作業を単純化する。
【００２８】
図３により、仮想計算機のソフトウェアを説明する。仮想計算機モニタ（Ｈｙｐｅｒｖｉｓｏｒ）２４は、仮想計算機（ＶＭ）全体を制御する層を構成し、ＣＰＵ／メモリ２、ネットワークインタフェースカード（ＮＩＣ）４，Ｎｅｔスイッチ６、ＦＣスイッチ５、ストレージ装置７などの物理的な資源を、仮想資源に分割する。そして仮想計算機モニタ２４は、分割した仮想資源を単位として、各ＯＳ（Operating System）に割り当て、各ＯＳのデイスパッチ、各ＯＳが実行する特権命令のエミュレーション、ＣＰＵに対するハードウェア制御等を行う。例えば、ＶＭｗａｒｅ（商品名）、ＨｙｐｅｒＶ（商品名）、Ｘｅｎ（商品名）などが、仮想計算機モニタとして適用できる。
【００２９】
ホストＯＳ２０は、ＶＭ（ドメイン）として動作し、仮想計算機（ＶＭシステム）全体の操作、仮想マシン（ゲストＯＳ）２２−１〜２２−４の管理を行うＯＳである。例えば、ホストＯＳは、ＶＭシステムのｂｏｏｔ時に、自動で起動され、ドライバドメインやゲストＯＳの制御（起動、停止等）の制御を行う。ゲストＯＳ２２−１〜２２−４は、ＶＭ構成で、実Ｉ／Ｏを持たないＯＳであり、例えば、Ｌｉｎｕｘ（商標名）、ＷＩＮＤＯＷＳ（商標名）等の周知のＯＳを適用できる。
【００３０】
ハードウェア１０は、前述の物理サーバであり、ＵＳＢポート３−１〜３−４を有する。ゲスト操作用ＵＳＢデバイスは、前述の各マウス１４−０〜１４−３、キーボード１３−０〜１３−３、デイスプレイ１２−０〜１２−３を含み、ＵＳＢハブを介し、ＵＳＢポート３−１〜３−４に各々接続される。
【００３１】
このホストＯＳ２０は、前述のＵＳＢデバイスとゲストＯＳ２２−１〜２２−４とを対応付けるゲスト構成定義テーブル２６と、ゲスト構成定義テーブル２６を参照して、ゲストＯＳを制御するゲスト管理プログラム（図６〜図８で詳しく説明する）３０とを有する。
【００３２】
このゲスト構成テーブル２６と、ゲスト管理プログラム３０を、図４、図５で説明する。先ず、ゲストＯＳの起動操作は、クライアントのキーボード１３−０〜１３−３で行う。実マシンでは、ＰＣの電源ボタンを操作することで電源が投入される。仮想計算機システムでは、ゲストＯＳの起動は、ホストＯＳ２０から操作しなければならない。
【００３３】
ホストＯＳの操作のためには、ホストＯＳにログインする必要があり、従来の接続形態では、ネットワーク機能を使用しなければならない。ネットワーク機能を使用するためには、ＯＳの機能を使用する必要があり、結局はクライアント側にＣＰＵが必要となる。
【００３４】
本実施の形態では、ホストＯＳ２０で、ＵＳＢツリーとゲストＯＳとを対応させる機能を設け、クライアントにはＣＰＵ，ＯＳを設けずに、ホストＯＳ２０を操作する。このため、ホストＯＳ２０が、どのゲストＯＳ２２−１〜２２−４にＵＳＢデバイスが対応するかを管理する。
【００３５】
即ち、あるＵＳＢデバイス（キーボードやマウス）から、どのゲストＯＳへの操作が行われたかを認識するためＵＳＢツリーが構築される。図４に示すように、ＵＳＢツリーは、ＵＳＢのつながりを示し、ＵＳＢポート３−１〜３−４、ＵＳＢハブ１１−０〜１１−３、ＵＳＢデバイス（キーボード１３−０〜１３−３、マウス１４−０〜１４−３、ＶＧＡ１２−０〜１２−３）のツリー構造である。図４では、ＵＳＢツリー構造において、図示の「ＵＳＢ×××」）がＵＳＢ識別番号である。
【００３６】
このＵＳＢツリーと、ゲストＯＳを対応付ける。例えば、ゲストＯＳ２２−１に、ＵＳＢポート３−１、ＵＳＢハブ１１−０、キーボード１３−０、マウス１４−０、ＶＧＡ１２−０のＵＳＢツリー１が対応付けられる。又、ゲストＯＳ２２−４に、ＵＳＢポート３−４、ＵＳＢハブ１１−３、キーボード１３３、マウス１４―３、ＶＧＡ１２−３のＵＳＢツリー４が、対応付けられる。
【００３７】
図５に示すように、ゲスト構成定義テーブル２６は、ＵＳＢポートとゲストＯＳとの対応表を格納する。この対応表により、ホストＯＳ２０は、ＵＳＢポート３−１〜３−４への入出力が、どのゲストＯＳ２２−１〜２２−４に対するものか、対応付けができる。
【００３８】
例えば、図５では、ゲスト構成定義テーブル２６に、項目として、ゲストＯＳ名、ゲストＯＳ操作・表示のＵＳＢ機器の番号、後述するゲストＯＳ起動キー、ゲストＯＳ強制停止キー名を、ゲストＯＳ毎に、設ける。図５では、図４に従い、ゲストＯＳ１（guest os 001）２２−１に対応する項目として、ＵＳＢハブ１１−０（USB00）、ＵＳＢデバイスＵＳＢ０００，００１，００２（＝キーボード１３−０、マウス１４−０、ＶＧＡ１２−０）をゲスト構成定義テーブル２６に格納する。
【００３９】
尚、ＵＳＢハブを複数のゲストＯＳで共用することもできる。又、ＵＳＢデバイスの番号とゲストＯＳの対応付けが出来るので、キーボード１３−０、マウス１４−０、ＶＧＡ１２−０だけでなく、外付けのＵＳＢメモリなどの他のＵＳＢ機器を、ゲストＯＳへ対応付けることも可能である。
【００４０】
仮想計算機システムでは、ホストＯＳ２０からゲストＯＳの起動操作を行う必要がある。又、他人のゲストＯＳの起動を防止する必要がある。即ち、ゲストＯＳを所有している人が不在の場合、勝手に、他人がそのゲストＯＳを起動し、操作することを防止する。このため、操作している人とゲストＯＳとの対応の認証を要する。
【００４１】
このため、ホストＯＳは、ゲストＯＳを操作可能な操作者であることを確認する機能を持つ。即ち、ゲストＯＳが停止状態にある時、特定のキーボードを操作して、ゲストＯＳを起動した場合、故意または誤って自分の所有しないゲストＯＳを起動できてしまい、セキュリティ上の問題がある。このため、本実施の形態ではゲスト起動のためには、認証機能を設ける。
【００４２】
この実施の形態では、特定のキーを入力し、ホストＯＳに配置したゲストＯＳ構成定義テーブル２６の対応表に設定されたゲストＯＳ起動キーと入力されたキーとが一致した場合のみ、ゲストＯＳが起動できる認証機能を有する。図５の例では、ゲストＯＳ１に対しては、特定の起動文字列（例えば、guestOS1_act_key=guestOS1_PowerON_hooHOO(２３文字)）を定義し、ゲストＯＳ構成定義テーブル２６のゲストＯＳ起動キー欄に格納する。
【００４３】
ホストＯＳ２０は、ゲストＯＳに特定されたＵＳＢポートに接続されたキーボードから、この文字列が入力された場合に、そのゲストＯＳの起動の資格があると認識し、ゲストＯＳを起動する。
【００４４】
又、ゲストＯＳの強制停止、電源切断を、ゲスト操作用ＫＶＭ（キーボード１３−０、マウス１４−０、ＶＧＡ１２−０）から行う。実マシンでは、ＯＳがハングアップしかつ、CTRL+ALT+DELETEキーなども受け付けなくなった時、ＰＣの電源ボタンを長押しして、ＰＣの電源を切断する。
【００４５】
仮想計算機システムでは、起動操作と同じく、ホストＯＳ２０から仮想ＯＳの強制停止操作を行う必要がある。このため、本実施の形態では、特定のキー（強制停止文字列）を入力し、ホストＯＳ２０に配置した対応表（ゲスト構成定義テーブル２６）に設定されたゲストＯＳ強制停止キーと入力された構成停止文字列とが一致した場合のみ、ゲストＯＳを強制停止する認証機能を有する。
【００４６】
例えば、そのゲストＯＳに対し、強制停止文字列（例えば、guestOS1_poff_key=guestOS1_POFf_hooHOO（２０文字)）を定義し、ゲストＯＳ構成定義テーブル２６のゲストＯＳ強制停止キー欄に格納する。
【００４７】
ホストＯＳ２０は、前述の起動処理と同様に、そのゲストＯＳに特定されたキーボードから、この文字列が入力された場合、そのゲストＯＳを強制停止する。ゲストＯＳ強制停止以外にも、強制停止停止文字列を入力する方法と同様な方法を、ダンプ採取（実マシンであれば、ｎｍｉボタン（例えば、インターネット=http://ja.wikipedia.org/wiki/%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF参照））や、ゲストＯＳの強制リブートなどにも適用できる。
【００４８】
更に、キーボードやマウスからの入力は、ゲスト構成定義テーブル２６を参照して、入力があったキーボードやマウスに対応したゲストＯＳを特定し、特定したゲストＯＳに入力をハンドリングする（受け渡す）。又、ゲストＯＳが、ＶＧＡに対して画面描写を行った場合には、同様に、ゲスト構成定義テーブル２６を参照して、画面描写を行うべきＵＳＢ機器を特定し、特定したＵＳＢ機器に、画面描写する。
【００４９】
図３を用いて、ゲストＯＳ起動・終了と通常時の動作を説明する。
【００５０】
（１）ゲストＯＳ操作用キーボード１３−０から、前述の特定のキーを入力することで、ゲストＯＳ２２−１の起動・停止要求を行う。
【００５１】
（２）ゲストＯＳ操作用キーボード１３−０からの起動・停止要求に応じて、ホストＯＳ２０に、ＵＳＢポート３−１からキーボード割込みが発生し、ホストＯＳ２０のゲスト管理用プログラム３０が要求を受理する。
【００５２】
（３）ホストＯＳ２０のゲスト管理用プログラム３０は、ゲスト構成定義テーブル２６を参照し、ゲストＯＳ２２−１の起動・停止要求が入力されたＵＳＢポートとキー入力内容とが、ゲスト構成テーブル２６に定義されたゲストＯＳに対応するものか判断する。
【００５３】
（４）ホストＯＳは、ＵＳＢポートとキー入力内容とが定義されたゲストに対応するものであると判断する場合には、ゲストＯＳ２２−１の起動・停止要求を、仮想計算機モニタ２４（Hypervisor）に通知する。
【００５４】
（５）仮想計算機モニタ（Hypervisor）２４は、ホストＯＳからの通知に応じて、ゲストＯＳ２２−１の起動・停止を行う。
【００５５】
（６）ゲストＯＳ２２−１の起動後は、ゲストＯＳ操作用ＫＶＭ１２−０，１３−０，１４−０から、ゲストＯＳ２２−１を操作する。
【００５６】
このように、入力ユニット（キーボード、マウス）と、デイスプレイを、サーバ１０のＵＳＢ（バス）ポートに、ＵＳＢデバイスとして接続し、且つサーバ１０を仮想計算機で構成し、ホストＯＳが、各入力ユニット、デイスプレイと対応するゲストＯＳを認識するため、各入力ユニットとデイスプレイは、サーバ１０の対応するゲストＯＳを操作できる。このため、利用者のクライアントで、ＣＰＵ，メモリが不要となり、省エネルギー化に寄与する。
【００５７】
また、ホストＯＳ２０に、ＵＳＢ（バス接続）ツリーとゲストＯＳを対応させるための機能を設けたため、ゲストＯＳをハンドルする処理を追加するだけで実現でき、ゲストＯＳや仮想計算機モニタの改造は不要であり、ホストＯＳだけで、クライアントにＣＰＵ，メモリを不要にすることを実現できる。しかも、ゲストＯＳを修正する必要は無いため、ゲストＯＳの種別を選ばない。
【００５８】
更に、ゲストＯＳ毎に用意するのは、キーボード、マウス、ディスプレイのみであり、シンクライアントのように、ＣＰＵやメモリ、ハードディスクや、装置にインストールしたＯＳを必要としない。このため、低価格で、省電力のＰＣ環境の構成が可能になる。
【００５９】
実マシン操作で可能なことは、ホストＯＳ内に定義することで実現できるため、使用者は強制停止、ダンプ、リブートなど、実マシンと同じ機能を使用できる。
【００６０】
しかも、このような構成でも、ホストＯＳに、ゲストＯＳを操作可能な操作者であることを確認する機能を設けたため、不正を防止できる。
【００６１】
更に、ホストＯＳ２０に、ゲストＯＳを起動する機能と、ゲストＯＳを強制停止する機能を設けたため、利用者が、意識することなく、ゲストＯＳを利用したアプリケーションを実行できる。
【００６２】
しかも、ＵＳＢ（バス接続）ツリーとゲストＯＳを対応させるための対応機能により、キーボードやマウス入力を、ゲストＯＳにハンドリングする（受け渡す）機能と、ゲストＯＳのＶＧＡ出力を目的のディスプレイに出力する機能を設けたので、利用者が意識することなく、ゲストＯＳを利用したアプリケーションを実行できる。
【００６３】
（クライアント処理）
図６、図７は、本発明の一実施の形態のホストＯＳのゲストＯＳ管理用プログラムの処理フロー図である。図８は、ゲストＯＳ管理処理の動作説明図である。
【００６４】
以下、図８を参照して、図６、図７のホストＯＳ２０のゲストＯＳ管理用プログラムの管理処理を説明する。
【００６５】
（Ｓ１０）ホストＯＳ２０が起動すると、実マシンのＵＳＢツリーを認識する。即ち、ホストＯＳ２０は、接続されている各ＵＳＢデバイスの番号を取得し、ゲスト構成定義テーブル２６に登録された内容と比較し、接続されている各ＵＳＢデバイスを確認する。又、ホストＯＳ２０は、確認後、ゲスト構成定義テーブル２６のＵＳＢツリーとゲストＯＳとの対応から、どのＵＳＢ機器がどのゲストＯＳに対応するかを管理する。
【００６６】
（Ｓ１２）ホストＯＳ２０は、キーボードからのゲストＯＳの起動操作を待つ。ＵＳＢポートを介しキーボードから入力を受け付けると、ホストＯＳ２０は、入力を発したキーボードのＵＳＢ番号でゲスト構成定義テーブル２６を参照し、キーボードに対応するゲストＯＳを特定する。
【００６７】
（Ｓ１４）ホストＯＳ２０は、キーボードから入力された文字列が、ゲスト構成定義テーブル２６のゲストＯＳに定義された内容（起動キー）と一致するかをチエックし、その結果に応じてゲストＯＳを操作可能な操作者による操作であることを確認する。ホストＯＳ２０は、入力された文字列と起動キーとが一致しない場合には、当該キーボードに対応するデイスプレイにエラーを表示し、ステップＳ１２に戻る。
【００６８】
（Ｓ１６）ホストＯＳ２０は、キーボード入力された文字列とテーブル２６の定義内容が一致した場合に、仮想計算機モニタ２４を介し、一致した（認証に成功した）ゲストＯＳ２２−１を起動する（図８の矢印Ａ）。ゲストＯＳはブートし、起動する、
（Ｓ１８）ホストＯＳ２０は、ゲストＯＳからのデイスプレイ出力又は、キーボード又はマウスからの入力を待つ。ホストＯＳ２０は、入力を受けると、入力したＵＳＢデバイスのＵＳＢ番号から、入力が、キーボード操作であるかを判定する。ホストＯＳ２０は、キーボード操作でない時は、図７のステップＳ２４に進む。
【００６９】
（Ｓ２０）ホストＯＳ２０は、入力がキーボード操作であると判定した時は、キーボードから入力された文字列が、ゲスト構成定義テーブル２６のゲストＯＳに定義された内容（強制停止キー）と一致するかをチエックする。ホストＯＳ２０は、入力文字列が強制停止キーと一致すると判定すると、強制停止キーに対応するゲストＯＳを強制停止する（図８の矢印Ｄ）。そして、ステップＳ１２に戻る。
【００７０】
（Ｓ２２）一方、ホストＯＳ２０は、入力文字列が、強制停止キーと一致しないと判定すると、仮想計算機モニタ２４を介し、文字列を入力したキーボードに対応するゲストＯＳ２２−１に、キーボード操作内容を通知する（図８の矢印Ｂ）。そして、ステップＳ１８に戻る。
【００７１】
（Ｓ２４）一方、ステップＳ１８で、入力がキーボード操作でないと判定した時は、仮想計算機モニタ２４は、デイスパッチ時間を元に戻す。そして、ホストＯＳ２０は、入力を受け付けたＵＳＢデバイスのＵＳＢ番号から、入力が、マウス操作であるかを判定する。ホストＯＳ２０は、入力がマウス操作でない時は、ステップＳ２８に進む。
【００７２】
（Ｓ２６）ホストＯＳ２０は、入力がマウス操作であると判定した時は、仮想計算機モニタ２４を介し、操作されたマウスに対応するゲストＯＳ２２−１に、マウス操作内容を通知する（図８の矢印Ｂ）。そして、ステップＳ１８に戻る。
【００７３】
（Ｓ２８）ホストＯＳ２０は、入力がマウス操作でないと判定すると、ゲストＯＳからのデイスプレイ出力であると判断する。そして、ホストＯＳ２０は、ゲストＯＳに対応する物理デイスプレイに、画面データを出力する（図８の矢印Ｃ）そして、ステップＳ１８に戻る。
【００７４】
尚、ホストＯＳ２０は、キーボードやマウス入力を、ゲストＯＳにハンドリングするため、ゲスト構成定義テーブル２６を参照して、ゲストＯＳに通知する。
【００７５】
このように、ホストＯＳ２０に、認証部３０−１と、ゲストＯＳ起動・停止部３０−２と、ゲストＫＶＭ処理部３０−３とを有するゲスト管理プログラム３０と、ゲスト構成定義テーブル２６を設けることにより、ゲストＯＳや仮想計算機モニタの改造することなく、ホストＯＳだけで実現できる。しかも、ゲストＯＳを修正する必要は無いため、ゲストＯＳの種別を選ばない。
【００７６】
（仮想計算機の処理）
次に、仮想計算機の処理を説明する、図９は、本発明の一実施の形態の仮想マシンの起動処理の説明図である。図１０は、図９の物理メモリの割り当ての説明図である。図１１は、図１０の実物理アドレスとゲスト物理アドレスのアドレス変換の説明図である。図１２、図１３は、図９のＩ／Ｏリソースの割り当ての第１の実施の形態の説明図である。図１４、図１５は、図９のＩ／Ｏリソースの割り当ての第２の実施の形態の説明図である。図１６は、本発明の一実施の形態の仮想マシンの終了処理の説明図である。
【００７７】
図９により、仮想マシン（ゲストＯＳ）を起動する処理を説明する。
【００７８】
（１）ホストＯＳ２０がゲストＯＳ起動を指示すると、デバイスエミュレータ３２が、仮想計算機のインスタンスの作成(仮想ＣＰＵ、ゲスト物理メモリ、仮想デバイスなど)の作成と、各リソースの初期化を行う。
【００７９】
（２）仮想計算機モニタ２４は、ゲスト物理メモリと実物理メモリを対応させるメモリ管理表を作成する（図１０、図１１で後述する）。
【００８０】
（３）又、ゲストＩ／Ｏと実物理Ｉ／Ｏを対応させるリソース管理表を作成する（図１２乃至図１５で後述する）。
【００８１】
（４）仮想計算機モニタ２４は、仮想ＣＰＵを登録する。
【００８２】
（５）仮想計算機モニタ２４は、仮想ＣＰＵのスケジューラ（scheduler）に、（１）で作成した仮想ＣＰＵのインスタンスを登録し、仮想計算機モニタ２４内で仮想ＣＰＵを実行する。
【００８３】
次に、メモリ管理表作成のための物理メモリの割り当てを、図１０、図１１により説明する。仮想計算機モニタ２４は、ホストＯＳ２０、後述するドライバＯＳを設けた場合には、ドライバＯＳおよびゲストＯＳに割り当てる物理メモリ２−２を管理し、それぞれが行うメモリアクセスを制御する。例えば、仮想計算機モニタ２４は図１０のように、仮想計算機モニタ、ホストＯＳ２０、ドライバＯＳおよびゲストＯＳに、物理メモリ空間２−２を割り当てる。
【００８４】
ゲストＯＳは、メモリアクセスの際に、ゲスト物理アドレスを指定してメモリアクセスを行う。仮想計算機モニタ２４は、図１１のように、ゲスト物理アドレスを実物理アドレスに変換し、実際のメモリアクセスを行う。このアドレス変換を行うため、仮想計算機モニタ２４はメモリ管理表を作成する。
【００８５】
ゲストＯＳは、仮想計算機モニタ２４により割り当てられたメモリ空間内で動作することが出来る。仮想計算機モニタ２４は、仮想計算機モニタ用に割り当てられたメモリ空間内で動作するが、その他のメモリ空間に関してもアクセスすることが許可されている。ホストＯＳ２０、ドライバＯＳも、仮想計算機モニタ２４から許可を受けることにより、特定のメモリ空間にアクセスすることが出来る。
【００８６】
次に、Ｉ／Ｏ管理表に関するＩ／Ｏリソースの割り当てついて、図１２乃至図１５を用いて説明する。Ｉ／Ｏアクセス方法は、（１）通常のＯＳが物理ハードウェアを制御する際に使用するドライバをゲストＯＳ上で利用する第１の方法と、（２）ゲストＯＳとホストＯＳまたはドライバＯＳとの間で、特殊なプロトコルを使用して物理ハードウェアを制御する方法(フロントエンド、バックエンドドライバを使用する方法)とがある。
【００８７】
第１の方法の場合、ゲストＯＳは、Ｉ／Ｏアクセスの際に、ゲストＩ／Ｏリソースを利用して、ハードウェアアクセスを行う。仮想計算機モニタ２４は、ゲストＩ／Ｏリソースを実物理Ｉ／Ｏリソースに変換し、実際のハードウェアアクセスを行う。図１２は、割り込み番号管理表を示し、ゲスト割込み番号（キーボード、デイスク、ネットワークの番号）と物理割込み番号（キーボード、デイスク、ネットワークの物理番号）を対応つけるテーブルである。図１３は、デバイスメモリ（ＭＭＩＯ（メモリＩＯ、ポートＩＯなど）管理表を示し、ゲスト割込み番号（キーボード、デイスク、ネットワークのメモリ、レジスタの番号）と物理割込み番号（キーボード、デイスク、ネットワーク等のメモリ、レジスタの物理番号）を対応つけるテーブルである。
【００８８】
これらのＩ／Ｏ管理表を作成し、ゲストＯＳは、Ｉ／Ｏアクセスの際に、ゲスト割込み番号と物理割込み番号のＩ／Ｏ管理表で、相互に番号を変換して、ゲストＩ／Ｏリソースを利用して、ハードウェアアクセスを行う。
【００８９】
次に、フロントエンド、バックエンドドライバを使用する第２の方法を説明する。図１４及び図１５に示すように、仮想計算機モニタ２４は、Ｉ／Ｏリソースとして、Ｉ／Ｏ要求を書き込む共有メモリ２−３と、Ｉ／Ｏ要求を通知するメカニズム（event番号と通知interface）とを提供する。
【００９０】
図１４のゲストＯＳ２２−１は、通常のハードウェアアクセスを行うドライバを使用せず、フロントエンドと呼ばれる仮想マシン専用のドライバ２２Ａを使用する。フロントエンドドライバ２２Ａからの要求は、ホストＯＳ２０のバックエンドドライバ３６が処理し、実Ｉ／Ｏドライバ（プログラム）３４を操作する。
【００９１】
次に、フロントエンドドライバ２２Ａとバックエンドドライバ３６のＩ／Ｏ発行時の処理を、図１４及び図１５を用いて、説明する。
【００９２】
（１）図１４に示すように、ゲストＯＳ２２−１は、Ｉ／Ｏ発行時に、Ｉ／Ｏ要求を共有メモリ２−３に書き込む。
【００９３】
（２）ゲストＯＳ２２−１は、Ｉ／Ｏ発行通知を仮想計算機モニタ２４に行う。
【００９４】
（３）仮想計算機モニタ２４は、Ｉ／Ｏ発行通知を、ホストＯＳ（またはドライバＯＳ）２０に行う。
【００９５】
（４）ホストＯＳ（またはドライバＯＳ）２０は、Ｉ／Ｏ発行通知を受け取り、共有メモリ２−３の内容を参照する。
【００９６】
（５）ホストＯＳ（またはドライバＯＳ）２０は、共有メモリ２２−３の内容にしたがって実Ｉ／Ｏを発行する。
【００９７】
（６）図１５に示すように、ホストＯＳ（またはドライバＯＳ）２０は、実Ｉ／Ｏの結果を共有メモリ２−３に書き込む。
【００９８】
（７）ホストＯＳ（またはドライバＯＳ）２０は、Ｉ／Ｏ完了通知を仮想計算機モニタ２４に行う。
【００９９】
（８）仮想計算機モニタ２４は、Ｉ／Ｏ完了通知を、ゲストＯＳ２２−１に行う。
【０１００】
（９）ゲストＯＳ２２−１は、Ｉ／Ｏ完了通知を受け、共有メモリ２−３からＩ／Ｏの結果を受け取る。
【０１０１】
次に、仮想マシン（ゲストＯＳ）を終了する処理を、図１６で説明する。
【０１０２】
（１）ホストＯＳ２０から、ゲストＯＳの終了指示を、仮想計算機モニタ２４が受けると、仮想計算機モニタ２４内で仮想ＣＰＵを停止する。
【０１０３】
（２）仮想計算機モニタ２４内の仮想ＣＰＵのスケジュール（scheduler）から、（１）で停止した仮想ＣＰＵを削除する。
【０１０４】
（３）仮想デバイスを解放し、ゲストＩ／Ｏと実物理Ｉ／Ｏを対応させるリソース管理表を解放する。
【０１０５】
（４）ゲスト物理メモリ（図１０参照）を解放し、ゲスト物理メモリと実物理メモリとを対応させるメモリ管理表を解放する。
【０１０６】
（５）ホストＯＳ２０のデバイスエミュレータ３２は、仮想計算機のインスタンス（仮想ＣＰＵなど）を解放する。
【０１０７】
このようにして、仮想計算機内で、仮想マシン（ゲストＯＳ）の起動・停止、メモリアクセス、Ｉ／Ｏアクセスを実行する。
【０１０８】
（他の実施の形態）
図１７は、本発明の他の実施の形態の仮想計算機システムのソフトウェアの機能ブロック図である。図１８は、図１７のドライバＯＳとゲストＯＳとの説明図である。
【０１０９】
前述の第１の実施の形態では、ホストＯＳが、ドライバ機能を有したもので説明した。この他の実施の形態では、図１７に示すように、ホストＯＳ２０の他に、Ｉ／Ｏ装置を制御するドライバＯＳ２８を設けたものである。このドライバＯＳ２８は、実Ｉ／Ｏ制御を実行する。各ゲストＯＳ２２−１〜２２−４は、ドライバＯＳ２８に対して、Ｉ／Ｏを依頼することにより、Ｉ／Ｏの実行が可能である。
【０１１０】
ドライバＯＳ２８は、ホストＯＳ２０上やゲストＯＳ２２−１上でも動作可能である。ゲストＯＳ上でドライバＯＳを動作させた場合、対応するゲストＯＳはドライバＯＳ２８となる。図１７では、図２のストレージ装置７とＬＡＮ等のネット８とに対して、ドライバＯＳ２８を設けており、ホストＯＳ２０は、ＫＶＭ１２−０，１３−０，１４−０をドライブする。
【０１１１】
図１８に示すように、各ゲストＯＳ２２−１〜２２−４はフロントエンドドライバ２２Ａを有し、ドライバＯＳ２８は、バックエンドドライバ３６を有する。図９乃至図１５で説明したように、このフロントエンドドライバ２２Ａとバックエンドドライバ３６が、ゲストＯＳ２２−１とドライバＯＳ２８との間でＩ／Ｏデータを受け渡す。又、同様に、ＫＶＭ１２−０、１３−０，１４−０に対してドライバＯＳ２８を設けてもよい。
【０１１２】
この実施の形態では、ドライバＯＳを用いるため、ホストＯＳの負荷が低減でき、高速な操作環境を付与できる。
【０１１３】
図１９は、本発明の更に別の実施の形態の説明図である。図１９において、図８で示したものと同一のものは、同一の記号で示してある。図１９において、キーボード１３−０〜１３−２による対応するゲストＯＳの認証起動、停止処理は、図６〜図８で示したものと同一であり、説明を省略する。
【０１１４】
図１９の実施の形態では、ゲストＯＳ２２−１〜２２−３が、直接、デイスプレイ１２−０〜１２−２、キーボード１３−０〜１３−２、マウス１４−０〜１４−２と入出力する。この方法は、仮想計算機モニタ２４のハードウェアリソース機能を、ソフトウェアでなくＣＰＵやチップセットで、置き換えたものであり、ＶＴ−ｄ（Virtualization Technology）と称されている。詳細は、インターネット（http://www.atmarkit.co.jp/fsys/kaisetsu/085intelvt/intelvt.html）で既知であるため、省略する。
【０１１５】
この機能（チップ）を用いると、仮想計算機のオーバヘッドを軽減でき、より高速な操作環境を実現できる。
【０１１６】
又、バスアダプタを、ＵＳＢコントローラ、ＵＳＢポート、ＵＳＢハブで説明したが、ＰＣＩ（Peripheral Component Interface）等の他のバスアダプタを採用できる。
【０１１７】
以上、本発明を実施の形態により説明したが、本発明の趣旨の範囲内において、本発明は、種々の変形が可能であり、本発明の範囲からこれらを排除するものではない。
【０１１８】
（付記１）
ＣＰＵとメモリとバスと複数のバスアダプタとを有し、仮想マシンを動作する複数のゲストＯＳをホストＯＳで管理するとともに、仮想計算機モニタが、少なくとも前記ＣＰＵ，前記メモリを有する物理資源を仮想資源に分割し、分割した仮想資源を単位として前記ゲストＯＳに、前記物理資源を割り当てる仮想計算機として動作する物理サーバと、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する、複数の入力ユニットと、複数の出力ユニットとを有し、前記物理サーバの前記ホストＯＳは、前記複数のゲストＯＳの各々に、前記ゲストＯＳを使用する前記入力ユニットと前記出力ユニットの前記バス上での識別番号を格納する構成定義テーブルを有し、前記ホストＯＳが、前記構成定義テーブルを用いて前記入力ユニットからの入力を対応する前記ゲストＯＳに通知し、前記ゲストＯＳの処理結果を対応する前記出力ユニットに出力することを特徴とする仮想計算機を使用したクライアントシステム。
【０１１９】
（付記２）
前記ホストＯＳは、前記入力ユニットのいずれかからの起動文字列を受け、前記構成定義テーブルに登録された文字列と前記起動文字列とが一致するか判定し、前記起動文字列が前記登録された文字列と一致している場合に、前記起動文字列を発した入力ユニットに対応する前記ゲストＯＳを起動することを特徴とする付記１の仮想計算機を使用したクライアントシステム。
【０１２０】
（付記３）
前記ホストＯＳは、前記入力ユニットからの強制停止文字列を受け、前記構成定義テーブルに登録された文字列と前記強制停止文字列とが一致するか判定し、前記強制停止文字列が、前記登録された文字列と一致している場合に、前記強制停止文字列を発した入力ユニットに対応する前記ゲストＯＳを強制停止することを特徴とする付記１の仮想計算機を使用したクライアントシステム。
【０１２１】
（付記４）
前記ホストＯＳは、前記入力ユニットからの入力を受け、前記入力ユニットに対応する前記構成定義テーブルに登録されたゲストＯＳに通知し、前記ゲストＯＳの処理結果を、前記構成定義テーブルに登録された前記ゲストＯＳに対応する前記出力ユニットに出力することを特徴とする付記１の仮想計算機を使用したクライアントシステム。
【０１２２】
（付記５）
前記バスアダプタが、ＵＳＢアダプタで構成され、且つ前記入力ユニットと前記出力ユニットが、ＵＳＢデバイスであることを特徴とする付記１の仮想計算機を使用したクライアントシステム。
【０１２３】
（付記６）
ＣＰＵとメモリとバスと複数のバスアダプタとを有する物理サーバを、仮想マシンを動作する複数のゲストＯＳをホストＯＳで管理するとともに、仮想計算機モニタが、少なくとも前記ＣＰＵ，前記メモリを有する物理資源を仮想資源に分割し、分割した仮想資源を単位として前記ゲストＯＳに前記物理資源を割り当てる仮想計算機として動作するステップと、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する、複数の入力ユニットからの入力を、前記ゲストＯＳを使用する前記入力ユニットと出力ユニットの前記バス上での識別番号を格納する構成定義テーブルを参照して、対応する前記ゲストＯＳに通知するステップと、前記ゲストＯＳの処理結果を、前記構成定義テーブルを参照して、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する複数の出力ユニットの内、前記ゲストＯＳに対応する前記出力ユニットに出力するステップを有することを特徴とする仮想計算機を使用したクライアント制御方法。
【０１２４】
（付記７）
前記ホストＯＳは、前記入力ユニットのいずれかからの起動文字列を受け、前記構成定義テーブルに登録された文字列と前記起動文字列とが一致するか判定するステップと、前記起動文字列が前記登録された文字列と一致している場合に、前記起動文字列を発した入力ユニットに対応する前記ゲストＯＳを起動するステップとを更に有することを特徴とする付記６の仮想計算機を使用したクライアント制御方法。
【０１２５】
（付記８）
前記ホストＯＳは、前記入力ユニットからの強制停止文字列を受け、前記構成定義テーブルに登録された文字列と前記強制停止文字列とが一致するか判定するステップと、前記強制停止文字列が、前記登録された文字列と一致している場合に、前記強制停止文字列を発した入力ユニットに対応する前記ゲストＯＳを強制停止するステップとを有することを特徴とする付記６の仮想計算機を使用したクライアント制御方法。
【０１２６】
（付記９）
前記ホストＯＳは、前記入力ユニットからの入力を受け、前記入力ユニットに対応する前記構成定義テーブルに登録されたゲストＯＳに通知するステップと、前記ホストＯＳが、前記ゲストＯＳの処理結果を、前記構成定義テーブルに登録された前記ゲストＯＳに対応する出力ユニットに出力するステップを有することを特徴とする付記６の仮想計算機を使用したクライアント制御方法。
【０１２７】
（付記１０）
ＣＰＵとメモリとバスと複数のバスアダプタとを有する物理サーバを、仮想マシンを動作する複数のゲストＯＳをホストＯＳで管理するとともに、仮想計算機モニタが、少なくとも前記ＣＰＵ，前記メモリを有する物理資源を仮想資源に分割し、分割した仮想資源を単位として前記ゲストＯＳに前記物理資源を割り当てる仮想計算機として動作するステップと、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する、複数の入力ユニットからの入力を、前記ゲストＯＳを使用する前記入力ユニットと出力ユニットの前記バス上での識別番号を格納する構成定義テーブルを参照して、対応する前記ゲストＯＳに通知するステップと、前記ゲストＯＳの処理結果を前記構成定義テーブルを参照して、前記物理サーバの前記バスアダプタの各々に接続され、使用者が個々に操作する複数の表示ユニットの内、前記ゲストＯＳに対応する前記出力ユニットに出力するステップとを、コンピュータに実行させるプログラム。
【産業上の利用可能性】
【０１２８】
入力ユニット（キーボード、マウス）と、デイスプレイを、仮想計算機として動作するサーバのバスポートに、バスデバイスとして、接続し、ホストＯＳが、各入力ユニット、デイスプレイと対応するゲストＯＳを認識するため、各入力ユニットとデイスプレイは、サーバの対応するゲストＯＳを操作できる。このため、利用者のクライアントで、ＣＰＵ，メモリが不要となり、省エネルギー化に寄与する。また、ホストＯＳに、バス接続ツリーとゲストＯＳを対応させるための機能を設けたため、ゲストＯＳをハンドルする処理を、追加するだけで実現でき、ゲストＯＳや仮想計算機モニタの改造は不要であり、ホストＯＳだけで実現できる。
【符号の説明】
【０１２９】
１  実計算機
２  ＣＰＵ／メモリ
２−２  メモリ
３  ホストバスアダプタ
３−１  バス（ＵＳＢ）ポート
４  ネットワークインタフェースカード
５  スイッチ
６  Ｎｅｔスイッチ
７  ストレージ装置
８  ＬＡＮ
９  仮想サーバ
１０  物理サーバ
２４  仮想計算機モニタ
２０  ホストＯＳ
２２−１〜２２−４  ゲストＯＳ
２６  ゲスト構成定義テーブル
３０  ゲスト管理プログラム
【図１】
2011145912.tif 000003
【図２】
2011145912.tif 000004
【図３】
2011145912.tif 000005
【図４】
2011145912.tif 000006
【図５】
2011145912.tif 000007
【図６】
2011145912.tif 000008
【図７】
2011145912.tif 000009
【図８】
2011145912.tif 000010
【図９】
2011145912.tif 000011
【図１０】
2011145912.tif 000012
【図１１】
2011145912.tif 000013
【図１２】
2011145912.tif 000014
【図１３】
2011145912.tif 000015
【図１４】
2011145912.tif 000016
【図１５】
2011145912.tif 000017
【図１６】
2011145912.tif 000018
【図１７】
2011145912.tif 000019
【図１８】
2011145912.tif 000020
【図１９】
2011145912.tif 000021
【図２０】
2011145912.tif 000022