(57)【要約】      （修正有）【課題】１つの情報処理装置で複数のオペレーティングシステムが動作する場合にあって、オペレーティングシステム毎の計算機資源の使用状況に応じて、オペレーティングシステムを立ち上げるときに計算機資源の配分を設定する。【解決手段】リソース使用状況取得手段１１０は、オペレーティングシステム毎に計算機資源の使用状況を取得してリソース使用状況記憶手段１２０に記憶し、リソース配分算出手段１３０は、取得された計算機資源の使用状況に基づいてオペレーティングシステムのうちの一つ以上に割り当てる計算機資源の配分を算出し、リソース配分手段１７０は、オペレーティングシステムを立ち上げるときに、算出された計算機資源の配分に基づいてオペレーティングシステムの計算機資源の配分を設定する。【選択図】図１
2011227598.tif 000002
【特許請求の範囲】
【請求項１】
１つの情報処理装置で複数のオペレーティングシステムが動作しており、該オペレーティングシステム毎に計算機資源の使用状況を取得する取得手段と、
前記取得手段によって取得された計算機資源の使用状況に基づいて、前記オペレーティングシステムのうちの一つ以上に割り当てる計算機資源の配分を算出する算出手段と、
前記オペレーティングシステムを立ち上げるときに、前記算出手段によって算出された計算機資源の配分に基づいて、前記オペレーティングシステムの計算機資源の配分を設定する設定手段
を具備することを特徴とする情報処理装置。
【請求項２】
前記算出手段は、前記情報処理装置を電源断するときに、前記計算機資源の配分を算出し、該計算機資源の配分を不揮発性の記憶装置に記憶させ、
前記設定手段は、前記情報処理装置の電源を入れたときに、前記記憶装置に記憶されている前記計算機資源の配分に基づいて、前記オペレーティングシステムの計算機資源の配分を設定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記算出手段は、前記オペレーティングシステムを停止状態にするときに、該オペレーティングシステムの計算機資源の配分を算出し、該計算機資源の配分を記憶装置に記憶させ、
前記設定手段は、前記オペレーティングシステムを再開したときに、前記記憶装置に記憶されている前記計算機資源の配分に基づいて、該オペレーティングシステムの計算機資源の配分を設定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記取得手段は、取得した計算機資源の使用状況を記憶装置に記憶させ、取得した計算機資源の使用状況が該記憶装置に記憶されている前回取得した計算機資源の使用状況と予め定められた範囲内にある場合は、該記憶装置に今回取得した計算機資源の使用状況を記憶させず、
前記算出手段は、前記記憶装置に記憶された計算機資源の使用状況に基づいて、前記オペレーティングシステムのうちの一つ以上に割り当てる計算機資源の配分を算出する
ことを特徴とする請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
情報処理装置を、
１つの前記情報処理装置で複数のオペレーティングシステムが動作しており、該オペレーティングシステム毎に計算機資源の使用状況を取得する取得手段と、
前記取得手段によって取得された計算機資源の使用状況に基づいて、前記オペレーティングシステムのうちの一つ以上に割り当てる計算機資源の配分を算出する算出手段と、
前記オペレーティングシステムを立ち上げるときに、前記算出手段によって算出された計算機資源の配分に基づいて、前記オペレーティングシステムの計算機資源の配分を設定する設定手段
として機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
１つの計算機の上で複数のオペレーティングシステムを動作させる技術がある。
これに関連する技術として、例えば、特許文献１には、開発効率を向上させることが可能な撮像装置を提供することを課題とし、複数の機能を備えたデジタルカメラは、複数の機能手段と、ハードウェアリソースを仮想化して、複数の論理区画に分割するハイパーバイザとを備え、前記複数の論理区画のそれぞれは、異なる機能手段に割り当てられていて、リアルタイム性が要求される機能と、リアルタイム性が要求されない機能との間に優先順位を与えて調停しており、また、ハイパーバイザを使用する共用リソース管理方法及び撮像装置のためのプログラムを提供することが開示されている。
【０００３】
また、例えば、特許文献２には、仮想計算機システムの負荷を反映して、各仮想計算機ＬＰＡＲ（Ｌｏｇｉｃａｌ  Ｐａｒｔｉｔｉｏｎ）への物理資源配分を自動的に決定し、ＬＰＡＲの再構成を実行することは困難であったことを課題とし、物理計算機を構成する物理資源を、排他的に又は時分割的に論理的に分割することにより複数のＬＰＡＲが動作し、各ＬＰＡＲ間で物理資源の割り当てを動的に変更する再構成手段とを持つ仮想計算機システムにおいて、各ＬＰＡＲのアプリケーションやＯＳで計測された負荷状況に基づき、各ＬＰＡＲへの物理資源の配分を決定し、ＬＰＡＲの再構成を行うことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−０６４３０３号公報
【特許文献２】特開２００２−２０２９５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、１つの情報処理装置で複数のオペレーティングシステムが動作する場合にあって、オペレーティングシステム毎の計算機資源の使用状況に応じて、オペレーティングシステムを立ち上げるときに計算機資源の配分を設定するようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、１つの情報処理装置で複数のオペレーティングシステムが動作しており、該オペレーティングシステム毎に計算機資源の使用状況を取得する取得手段と、前記取得手段によって取得された計算機資源の使用状況に基づいて、前記オペレーティングシステムのうちの一つ以上に割り当てる計算機資源の配分を算出する算出手段と、前記オペレーティングシステムを立ち上げるときに、前記算出手段によって算出された計算機資源の配分に基づいて、前記オペレーティングシステムの計算機資源の配分を設定する設定手段を具備することを特徴とする情報処理装置である。
【０００７】
請求項２の発明は、前記算出手段は、前記情報処理装置を電源断するときに、前記計算機資源の配分を算出し、該計算機資源の配分を不揮発性の記憶装置に記憶させ、前記設定手段は、前記情報処理装置の電源を入れたときに、前記記憶装置に記憶されている前記計算機資源の配分に基づいて、前記オペレーティングシステムの計算機資源の配分を設定する
ことを特徴とする請求項１に記載の情報処理装置である。
【０００８】
請求項３の発明は、前記算出手段は、前記オペレーティングシステムを停止状態にするときに、該オペレーティングシステムの計算機資源の配分を算出し、該計算機資源の配分を記憶装置に記憶させ、前記設定手段は、前記オペレーティングシステムを再開したときに、前記記憶装置に記憶されている前記計算機資源の配分に基づいて、該オペレーティングシステムの計算機資源の配分を設定することを特徴とする請求項１に記載の情報処理装置である。
【０００９】
請求項４の発明は、前記取得手段は、取得した計算機資源の使用状況を記憶装置に記憶させ、取得した計算機資源の使用状況が該記憶装置に記憶されている前回取得した計算機資源の使用状況と予め定められた範囲内にある場合は、該記憶装置に今回取得した計算機資源の使用状況を記憶させず、前記算出手段は、前記記憶装置に記憶された計算機資源の使用状況に基づいて、前記オペレーティングシステムのうちの一つ以上に割り当てる計算機資源の配分を算出することを特徴とする請求項１から３のいずれか一項に記載の情報処理装置である。
【００１０】
請求項５の発明は、情報処理装置を、１つの前記情報処理装置で複数のオペレーティングシステムが動作しており、該オペレーティングシステム毎に計算機資源の使用状況を取得する取得手段と、前記取得手段によって取得された計算機資源の使用状況に基づいて、前記オペレーティングシステムのうちの一つ以上に割り当てる計算機資源の配分を算出する算出手段と、前記オペレーティングシステムを立ち上げるときに、前記算出手段によって算出された計算機資源の配分に基づいて、前記オペレーティングシステムの計算機資源の配分を設定する設定手段として機能させることを特徴とする情報処理プログラムである。
【発明の効果】
【００１１】
請求項１の情報処理装置によれば、１つの情報処理装置で複数のオペレーティングシステムが動作する場合にあって、オペレーティングシステム毎の計算機資源の使用状況に応じて、オペレーティングシステムを立ち上げるときに計算機資源の配分を設定することができる。
【００１２】
請求項２の情報処理装置によれば、情報処理装置の電源を入れたときに、オペレーティングシステムの計算機資源の配分を設定することができる。
【００１３】
請求項３の情報処理装置によれば、オペレーティングシステムを再開したときに、オペレーティングシステムの計算機資源の配分を設定することができる。
【００１４】
請求項４の情報処理装置によれば、前回取得した計算機資源の使用状況と予め定めた範囲内にある計算機資源の使用状況の重みが大きくなりすぎることを抑制して、オペレーティングシステムの計算機資源の配分を算出することができる。
【００１５】
請求項５の情報処理プログラムによれば、１つの情報処理装置で複数のオペレーティングシステムが動作する場合にあって、オペレーティングシステム毎の計算機資源の使用状況に応じて、オペレーティングシステムを立ち上げるときに計算機資源の配分を設定することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態を実現するハードウェアとオペレーティングシステムとの関係例を示す説明図である。
【図３】本実施の形態による使用状況の取得処理例を示す説明図である。
【図４】本実施の形態による使用状況の取得処理例を示すフローチャートである。
【図５】現リソース配分テーブルのデータ構造例を示す説明図である。
【図６】リソース使用状況テーブルのデータ構造例を示す説明図である。
【図７】次回リソース配分テーブルのデータ構造例を示す説明図である。
【図８】リソースメモリ内容の表示例を示す説明図である。
【図９】本実施の形態による使用状況の記憶処理例を示す説明図である。
【図１０】本実施の形態による電源オフ又は省電力モードへの移行の際の処理例を示す説明図である。
【図１１】本実施の形態による電源オフ又は省電力モードへの移行の際の処理例を示すフローチャートである。
【図１２】リソースメモリ内容の表示例を示す説明図である。
【図１３】本実施の形態によるサブ電源オン又は省電力モードからの復帰の際の処理例を示す説明図である。
【図１４】本実施の形態によるサブ電源オン又は省電力モードからの復帰の際の処理例を示すフローチャートである。
【図１５】リソースメモリ内容の表示例を示す説明図である。
【図１６】本実施の形態によるシャットダウンの際の処理例を示す説明図である。
【図１７】本実施の形態によるシャットダウン後に起動した際の処理例を示す説明図である。
【図１８】本実施の形態によるシャットダウンの際の処理例及びシャットダウン後に起動した際の処理例を示すフローチャートである。
【図１９】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００１８】
本実施の形態である情報処理装置は、１つの計算機のハードウェア資源の上で複数のオペレーティングシステム（以下、ＯＳ、ゲストＯＳともいう）を動作させるものであって、図１の例に示すように、リソース使用状況取得モジュール１１０、リソース使用状況記憶モジュール１２０、リソース配分算出モジュール１３０、現リソース配分記憶モジュール１４０、次回リソース配分記憶モジュール１５０、初期化モジュール１６０、リソース配分モジュール１７０を有している。
【００１９】
リソース使用状況取得モジュール１１０は、リソース使用状況記憶モジュール１２０と接続されており、ＯＳ毎に計算機資源の使用状況を取得する。具体的には、例えば、計算機資源（以下、リソースともいう）の使用状況として、ＣＰＵ使用率（予め定めた期間（例えば、前回の使用状況の計測の時点から今回の計測の時点までの間。以下、使用状況の予め定めた期間において同じ）内において、ＯＳがＣＰＵを使った時間の割合）、メモリ使用率（予め定めた時間内において、ＯＳがメモリに常駐させているページの割合）、タスク実行待ち時間（予め定めた時間内において、ＯＳ内のタスクの実行が待たされた時間）、ページフォルト数（予め定めた期間内において、実メモリ内にない仮想メモリがアクセスされた回数）等がある。なお、ＣＰＵ使用率、メモリ使用率のように、計算機資源の使用状況として「率」とあるものは、そのＯＳに割り当てられた計算機資源内の割合となる。また、計算機資源の使用状況を取得するときは、予め定められた期間毎であってもよいし、期間は定められておらず間欠的であってもよい。例えば、前回とは異なる期間で計算機資源の使用状況を取得してもよいし、計算機資源の使用状況が予め定められた値以上となった場合に取得するようにしてもよい。
【００２０】
また、リソース使用状況取得モジュール１１０は、取得した計算機資源の使用状況をリソース使用状況記憶モジュール１２０に記憶させ、取得した計算機資源の使用状況がリソース使用状況記憶モジュール１２０に記憶されている前回取得した計算機資源の使用状況と予め定められた範囲内にある場合は、リソース使用状況記憶モジュール１２０に今回取得した計算機資源の使用状況を記憶させないように制御してもよい。計算機資源の使用状況の変化が少ない場合（変化が無い場合、つまり、前回と同じ値の場合も含む。以下、同じ）は、その使用状況をリソース使用状況記憶モジュール１２０には記憶させないようにするものである。
また、リソース使用状況取得モジュール１１０は、取得した計算機資源の使用状況が予め定められた値以下又は未満であって、さらに、その取得した計算機資源の使用状況がリソース使用状況記憶モジュール１２０に記憶されている前回取得した計算機資源の使用状況と予め定めた範囲内にある場合は、リソース使用状況記憶モジュール１２０に今回取得した計算機資源の使用状況を記憶させないように制御してもよい。計算機資源の使用状況が低レベル（例えば、スリープ状態にある場合）であって、計算機資源の使用状況の変化が少ない場合は、その使用状況をリソース使用状況記憶モジュール１２０には記憶させないようにするものである。
【００２１】
リソース使用状況記憶モジュール１２０は、リソース使用状況取得モジュール１１０、リソース配分算出モジュール１３０と接続されており、リソース使用状況取得モジュール１１０によって取得された計算機資源の使用状況をＯＳ毎に記憶する。例えば、揮発性のメモリであってもよいし、不揮発性のメモリであってもよい。
リソース使用状況記憶モジュール１２０は、現リソース配分記憶モジュール１４０又は次回リソース配分記憶モジュール１５０と同じ記憶装置であってもよいし、異なる記憶装置であってもよい。
【００２２】
リソース配分算出モジュール１３０は、リソース使用状況記憶モジュール１２０、現リソース配分記憶モジュール１４０、次回リソース配分記憶モジュール１５０と接続されており、リソース使用状況取得モジュール１１０によって取得された計算機資源の使用状況（又はリソース使用状況記憶モジュール１２０に記憶されている計算機資源の使用状況）に基づいて、ＯＳのうちの一つ以上に割り当てる計算機資源の配分を算出する。つまり、本情報処理装置上で動作可能な複数のＯＳのうちの少なくとも一つのＯＳに割り当てる計算機資源の配分を算出する。
【００２３】
また、リソース配分算出モジュール１３０は、情報処理装置を電源断するときに、計算機資源の配分を算出し、その算出した計算機資源の配分を不揮発性の記憶装置である次回リソース配分記憶モジュール１５０に記憶させてもよい。ここで、情報処理装置を電源断するとは、揮発性のメモリに記憶されている情報が保持できなくなる状態になることをいい、例えば、主電源をオフにしたとき、前述の状態になるのであればサブ電源をオフにしたときであってもよいし、ハイバネーションといわれるスリープ状態（揮発性のメモリの内容をハードディスク等に退避して電源をオフの状態又は休止状態）にすることであってもよい。
【００２４】
また、リソース配分算出モジュール１３０は、ＯＳを停止状態にするときに、ＯＳの計算機資源の配分を算出し、その算出した計算機資源の配分を次回リソース配分記憶モジュール１５０に記憶させてもよい。ここで、ＯＳを停止状態にするとは、揮発性のメモリに記憶されている情報は保持できているが、省電力の状態にすることをいい、例えば、サスペンド又はスタンバイといわれるスリープ状態にすることである。ＯＳの動作を一時的に停止させ、節電状態で待機させているが、揮発性のメモリは稼動させたままとなっており、ハードディスクなどへの給電を停止したりする。
【００２５】
リソース配分算出モジュール１３０は、さらに現リソース配分記憶モジュール１４０に記憶されている現在のＯＳに設定されている計算機資源の配分に基づいて、ＯＳの計算機資源の配分を算出し、その算出した計算機資源の配分を次回リソース配分記憶モジュール１５０に記憶させてもよい。
【００２６】
現リソース配分記憶モジュール１４０は、リソース配分算出モジュール１３０、リソース配分モジュール１７０と接続されており、リソース配分モジュール１７０によって、ＯＳに計算機資源の配分が設定された場合に、その計算機資源の配分を記憶する。つまり、現在動作しているＯＳに設定されている計算機資源の配分を記憶する。例えば、揮発性のメモリであってもよいし、不揮発性のメモリであってもよい。
次回リソース配分記憶モジュール１５０は、リソース配分算出モジュール１３０、リソース配分モジュール１７０と接続されており、リソース配分算出モジュール１３０によって算出された各ＯＳに割り当てる計算機資源の配分を記憶する。例えば、揮発性のメモリであってもよいし、不揮発性のメモリであってもよい。
初期化モジュール１６０は、リソース配分モジュール１７０と接続されており、情報処理装置の電源を入れたとき、又はＯＳを停止状態にした後に再開したとき、リソース配分モジュール１７０を起動させる。また、情報処理装置又はＯＳを初期化状態にすることも行う。
ここで、情報処理装置の電源を入れるとは、具体的には、例えば、主電源を入れること、サブ電源を入れること、前述のハイバネーションといわれるスリープ状態からの復帰のいずれであってもよい。ＯＳを停止状態にした後に再開するとは、具体的には、例えば、サスペンド又はスタンバイといわれるスリープ状態から復帰することであってもよい。
【００２７】
リソース配分モジュール１７０は、現リソース配分記憶モジュール１４０、次回リソース配分記憶モジュール１５０、初期化モジュール１６０と接続されており、ＯＳを立ち上げるときに、リソース配分算出モジュール１３０によって算出された計算機資源の配分（又は次回リソース配分記憶モジュール１５０に記憶されている計算機資源の配分）に基づいて、ＯＳの計算機資源の配分を設定する。そして、その設定した計算機資源の配分を現リソース配分記憶モジュール１４０に記憶させる。
また、リソース配分モジュール１７０は、前記情報処理装置の電源を入れたときに、不揮発性の記憶装置である次回リソース配分記憶モジュール１５０に記憶されている計算機資源の配分に基づいて、ＯＳの計算機資源の配分を設定するようにしてもよい。
また、リソース配分モジュール１７０は、ＯＳを再開したときに、次回リソース配分記憶モジュール１５０に記憶されている計算機資源の配分に基づいて、ＯＳの計算機資源の配分を設定するようにしてもよい。
【００２８】
図２は、本実施の形態を実現するハードウェアとＯＳとの関係例を示す説明図である。
ハードウェア２１０を下位層とし、ハードウェア２１０とゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６等のＯＳを上位層とし、その間に中間層であるハイパーバイザーＯＳ２２０がある。ゲストＯＳ−Ａ  ２３２等のＯＳ上では、アプリケーションが動作することとなる。なお、ここでの下位、上位とは概念的な上下関係を示しているにすぎない。
【００２９】
ハードウェア２１０は、不揮発性メモリ２１２、ブートローダーモジュール２１４を有している。
不揮発性メモリ２１２は、図１に例示のリソース使用状況記憶モジュール１２０、現リソース配分記憶モジュール１４０、次回リソース配分記憶モジュール１５０のいずれか又はこれらの組み合わせを実現するメモリである。特に、次回リソース配分記憶モジュール１５０を実現するのに用いられる。具体的には、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリー、ハードディスク等が該当する。
ブートローダーモジュール２１４は、図１に例示の初期化モジュール１６０の機能部分を具現化し、具体的には、主電源投入後、最初に呼び出され、ハードウェア２１０の初期化を行い、ハイパーバイザーＯＳ２２０内のハイパーローダーモジュール２２２を呼び出す。
なお、ハードウェア２１０内には、これらの他に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、一般的なメモリ（揮発性のメモリであるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））、入出力デバイス等がある。また、図１に例示のリソース使用状況記憶モジュール１２０、現リソース配分記憶モジュール１４０、次回リソース配分記憶モジュール１５０のいずれか又はこれらの組み合わせを実現するメモリは、ハードウェア２１０内の一般的なメモリであってもよい。
【００３０】
ハイパーバイザーＯＳ２２０は、ハイパーローダーモジュール２２２、リソースメモリ２２４、リソースマネージャーモジュール２２６を有している。ハイパーバイザーＯＳ２２０は、ハードウェア２１０を制御して複数のＯＳを動作させるものであり、ハードウェア２１０を仮想的に見せるためのマイクロＯＳである。この場合、３つのＯＳ（ゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６）がお互いに独立に動作することができるように、ハイパーバイザーＯＳ２２０が制御する。また、ハイパーバイザーＯＳ２２０は、図１に例示のリソース配分モジュール１７０の機能部分を具現化する。具体的には、ハイパーローダーモジュール２２２からの通知された内容を基にしてゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６のいずれか又はこれらの組み合わせの初期化を行い、計算機資源の配分を設定する。
【００３１】
ハイパーローダーモジュール２２２は、図１に例示の初期化モジュール１６０又はリソース配分モジュール１７０の機能部分を具現化する。具体的には、ブートローダーモジュール２１４からの呼び出しによって起動し、ハイパーバイザーＯＳ２２０の初期化を行い、リソースメモリ２２４又は設定ファイルからＯＳの資源配分をハイパーバイザーＯＳ２２０に通知する。
【００３２】
リソースメモリ２２４は、図１に例示のリソース使用状況記憶モジュール１２０、現リソース配分記憶モジュール１４０、次回リソース配分記憶モジュール１５０のいずれか又はこれらの組み合わせを実現するメモリである。もちろんのことながら、リソースメモリ２２４のハードウェアとしての具現化は、ハードウェア２１０内の一般的なメモリ又は不揮発性メモリ２１２によって行われる。
【００３３】
リソースマネージャーモジュール２２６は、図１に例示のリソース使用状況取得モジュール１１０又はリソース配分算出モジュール１３０の機能を具現化する。具体的には、ハイパーバイザーＯＳ２２０を初期化するときに生成されるタスクであり、ＯＳ（ゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６）毎に計算機資源の使用状況を取得（トレース）する。そして、そのトレース結果をリソースメモリ２２４に記憶させ、トレース結果に基づいて、ＯＳ（ゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６のいずれか１つ又はこれらの組み合わせ）に割り当てる計算機資源の配分を算出する。そして、算出した計算機資源の配分をリソースメモリ２２４又は不揮発性メモリ２１２に記憶させる。
【００３４】
ゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６は、ハイパーバイザーＯＳ２２０上で独立して（他のＯＳとは無関係に）動作し、それぞれのアプリケーションを動作させる。例えば、Ｌｉｎｕｘ（登録商標）、Ｗｉｎｄ  Ｒｉｖｅｒ（登録商標）社のＶｘＷｏｒｋｓ（登録商標）等がある。同じＯＳであってもよいし、異なるＯＳが含まれていてもよい。
【００３５】
図３は、本実施の形態による使用状況の取得処理例を示す説明図である。図４は、本実施の形態による使用状況の取得処理例を示すフローチャートである。図３、図４を用いて、本実施の形態による使用状況の取得処理例を説明する。
【００３６】
ステップＳ４０２では、リソースマネージャーモジュール２２６が、監視時か否かを判断し、監視時の場合はステップＳ４０４へ進み、それ以外の場合はステップＳ４０２へ戻る。例えば、予め定められた期間毎に監視時が到来するように設定してもよい。
ステップＳ４０４では、リソースマネージャーモジュール２２６が、ＯＳ毎にＣＰＵ使用率を取得する。つまり、ゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６それぞれのＣＰＵ使用率を計測する。
ステップＳ４０６では、リソースメモリ２２４が、ＯＳ毎にメモリ使用率を取得する。つまり、ゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６それぞれのメモリ使用率を計測する。
ステップＳ４０８では、リソースメモリ２２４が、ＯＳ毎にタスク実行待ち時間を取得する。つまり、ゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６それぞれのタスク実行待ち時間を計測する。
【００３７】
ステップＳ４１０では、リソースマネージャーモジュール２２６が、各値は閾値以下であり、前回の値と同じか否かを判断し、同じ場合はステップＳ４０２の処理へ戻り、それ以外の場合はステップＳ４１２へ進む。閾値は、ＣＰＵ使用率、メモリ使用率、タスク実行待ち時間毎にあり、予め定められた値である。ステップＳ４０４、ステップＳ４０６、ステップＳ４０８でそれぞれ取得した値（ＣＰＵ使用率、メモリ使用率、タスク実行待ち時間）と各閾値とを比較し、さらに、前回取得した値と今回取得した値とが同じか否かを判断する。なお、前回の値と同じか否かは、同一の値であるか否かを含み、また予め定められた範囲内に収まる場合も同じであると判断してもよい。ステップＳ４１０の処理については、図９の例を用いて後述する。
ステップＳ４１２では、リソースマネージャーモジュール２２６が、ステップＳ４０２からステップＳ４０８までで取得した計算機資源の使用状況をリソースメモリ２２４のリソース使用状況テーブル６００に記憶させ、ステップＳ４０２の処理へ戻る。
【００３８】
図５は、現リソース配分テーブル５００のデータ構造例を示す説明図である。現リソース配分テーブル５００は、リソースメモリ２２４に記憶されている。ハイパーバイザーＯＳ２２０によって、各ＯＳが後述する次回リソース配分テーブル７００又は設定ファイルによる資源配分に基づいて起動された後に、その計算機資源の配分を現リソース配分テーブル５００に記憶させる。したがって、各ＯＳは、その計算機資源の配分下で現状動作していることを示している。
現リソース配分テーブル５００は、列方向にＣＰＵ割り当て欄５１２、メモリ割り当て欄５１４、タスクプライオイティ欄５１６を有しており、行方向にゲストＯＳ−Ａ欄５２２、ゲストＯＳ−Ｂ欄５２４、ゲストＯＳ−Ｃ欄５２６を有している。つまり、現在動作している各ＯＳに対応して、計算機資源の配分が記憶されている。
【００３９】
図６は、リソース使用状況テーブル６００のデータ構造例を示す説明図である。リソース使用状況テーブル６００は、リソースメモリ２２４に記憶されている。リソースマネージャーモジュール２２６によって、各ＯＳ毎の計算機資源の使用状況が計測され、その計測結果をリソース使用状況テーブル６００に記憶させる（図４に例示のステップＳ４１２）。
リソース使用状況テーブル６００は、列方向に取得値記憶欄６１２、取得値記憶欄６１４、取得値記憶欄６１６等を有しており、行方向にゲストＯＳ−Ａ  ＣＰＵ使用率欄６２２、ゲストＯＳ−Ａメモリ使用率欄６２４、ゲストＯＳ−Ａタスク実行待ち欄６２６、ゲストＯＳ−Ｂ  ＣＰＵ使用率欄６３２、ゲストＯＳ−Ｂメモリ使用率欄６３４、ゲストＯＳ−Ｂタスク実行待ち欄６３６、ゲストＯＳ−Ｃ  ＣＰＵ使用率欄６４２、ゲストＯＳ−Ｃメモリ使用率欄６４４、ゲストＯＳ−Ｃタスク実行待ち欄６４６を有している。列方向のデータは、計算機資源の使用状況が計測される毎に時系列で増える（いわゆるＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）管理）。なお、ＣＰＵ使用率、メモリ使用率は、そのＯＳに配分された計算機資源の下での率を表している。
【００４０】
図７は、次回リソース配分テーブル７００のデータ構造例を示す説明図である。次回リソース配分テーブル７００は、リソースメモリ２２４又は不揮発性メモリ２１２に記憶されている。リソースマネージャーモジュール２２６によって、リソース使用状況テーブル６００内のデータを用いた（さらに現リソース配分テーブル５００内のデータを用いてもよい）、各ＯＳ毎の計算機資源の配分が算出され、その算出結果を次回リソース配分テーブル７００に記憶させる。次回リソース配分テーブル７００内のデータに基づいて、次回ＯＳが初期化された場合に、計算機資源の配分が設定されることになる。
次回リソース配分テーブル７００は、列方向にＣＰＵ割り当て欄７１２、メモリ割り当て欄７１４、タスクプライオリティ欄７１６を有しており、行方向にゲストＯＳ−Ａ欄７２２、ゲストＯＳ−Ｂ欄７２４、ゲストＯＳ−Ｃ欄７２６を有している。データ構造としては、現リソース配分テーブル５００と同等であるが、次回リソース配分テーブル７００は、各ＯＳに対応して、次回起動した場合の計算機資源の配分が記憶されている。
【００４１】
図８は、リソースメモリ内容８００の表示例を示す説明図である。リソースメモリ内容８００は、現リソース配分欄８１０、リソース使用状況欄８２０、次回リソース配分欄８３０を有している。現リソース配分欄８１０は現リソース配分テーブル５００の内容を表示したものであり、リソース使用状況欄８２０はリソース使用状況テーブル６００の内容を表示したものであり、次回リソース配分欄８３０は次回リソース配分テーブル７００の内容を表示したものである。初めての状態（前回ＯＳの動作がない状態）であるので、次回リソース配分欄８３０は空である。
【００４２】
図９は、本実施の形態による使用状況の記憶処理例を示す説明図である。図４に例示したステップＳ４１０の処理を説明するものである。リソース使用状況欄８２０には、各ＯＳにおける計算機資源の使用状況が表示されている。これは、リソース使用状況テーブル６００の内容を表示しているものである。
リソースマネージャーモジュール２２６は、各ＯＳにおける計算機資源の使用状況を計測し（図４に例示のステップＳ４０４からステップＳ４０８）、図９に例示の計測結果９１１から計測結果９１２まではステップＳ４１０でＮと判断し、リソース使用状況テーブル６００に記憶させる。次の計算機資源の使用状況の計測結果９１３は、ステップＳ４１０でＹと判断されるものである。したがって、計測結果９１３は、リソース使用状況テーブル６００内に記憶されないこととなる。
なお、ここでは、全ての計測結果が記憶されないが、各計測結果毎又は各ＯＳ毎にステップＳ４１０の判断を行い、その各計測結果毎又は各ＯＳ毎にリソース使用状況テーブル６００へ記憶させるか否かを判断するようにしてもよい。
【００４３】
図１０は、本実施の形態による電源オフ（主電源オフ又はサブ電源オフ）又は省電力モードへの移行の際（つまり、全てのＯＳをシャットダウンする前）の処理例を示す説明図である。図１１は、本実施の形態による電源オフ又は省電力モードへの移行の際の処理例を示すフローチャートである。図１０、図１１を用いて、本実施の形態による電源オフ又は省電力モードへの移行の際の処理例を説明する。
【００４４】
ステップＳ１１０２では、リソースマネージャーモジュール２２６がリソースメモリ２２４のリソース使用状況テーブル６００内に格納されたＣＰＵ使用状況からサブ電源オン（主電源オンを含む、以下同じ）時、又は省電力モードからの復帰時に設定するＣＰＵ割り当て率を計算する。
ステップＳ１１０４では、リソースマネージャーモジュール２２６がリソースメモリ２２４のリソース使用状況テーブル６００内に格納されたメモリ使用状況からサブ電源オン時、又は省電力モードからの復帰時に設定するメモリ割り当て率を計算する。
ステップＳ１１０６では、リソースマネージャーモジュール２２６がリソースメモリ２２４のリソース使用状況テーブル６００内に格納されたタスク実行待ち状況からサブ電源オン時、又は省電力モードからの復帰時に設定するタスクプライオリティを計算する。ステップＳ１１０２からステップＳ１１０６までの計算結果は、リソースメモリ２２４内の次回リソース配分テーブル７００に記憶させる。また、現リソース配分テーブル５００内のデータを消去してもよい。
【００４５】
例えば、ＣＰＵ割り当て率の計算について説明する。
ＯＳ数  ＝  ｍ、リソース使用状況テーブル６００に格納されている各ＯＳのＣＰＵ使用率の数（リソース使用状況テーブル６００内でデータが記憶されている取得値記憶欄の数）  ＝  ｎとする。
（１−１）各ＯＳのＣＰＵ平均使用率を計算する。
ＯＳ１の平均使用率（Ａ１）  ＝  （ＯＳ１取得値記憶欄１内の値  ＋  ＯＳ１取得値記憶欄２内の値  ＋  −−−  ＋  ＯＳ１取得値記憶欄ｎ内の値  ）  ／  ｎ
ＯＳ２の平均使用率（Ａ２）  ＝  （ＯＳ２取得値記憶欄１内の値  ＋  ＯＳ２取得値記憶欄２内の値  ＋  −−−  ＋  ＯＳ２取得値記憶欄ｎ内の値  ）  ／  ｎ
：
ＯＳｍの平均使用率（Ａｍ）  ＝  （ＯＳｍ取得値記憶欄１内の値  ＋  ＯＳｍ取得値記憶欄２内の値  ＋  −−−  ＋  ＯＳｍ取得値記憶欄ｎ内の値  ）  ／  ｎ
なお、各式でｎを用いているが、図４に例示のステップＳ４１０での判断が各ＯＳ毎に行われた場合は、各ＯＳで異なる場合がある（以下、同じ）。
（１−２）全体のＣＰＵにおける各ＯＳのＣＰＵ平均使用率を計算する。なお、現在のＯＳのＣＰＵ割り当て率は、現リソース配分テーブル５００のＣＰＵ割り当て欄５１２内のデータである。
ＯＳ１の全体における平均使用率（Ｂ１）  ＝  現在のＯＳ１のＣＰＵ割り当て率  ×  Ａ１
ＯＳ２の全体における平均使用率（Ｂ２）  ＝  現在のＯＳ２のＣＰＵ割り当て率  ×  Ａ２
：
ＯＳｍの全体における平均使用率（Ｂｍ）  ＝  現在のＯＳｍのＣＰＵ割り当て率  ×  Ａｍ
（１−３）各ＯＳのＣＰＵ割り当て率を計算する。
ＯＳ１のＣＰＵ割り当て率（Ｃ１）  ＝  Ｂ１／（Ｂ１＋Ｂ２＋−−−＋Ｂｍ）×１００
ＯＳ２のＣＰＵ割り当て率（Ｃ２）  ＝  Ｂ２／（Ｂ１＋Ｂ２＋−−−＋Ｂｍ）×１００
：
ＯＳｍのＣＰＵ割り当て率（Ｃｍ）  ＝  Ｂｍ／（Ｂ１＋Ｂ２＋−−−＋Ｂｍ）×１００
【００４６】
また、次のように行ってもよい。
（２−１）各ＯＳのＣＰＵ使用率の最高値を計算する。なお、ｍａｘ（）関数は、引数内の最高値を算出する関数である。
ＯＳ１の最高使用率（Ｄ１）  ＝  ｍａｘ（ＯＳ１取得値記憶欄１内の値，ＯＳ１取得値記憶欄２内の値，−−−，ＯＳ１取得値記憶欄ｎ内の値  ）
ＯＳ２の最高使用率（Ｄ２）  ＝  ｍａｘ（ＯＳ２取得値記憶欄１内の値，ＯＳ２取得値記憶欄２内の値，−−−，ＯＳ２取得値記憶欄ｎ内の値  ）
：
ＯＳｍの最高使用率（Ｄｍ）  ＝  ｍａｘ（ＯＳｍ取得値記憶欄１内の値，ＯＳｍ取得値記憶欄２内の値，−−−，ＯＳｍ取得値記憶欄ｎ内の値  ）
（２−２）全体のＣＰＵにおける各ＯＳのＣＰＵ最高使用率を計算する。なお、現在のＯＳのＣＰＵ割り当て率は、現リソース配分テーブル５００のＣＰＵ割り当て欄５１２内のデータである。
ＯＳ１の全体における平均使用率（Ｅ１）  ＝  現在のＯＳ１のＣＰＵ割り当て率  ×  Ｄ１
ＯＳ２の全体における平均使用率（Ｅ２）  ＝  現在のＯＳ２のＣＰＵ割り当て率  ×  Ｄ２
：
ＯＳｍの全体における平均使用率（Ｅｍ）  ＝  現在のＯＳｍのＣＰＵ割り当て率  ×  Ｄｍ
（２−３）各ＯＳのＣＰＵ割り当て率を計算する。
ＯＳ１のＣＰＵ割り当て率（Ｆ１）  ＝  Ｅ１／（Ｅ１＋Ｅ２＋−−−＋Ｅｍ）×１００
ＯＳ２のＣＰＵ割り当て率（Ｆ２）  ＝  Ｅ２／（Ｅ１＋Ｅ２＋−−−＋Ｅｍ）×１００
：
ＯＳｍのＣＰＵ割り当て率（Ｆｍ）  ＝  Ｅｍ／（Ｅ１＋Ｅ２＋−−−＋Ｅｍ）×１００
【００４７】
現在のＯＳのＣＰＵ割り当て率を用いずに（つまり、（１−２）、（２−２）の処理を行わずに）、各ＯＳのＣＰＵ割り当て率を計算するようにしてもよい。この場合、（１−３）におけるＢ１，Ｂ２，・・・，Ｂｍは、Ａ１，Ａ２，・・・，Ａｍとなり、（２−３）におけるＥ１，Ｅ２，・・・，Ｅｍは、Ｄ１，Ｄ２，・・・，Ｄｍとなる。
また、メモリ使用率についても、ＣＰＵ割り当て率と同等の計算を行ってもよい。つまり、前述のＣＰＵ割り当て率の計算におけるＣＰＵ平均使用率等とあるのをメモリ平均使用率等とすればよい。
【００４８】
また、タスクプライオリティについては、リソース使用状況テーブル６００内のタスク実行待ち時間の統計値と予め定められた閾値とを比較して、タスクプライオリティを決定するようにしてもよい。例えば、リソース使用状況テーブル６００内のタスク実行待ち時間の合計値（平均値、中央値、最頻値等でもよい）が予め定められた閾値以上（又は未満）である場合は、現在のＯＳにおけるタスクプライオリティの順位を１つ上げる（又は下げる）ようにしてもよい。また、現在のＯＳにおける順位が隣合うタスクプライオリティ間のリソース使用状況テーブル６００内のタスク実行待ち時間の合計値（平均値、中央値、最頻値等でもよい）の差が予め定められた閾値以上である場合は、ＯＳにおけるタスクプライオリティの順位を入れ替えるようにしてもよい。
【００４９】
ステップＳ１１０８では、リソースマネージャーモジュール２２６が、ＯＳ毎のリジューム情報（ＯＳのシャットダウン前の状態情報）を不揮発性メモリ２１２に退避させる。このリジューム情報として、次回リソース配分テーブル７００を含む。ステップＳ１１０８はサブ電源オフ時だけの処理であり、省電力モードへの移行時は行わなくてもよい。ただし、省電力モードへ移行することによって、リソースメモリ２２４内のデータが保持できなくなる場合は、ステップＳ１１０８の処理も行う。
ステップＳ１１１０では、ハイパーバイザーＯＳ２２０が、ＯＳをシャットダウンする。
【００５０】
図１２は、リソースメモリ内容８００の表示例を示す説明図である。ステップＳ１１０６後の状態では、リソースメモリ内容８００の次回リソース配分欄８３０には、ステップＳ１１０２からステップＳ１１０６までの計算結果（次回リソース配分テーブル７００が記憶しているデータ）が表示されることになる。
【００５１】
図１３は、本実施の形態によるサブ電源オン又は省電力モードからの復帰の際（つまり、全てのＯＳを初期化して実行する際）の処理例を示す説明図である。図１４は、本実施の形態によるサブ電源オン又は省電力モードからの復帰の際の処理例を示すフローチャートである。図１３、図１４を用いて、本実施の形態によるサブ電源オン又は省電力モードからの復帰の際の処理例を説明する。なお、この処理例は、図１０、図１１を用いて説明した電源オフ又は省電力モードへの移行が行われた後のものである。
【００５２】
ステップＳ１４０２では、ブートローダーモジュール２１４を実行する。つまり、ブートローダーモジュール２１４は、ハードウェア２１０の初期化及びハイパーローダーモジュール２２２の呼び出しを行う。
ステップＳ１４０４では、ハイパーローダーモジュール２２２を実行する。つまり、ハイパーローダーモジュール２２２は、省電力モードから復帰する場合はリソースメモリ２２４内の次回リソース配分テーブル７００を読み込み、サブ電源オンの場合は不揮発性メモリ２１２内の次回リソース配分テーブル７００を読み込む。もちろん、省電力モードへ移行することによって、リソースメモリ２２４内のデータが保持できなくなる場合は、省電力モードから復帰する場合であっても、不揮発性メモリ２１２内の次回リソース配分テーブル７００を読み込む。
ステップＳ１４０６では、ハイパーローダーモジュール２２２は、リソースメモリ２２４又は不揮発性メモリ２１２の次回リソース配分テーブル７００内にデータがあるか否かを判断し、ある場合はステップＳ１４１０へ進み、それ以外の場合はステップＳ１４０８へ進む。
【００５３】
ステップＳ１４０８では、ハイパーローダーモジュール２２２は、外部ファイルを読み込み、各ＯＳに配分する計算機資源をハイパーバイザーＯＳ２２０に設定する。ここで、外部ファイルとは、次回リソース配分テーブル７００以外の例えばハードディスク等の記憶装置に記憶されているファイルのことを指し、予め定められた規定値である各ＯＳの計算機資源の配分を記憶している。
ステップＳ１４１０では、リソースメモリ２２４の次回リソース配分テーブル７００を読み込み、各ＯＳに配分する計算機資源をハイパーバイザーＯＳ２２０に設定する。
ステップＳ１４１２では、ハイパーバイザーＯＳ２２０を実行する。つまり、ハイパーバイザーＯＳ２２０内を初期化する。
ステップＳ１４１４では、ハイパーバイザーＯＳ２２０を実行する。つまり、ステップＳ１４０８又はステップＳ１４１０の設定に基づいて、各ＯＳを計算機資源の配分に基づいて初期化する。そして、リソースメモリ２２４内の現リソース配分テーブル５００に各ＯＳの計算機資源の配分を記憶させる。
ステップＳ１４１６では、ハイパーバイザーＯＳ２２０は、各ＯＳ（ゲストＯＳ−Ａ  ２３２、ゲストＯＳ−Ｂ  ２３４、ゲストＯＳ−Ｃ  ２３６）を実行する。
【００５４】
図１５は、リソースメモリ内容８００の表示例を示す説明図である。これは、ステップＳ１４１６後の状態を表示したものである。
各ＯＳは動作していないので、リソース使用状況欄８２０は空欄である。そして、現リソース配分欄８１０（現リソース配分テーブル５００内のデータ）は、次回リソース配分欄８３０（次回リソース配分テーブル７００内のデータ）が複写されている。
【００５５】
図１６は、本実施の形態によるシャットダウンの際の処理例を示す説明図である。図１７は、本実施の形態によるシャットダウン後に起動した際の処理例を示す説明図である。図１８は、本実施の形態によるシャットダウンの際の処理例及びシャットダウン後に起動した際の処理例を示すフローチャートである。図１６、図１７、図１８を用いて、本実施の形態によるシャットダウンの際の処理例及びシャットダウン後に起動した際の処理例を説明する。図１０、図１１に示した例は、全てのＯＳをシャットダウンする場合について示したが、図１６（図１８内のステップＳ１８０２からステップＳ１８１０まで）に示す例は、２つ以上のＯＳをシャットダウンし、１つ以上のＯＳは継続して動作している場合についてである。
【００５６】
ステップＳ１８０２では、リソースマネージャーモジュール２２６がリソースメモリ２２４のリソース使用状況テーブル６００内に格納されたＣＰＵ使用状況からＯＳ起動時に設定するＣＰＵ割り当て率を計算する。
ステップＳ１８０４では、リソースマネージャーモジュール２２６がリソースメモリ２２４のリソース使用状況テーブル６００内に格納されたメモリ使用状況からＯＳ起動時に設定するメモリ割り当て率を計算する。
ステップＳ１８０６では、リソースマネージャーモジュール２２６がリソースメモリ２２４のリソース使用状況テーブル６００内に格納されたタスク実行待ち状況からＯＳ起動時に設定するタスクプライオリティを計算する。ステップＳ１８０２からステップＳ１８０６までの計算結果は、リソースメモリ２２４内の次回リソース配分テーブル７００に記憶させる。また、現リソース配分テーブル５００内のデータを消去してもよい。
【００５７】
ＣＰＵ割り当て率等の計算は、前述したものに準ずる。ただし、１つ以上のＯＳは継続して動作しているので、そのＯＳの計算機資源の配分は変更させないようにする。したがって、シャットダウンするＯＳの計算機資源の配分を計算する。そのために、継続して動作しているＯＳの計算機資源の配分を除いた計算機資源を分け合うようにする。より具体的には、ＯＳ１だけが継続して動作している場合は、前述の（１−３）は以下のようになる。
ＯＳ２のＣＰＵ割り当て率（Ｃ２）  ＝  Ｂ２／（Ｂ２＋−−−＋Ｂｍ）×（１００−Ｂ１）
：
ＯＳｍのＣＰＵ割り当て率（Ｃｍ）  ＝  Ｂｍ／（Ｂ２＋−−−＋Ｂｍ）×（１００−Ｂ１）
また、メモリ使用率についても、ＣＰＵ割り当て率と同等の計算を行う。
また、タスクプライオリティについては、シャットダウンするＯＳのタスクプライオリティ間で変更させる。
【００５８】
ステップＳ１８０８では、リソースマネージャーモジュール２２６が、シャットダウンするＯＳのリジューム情報をハイパーバイザーＯＳ２２０内のメモリに退避させる。
ステップＳ１８１０では、ハイパーバイザーＯＳ２２０が、そのＯＳをシャットダウンする。
【００５９】
ステップＳ１８２２以降の処理は、シャットダウンしたＯＳを起動する場合の処理である。
ステップＳ１８２２では、ハイパーバイザーＯＳ２２０からハイパーローダーモジュール２２２を呼び出す。
ステップＳ１８２４では、リソースメモリ２２４の次回リソース配分テーブル７００を読み出す。
ステップＳ１８２６では、読み出した計算機資源の配分をハイパーバイザーＯＳ２２０に設定する。
ステップＳ１８２８では、ハイパーバイザーＯＳ２２０のＯＳ初期化プログラムを実行して、シャットダウンしたＯＳを計算機資源の配分に基づいて初期化する。
ステップＳ１８３０では、ハイパーバイザーＯＳ２２０内に退避させたシャットダウンしたＯＳのリジューム情報を起動したＯＳのメモリに復帰させる。
【００６０】
図１９を参照して、本実施の形態の情報処理装置のハードウェア構成例について説明する。図１９に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部１９１７と、プリンタなどのデータ出力部１９１８を備えたハードウェア構成例を示している。
【００６１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１９０１は、前述の実施の形態において説明した各種のモジュール、すなわちリソース使用状況取得モジュール１１０、リソース配分算出モジュール１３０、初期化モジュール１６０、リソース配分モジュール１７０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００６２】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１９０２は、ＣＰＵ１９０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１９０３は、ＣＰＵ１９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１９０４により相互に接続されている。
【００６３】
ホストバス１９０４は、ブリッジ１９０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１９０６に接続されている。
【００６４】
キーボード１９０８、マウス等のポインティングデバイス１９０９は、操作者により操作される入力デバイスである。ディスプレイ１９１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００６５】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１９１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ１９０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、リソースの使用状況等が格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００６６】
ドライブ１９１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１９１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１９０７、外部バス１９０６、ブリッジ１９０５、及びホストバス１９０４を介して接続されているＲＡＭ１９０３に供給する。リムーバブル記録媒体１９１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００６７】
接続ポート１９１４は、外部接続機器１９１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１９１４は、インタフェース１９０７、及び外部バス１９０６、ブリッジ１９０５、ホストバス１９０４等を介してＣＰＵ１９０１等に接続されている。通信部１９１６は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部１９１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１９１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００６８】
なお、図１９に示す情報処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１９に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１９に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよいし、画像処理システム以外に家電、自動車、エレベーター等に利用してもよい。
【００６９】
前述の実施の形態においては、１つの情報処理装置上で主に３つのＯＳを動作させる場合を示したが、２つのＯＳ又は４つ以上のＯＳを動作させるようにしてもよい。
【００７０】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００７１】
１１０…リソース使用状況取得モジュール
１２０…リソース使用状況記憶モジュール
１３０…リソース配分算出モジュール
１４０…現リソース配分記憶モジュール
１５０…次回リソース配分記憶モジュール
１６０…初期化モジュール
１７０…リソース配分モジュール
２１０…ハードウェア
２１２…不揮発性メモリ
２１４…ブートローダーモジュール
２２０…ハイパーバイザーＯＳ
２２２…ハイパーローダーモジュール
２２４…リソースメモリ
２２６…リソースマネージャーモジュール
２３２…ゲストＯＳ−Ａ
２３４…ゲストＯＳ−Ｂ
２３６…ゲストＯＳ−Ｃ
【図１】
2011227598.tif 000003
【図２】
2011227598.tif 000004
【図３】
2011227598.tif 000005
【図４】
2011227598.tif 000006
【図５】
2011227598.tif 000007
【図６】
2011227598.tif 000008
【図７】
2011227598.tif 000009
【図８】
2011227598.tif 000010
【図９】
2011227598.tif 000011
【図１０】
2011227598.tif 000012
【図１１】
2011227598.tif 000013
【図１２】
2011227598.tif 000014
【図１３】
2011227598.tif 000015
【図１４】
2011227598.tif 000016
【図１５】
2011227598.tif 000017
【図１６】
2011227598.tif 000018
【図１７】
2011227598.tif 000019
【図１８】
2011227598.tif 000020
【図１９】
2011227598.tif 000021