(57)【要約】  複数の仮想計算機を稼働する仮想化システムにおいて、ＣＰＵコアのリソースの制限と仮想化システム特有のＩＯ制御における処理遅延によりリアルタイム性を要求する仮想計算機の運用は困難であった。複数の仮想計算機を稼働する仮想化システムにおいて、仮想計算機上で処理されるアプリケーションを優先度別にグループ化し、各優先度グループの先頭タスクの開始と後尾タスクの終了を該当優先度グループの処理デッドラインとして管理し、各優先度グループの処理開始と終了をホストＯＳに通知し、ホストＯＳでは、優先度グループの開始と終了通知を受け、仮想計算機の優先度を調整し、外部装置からの割り込み処理に対して、仮想計算機内の最高優先度グループのデッドラインを守るように割り込み通知の数を制限する。
2013145199.tif 000002
【特許請求の範囲】
【請求項１】
ホストＯＳおよび仮想計算機を搭載する計算機システムにおける仮想計算機のスケジュール方法であって、
前記仮想計算機上に設けたＶＭ内スケジュール処理部は、
前記仮想計算機上で動作するアプリケーションの優先度に従って優先度グループを作成し、
リアルタイム処理が必要な高優先度グループの動作開始と終了を通知する前記優先度グループの先頭タスクと後尾タスクを導入することで前記優先度グループをリング状で管理し、
前記ホストＯＳ上のＶＭスケジューラ制御部は、
前記優先度グループの先頭タスクと後尾タスクからの前記優先度グループの処理が開始と終了の通知をうけ、仮想計算機の処理優先度を決定することを特徴とする仮想計算機のスケジュール方法。
【請求項２】
前記ＶＭスケジュール処理部に設けた割り込み管理部は、仮想計算機毎に外部装置からの割り込み数を制限することによって、仮想計算機のリアルタイム性を保証する制御を行うことを特徴とする請求項１に記載の仮想計算機のスケジュール方法。
【請求項３】
ホストＯＳおよび仮想計算機を搭載する計算機システムにおいて、
前記仮想計算機上に設けたＶＭ内スケジュール処理部は、
前記仮想計算機上で動作するアプリケーションの優先度に従って優先度グループを作成し、リアルタイム処理が必要な高優先度グループの動作開始と終了を通知する前記優先度グループの先頭タスクと後尾タスクを導入することで前記優先度グループをリング状で管理する、ＶＭ内スケジュール処理部を前記仮想計算機上に設け、
前記優先度グループの先頭タスクと後尾タスクからの前記優先度グループの処理が開始と終了の通知をうけ、仮想計算機の処理優先度を決定するＶＭスケジューラ制御部を前記ホストＯＳ上に設けたことを特徴とする仮想計算機システム。
【請求項４】
前記ＶＭスケジュール処理部に、仮想計算機毎に外部装置からの割り込み数を制限する割り込み管理部を設け、仮想計算機のリアルタイム性を保証する制御を行うことを特徴とする請求項３に記載の仮想計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ仮想化環境においてリアルタイム性が必要な仮想計算機の運用する計算機システムに関し、特にＣＰＵリソースの制限がある計算機上の仮想計算機をスケジュールする方法である。
【背景技術】
【０００２】
サーバ仮想化技術は、１台の物理計算機上で複数の仮想計算機（ＶＭ）を実行して、物理計算機の台数を削減することで、運用コスト、計算機の設置場所及び消費電力等を削減できる利点があり、注目を浴びている。その際、仮想計算機内のアプリケーションによってリアルタイム性が要求される。しかし、物理計算機に仮想計算機に割り当てるＣＰＵリソースが十分に存在する場合は、ＣＰＵリソースを占有割当するなどの性能保証の手法が存在するが、ＣＰＵリソースが不十分な計算機環境では、十分なリアルタイム性保証は困難である。また、計算機と接続されているネットワークデバイス等の外部装置からの割り込みが頻繁に発生する場合、仮想計算機内のアプリケーションの処理遅延が発生し、その状況をさらに悪化させる。しかし、制御システムにおいてはこのような計算機状況でも、仮想計算機上のアプリケーションのリアルタイム性保証が要求される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１９８０２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に示す従来の仮想計算機のスケジュール方式では、仮想計算機で処理するアプリケーションをスレッド単位に分離し、分離したスレッド単位を複数の仮想計算機で分担して処理を行うこととし、アプリケーションの処理順に仮想計算機の実行順番をスケジュールしていた。しかし、複数のアプリケーションから構成されるシステムの場合、リソースの占有状態を考慮すると、アプリケーションの処理順序のみに基づいて、仮想計算機の実行順番を決定するのは困難である。また、それぞれのＣＰＵの負荷（さらには処理能力）が異なるので複数ＣＰＵ構成のマルチＣＰＵ環境での対応が困難であるため、物理計算機のＣＰＵリソースの有効な活用ができない。【０００５】
そこで、本発明は１つ以上のＣＰＵリソースが利用できる物理計算機環境において、大規模なアプリケーションを稼働する複数仮想計算機で構成される仮想化システムのスケジュール方法において、仮想計算機で処理するアプリケーションのリアルタイム性を保証できる仮想計算機のスケジューリング技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
物理計算機及び各仮想計算機は物理ＮＩＣを共有し、それを介して計算機サーバやコントローラ等の外部装置と通信を行っている。また、ホストＯＳおよび複数の仮想計算機を搭載する計算機システムにおいて、上記の計算機内部のホストＯＳ上にＶＭスケジューラ制御部を設ける。また、各仮想計算機上にはゲストＯＳが稼働して、仮想計算機上のアプリケーションの実行処理を行う。ゲストＯＳ上には、前記アプリケーションの実行優先度別グループでアプリケーションの実行順を決定するＶＭ内スケジュール制御部を設ける。ただし、ホストＯＳには各仮想計算機にＣＰＵリソースを割り当てるスケジュール機能を備え、外部装置からの割り込みを該当仮想計算機へ伝達する割り込み処理機能を備えた仮想化プログラムを備えていることを前提とする。また、ゲストＯＳには、ホストＯＳから各仮想計算機に割り当てたＣＰＵリソースを仮想計算機内アプリケーションに割り当ててアプリケーションを実行できるスケジュール機能、及び、ホストＯＳ上の仮想化プログラムから通知された割り込みを処理する機能を備えていることを前提とする。【０００７】
まず、ゲストＯＳ上で稼働するＶＭ内スケジュール制御部は、仮想計算機内のアプリケーションを優先度別にグループに分ける。また、各グループの先頭と最後尾にはＶＭ内スケジュール制御部が用意するグループの中で最初に実行するアプリケーションと最後に実行するアプリケーションが登録される。【０００８】
前記優先度グループは複数存在する。各優先度グループは優先度を表す識別子を持つ。本発明では、「Ｌ１」が最高優先度グループとし、「Ｌｎ」が最低優先度グループとする。ＶＭ内スケジュール制御部は「Ｌ１」から「Ｌｎ」までのいずれかのグループに属する全アプリケーションは、あるデッドラインで処理されることを保証するように各優先度グループの処理時間が管理される。各グループの処理時間は、前記グループ先頭アプリケーションの起動時間と、最後尾アプリケーションを終了時間で管理している。前記デッドライン設計は、本発明を提供するシステムの要件によって調整する必要がある。【０００９】
なお、ホストＯＳ上のＶＭスケジューラ制御部へ各仮想計算機の内部スケジュール状態を通知するために、各ゲストＯＳのＶＭ内スケジュール制御部は、ホストＯＳ上のＶＭスケジューラ制御部との通知手段を備える。ホストＯＳ上のＶＭスケジューラ制御部が各仮想計算機の内部スケジュール状態を把握するために、ゲストＯＳ上のＶＭ内スケジュール制御部は、仮想計算機内の優先度グループの先頭アプリケーションの開始と最後尾アプリケーションの終了をホストＯＳ上のＶＭスケジューラ制御部に通知する。【００１０】
ただし、優先度が最も低い「Ｌｎ」優先度グループにおいては、前記の通知は行わない。仮想計算機からホストＯＳへの通知のオーバヘッドは大きいため、低優先度のグループの開始終了は管理しないことで、前記オーバヘッドの低減を実施する。「Ｌｎ」以外の高優先度グループからのアプリケーションの開始と終了の時間の通知によって、ホストＯＳ上のＶＭスケジューラ制御部は各仮想化計算機で実行されているアプリケーションの優先度が把握できる。【００１１】
仮想計算機内の実行優先度から、ＣＰＵリソースに割り当てるべき仮想計算機を選択する。そのため、ホストＯＳ上のＶＭスケジューラ制御部は、各仮想計算機の実行状態として優先度グループの優先度を常に記録管理し、高優先度グループの終了通知をもって通知元の仮想計算機の優先度を下げていく。したがって、複数の仮想計算機の中で最優先にＣＰＵリソースを割り当てるべき仮想計算機が把握できる。【００１２】
なお、各仮想計算機が守るべきデッドラインを監視し、現状の実行優先度が低い仮想計算機であってもデッドラインに近い仮想計算機は最高優先度に調整し、かならずデッドラインを守るように調整する。「Ｌｎ」のような優先度が低いグループは、仮想計算機内のＶＭ内スケジュール制御部からホストＯＳへの、先頭アプリケーションの開始及び最後尾アプリケーションの終了の通知によるデッドラインによるスケジュール制御ではなく、後述するＣＰＵリソースを割り当てるＱｕｏｔａ時間でスケジュール制御を行う。【００１３】
一方、割り込み処理においては、ホストＯＳ上のＶＭスケジューラ制御部内に割り込み管理制御部を設け、仮想計算機のデッドライン内で許容される割り込み数を制限する。割り込み数制限は、各仮想計算機のデッドラインの許容値に対して１つの割り込み処理時間を割った数を割り込み数の制限値として管理する。ホストＯＳ上の仮想化プログラムからの割り込み通知に対して割り込み数制限値内であれば、仮想計算機へ割り込みの通知を行う。【００１４】
割り込みの通知の際には、該当仮想計算機の現在の実行優先度にかかわらず最高優先度に変更し、ホストＯＳがＣＰＵのリソースを該当仮想計算機に割り当てるようにする。該当仮想計算機内では、ゲストＯＳで割り込み処理が行われ、ゲストＯＳのスケジューラはＶＭ内部スケジュール制御部で設定している優先度グループのアプリケーションを選択し、ＣＰＵリソースを割り当てる。【００１５】
しかし、そのアプリケーションより高い実行優先度のアプリケーションを実行する仮想計算機にＣＰＵリソースが割り当てられなくなるため、割り込み通知による最高優先度設定には、その優先度を維持するＱｕｏｔａ時間を設ける。即ち、割り込み処理に割り当てられていた時間がＱｕｏｔａ時間となると元の優先度に調整され、常にホストＯＳは最高優先度の仮想計算機にＣＰＵリソースを割り当てるようにする。【００１６】
以上のように、仮想計算機内のＶＭ内スケジュール制御部による優先度グループでのアプリケーション管理方法と、ホストＯＳ上のＶＭスケジューラ制御部によって、仮想計算機内で実行している優先度グループに従って、ＣＰＵリソースを仮想計算機へ割り当てることで、ＣＰＵリソースの制限があるシステムにおいても仮想計算機内のアプリケーションのリアルタイム性保証が可能である。また、ホストＯＳ上のＶＭスケジューラ制御部に割り込み管理制御部を設けることで、割り込み処理の高負荷の計算機環境においても仮想計算機内のアプリケーションのリアルタイム保証が可能である。
【発明の効果】
【００１７】
本発明によれば、ＶＭスケジューラ制御部が仮想計算機内の処理アプリケーションの優先度グループのデッドラインによって仮想計算機のＣＰＵリソース割当を管理するため、ＣＰＵリソースが制限される計算機システムにおいてもリアルタイム性保証が可能となる。また、外部割り込みが多く発生する外部ネットワークを利用する仮想計算機の運用においても、仮想計算機内の処理アプリケーションの優先度グループのデッドラインによって割り込み通知・処理の数制限を設けるため、リアルタイム性の保証が可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の仮想計算機のスケジュール制御の全体構成図である。
【図２】本発明のＶＭ内スケジュール管理テーブルの構成図である。
【図３】本発明のＶＭ管理テーブルの構成図である。
【図４】本発明のタイマ−管理テーブルの構成図である
【図５】本発明の割り込み管理テーブルの構成図である。
【図６Ａ】本発明の通知ＩＦ処理の概要図である。
【図６Ｂ】本発明の通知ＩＦ処理の概要図である。
【図７】本発明のＶＭ内スケジュールプログラムのフローチャートである。
【図８】本発明のＶＭ内スケジュールプログラムの終了処理のフローチャートである。
【図９】本発明の仮想化システムの全体フローチャートである。
【図１０】本発明のＶＭデッドライン管理プログラムのフローチャートである。
【図１１】本発明のＶＭデッドライン管理プログラムの実行ＶＭ選択処理のフローチャートである。
【図１２】本発明のタイマ−イベント管理プログラムのフローチャートである。
【図１３】本発明の外部イベント処理のフローチャートである。
【図１４】本発明のＱｕｏｔａ管理処理のフローチャートである。
【図１５】本発明の割り込み管理プログラムのフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施の形態を、図面を用いて説明する。なお、本発明が実施の形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明に該当する。
【００２０】
（全体構成図）
図１は本発明の実施形態の仮想マシンのスケジュール制御の全体構成図である。仮想マシンのスケジュール制御は、一つの仮想化システム１及び一つ端末２及び外部ネットワーク３から構成される。仮想化システム１は、１台の計算機で構成されている。計算機１００は、メモリ１０１、プロセッサ１０２、記憶装置１０３、及び外部通信インタフェース１０４を備える。メモリ１０１内には、ホストオペレーティングシステム４００（図中、ホストＯＳと略記）、ＶＭスケジューラ制御プログラム３００、及び、一つまたは複数の仮想マシン環境２００（図中、ＶＭと略記）が保持される。ホストＯＳ４００内には仮想化プログラム４０１が保持される。
【００２１】
ＶＭスケジューラ制御プログラム３００は、ＶＭ内スケジュール管理テーブル３０１、ＶＭ管理テーブル３０２、タイマ−管理テーブル３０３、割り込み管理テーブル３０４、ＶＭ内スケジュール入力プログラム３０５、ＶＭデッドラン管理プログラム３０６、タイマ−管理プログラム３０７、及び割り込み管理プログラム３０８から構成される。ＶＭ２００は、アプリケーション２１１（図中、ＡＰと略記）、ＶＭ内スケジュール２１２、ゲストオペレーティングシステム２１３（図中、ゲストＯＳと略記）、及び通知インタフェース２１４（図中、インタフェースをＩ／Ｆと略記）から構成される。図１では、計算機  １００内にＶＭ２００として実線枠で示したＶＭ１（２００−Ａ）、ＶＭ２（２００−Ｂ）及び点線枠で示したその他のＶＭ２００の例が示されているが、特にＶＭの台数は限定されるものではない。
【００２２】
端末２と計算機１００は外部ネットワーク３を介して接続される。計算機１００では、外部ネットワーク３は外部通信Ｉ／Ｆ１０４に接続される。
【００２３】
端末２は外部ネットワーク３を介して仮想化システム１との通信を行うことができる。
【００２４】
計算機ノード１００の記憶装置１０３は、ホストＯＳ４００、ＶＭスケジューラ制御プログラム３００（プログラムと各種テーブル情報）、さらに、ＶＭ２００を構成するＡＰ２１１、ＶＭ内スケジュール２１２、ゲストＯＳ２１３、及び通知Ｉ／Ｆ２１４を格納する。プロセッサ１０２は記憶装置１０３からホストＯＳ４００、ＶＭスケジューラ制御プログラム３００、ＶＭ２００の構成要素をメモリ１０１に展開して実行し、また、外部通信Ｉ／Ｆ１０４からの割込みを処理する。外部通信Ｉ／Ｆ１０４は、外部ネットワーク３を通じて端末２とのデータの送受信を行う。
【００２５】
仮想化プログラム４０１は、ＶＭ２００を作成して管理するためのプログラムであり、外部通信Ｉ／Ｆ１０４から割り込みを、通知Ｉ／Ｆ２１４を介してＶＭ２００に通知する。ホストＯＳ４００は、仮想化プログラム４０１を用いて、ＶＭスケジューラ制御プログラム３００やＶＭ２００の実行を制御し、外部通信Ｉ／Ｆ１０４や記憶装置１０３へのアクセス制御を行う。
【００２６】
ＶＭ２００は、固有のプログラムやオペレーティングシステムが動作することが可能な、仮想化プログラム４０１により作成された仮想的な実行環境である。複数のＶＭ２００が存在する場合に、異なるＶＭ２００内で動作するプログラムやオペレーティングシステムは同じでも良いし、異なっていても良い。また、異なるＶＭ２００内で動作するプログラムやオペレーティングシステムが互いに直接影響を与え合うことはない。ＶＭ２００は、仮想化システム１内で一意の識別子を持ち、例えば、図１中のＶＭ２００は「ＶＭ１」、あるいは「ＶＭ２」の識別子を保有する。
【００２７】
ＡＰ２１１は、ＶＭ２００内で動作アプリケーションプログラムである。ＡＰ２１１として、ＡＰ１−１（２１１−Ａ）、ＡＰ１−ｎ（２１１−Ｂ）が示されているが、ＶＭ２００内で動作するＡＰ２１１の数を限定するものではない。ゲストＯＳ２１３は、ＶＭ２００環境内でＶＭ内スケジュール２１２を利用してＡＰ２１１を制御する。通知ＩＦ２１４は、ＶＭ内スケジュール２１２の処理結果をゲストＯＳ２１３から受け取りＶＭスケジューラ制御プログラム３００へ出力する。
【００２８】
ＶＭスケジューラ制御プログラム３００は、ＶＭ２００で稼働するときに、ＶＭ内スケジュール２１２から、ＶＭ２００内のＡＰ２１１のスケジュール情報を、通知ＩＦ２１４を介して受け取る。ＶＭスケジューラ制御プログラム３００は、ＡＰ２１１のスケジュール情報を、ＶＭ内スケジュール入力プログラム３０５に入力する。ＶＭ内スケジュール入力プログラム３０５は、ＡＰ２１１のスケジュール情報をＶＭ内スケジュール管理テーブル３０１に格納する。
【００２９】
ＶＭ２００内で動作するＶＭ内スケジュール２１２は、ＡＰ２１１の動作優先度に応じてグループ化してプロセッサ１０２での実行時間をスケジュールする。動作優先度によるスケジュール方法は後述する。
【００３０】
ＶＭ２００内で動作するＶＭ内スケジュール２１２は、動作優先度グループのＡＰ２１１の動作開始と終了を、通知ＩＦ２１４を介してＶＭスケジューラ制御プログラム３００で動作するＶＭデッドライン管理プログラム３０６に通知する。ＶＭデッドライン管理プログラムは、ＡＰ２１１の動作開始と終了を元にＶＭ２００の優先度の調整を行う。また、割り込みテーブル３０４に、動作開始と終了の時間を実行時間のデッドラインとして書き込む。ＶＭ２００の優先度に応じて仮想化プログラム４０１はＶＭ２００を実行する。
【００３１】
ＶＭ２００内で動作するＶＭ内スケジュール２１２は、最高優先度グループのＡＰ２１１のタイマ−登録をタイマ−イベント管理プログラム３０７に通知ＩＦ２１４を介して通知する。タイマ−イベント管理プログラム３０７は、タイマー制御のための情報をタイマ−管理テーブル３０３に登録し、仮想化プログラム４０１にタイマ−制御を委ねる。仮想化プログラム４０１は、タイマ−が発火（起動）するとタイマ−イベント管理プログラム３０７に通知する。タイマ−イベント管理プログラム３０７は、タイマ−イベントを割り込み管理プログラム３０８に通知する。割り込み管理プログラム３０８は、通知ＩＦ２１４を介してＶＭ２００にタイマ−イベントを通知する。ゲストＯＳ２１３が割り込み管理プログラム３０８からタイマ−イベントを処理し、処理結果を、タイマ−登録を行ったＡＰ２１１に通知する。
【００３２】
割り込み管理プログラム３０８は、外部ＩＦ１０４からの割り込みを、通知ＩＦ２１４を介してＶＭ２００に通知する。割り込みはゲストＯＳ２１３で処理する。
【００３３】
ＶＭスケジューラ制御プログラム３００の詳細は、図７と共に後述する。
【００３４】
（ＶＭ内スケジュール管理テーブル）
図２は本発明の実施形態のＶＭ内スケジュール管理テーブル３０１の構成を示す図である。ＶＭ内スケジュール管理テーブル３０１は、ＶＭ内スケジュール２１２とＶＭスケジューラ制御プログラム３００内に保持され、計算機１００内に作成されているＶＭ２００−ＡやＶＭ２００−Ｂの各ＶＭ２００のＡＰ２１１のスケジュール情報を保持する。
【００３５】
ＶＭ識別子３１０１には、計算機１００内でＶＭ２００を一意に識別する情報を格納する。周期３１０２は、各ＶＭ２００で動作する全ＡＰ２１１が実行される時間を格納する。図２では、ＶＭ２００−ＡのＶＭ１で動作するＡＰ１−１からＡＰ１−ｎまで実行するのに１秒（１０００ｍｓ）かかることを意味している。
【００３６】
優先度レベル識別子３１０３は、ＡＰ２１１をゲストＯＳ２１３がＡＰ２１１を実行する順位を決める実行優先度別にグループ化し、そのグループを一意に識別する情報を格納する。図２では、Ｌ１グループの優先度が最も高く、次にＬ２、次にＬ３、次にＬｎの順に優先度が高い。
【００３７】
また、グループに属するＡＰ２１１は、同グループ内で最初に実行するＡＰ２１１から最後に実行するＡＰ２１１がリング状（円環）状となるように構成されている。同一グループに属しているＡＰ２１１をリング状に構成するため、ＶＭ２００には、各優先度グループの最初と最後のＡＰ２１１を事前に登録しておく必要がある。最初と最後のＡＰ２１１は、ユーザが登録するアプリケーションとは異なり、ＶＭ内スケジュール２１３が登録されたＡＰ２１１である。
【００３８】
レベルリング開始終了識別子３１０４には、グループに属する最初のＡＰ２１１が開始することを知らせる「Ｓ」と最後に実行するＡＰ２１１の終了を示す「Ｅ」が格納される。ＡＰ２１１がグループの最初と最後のＡＰ２１１ではない場合はレベルリング開始終了識別子３１０４に「Ｎ」が格納される。
【００３９】
タスク識別子３１０５には、グループ内のＡＰ２１１を一意に識別する情報を格納する。優先度３１０６には、ゲストＯＳ２１３がＡＰ２１１を実行する順位を決めるＡＰ２１１の実行優先度情報を格納する。ランタイム３１０７には、ＡＰ２１１がゲストＯＳ２１３で実行された時間を「ｍｓ」単位で格納する。順序制御タスク識別子３１０８には、ＡＰ２１１の実行が終了した場合、次に実行するＡＰ２１１のタスク識別子３１０５を格納する。順序制御タスク識別子３１０８にタスク識別子３１０５「Ｅ」以外の情報が格納されている場合は、該当するＡＰ２１１を実行する。タスク識別子３１０５に「Ｅ」の情報が格納され、レベルリング開始終了識別子３１０４に「Ｎ」が格納されている場合は同グループの他ＡＰ２１１の実行を行う。
【００４０】
Ｑｕｏｔａ３１０９には、優先度レベル識別子３０１３が「Ｌｎ」に属しているＡＰ２１１の実行に割り当てる時間を格納する。
【００４１】
ＶＭ内スケジュール２１２の詳細は図７と共に後述する。
【００４２】
（ＶＭ管理テーブル）
図３は本発明の実施形態のＶＭ管理テーブル３０２の構成を示す図である。ＶＭ管理テーブル３０２は、仮想化プログラム４０１がＶＭ２００を実行するために用いる。
【００４３】
ＶＭ識別子３２０１には、計算機１００内でＶＭ２００を一意に識別する情報を格納する。優先度識別子３２０２には、ゲストＯＳ２１３が実行しているＡＰ２１１が属している優先度レベル識別子３１０２を格納する。優先度識別子３２０２は、ＶＭ内スケジュール２１２が後述する通知フォーマット５００に格納する情報から取得する。レベルリング開始終了識別子３２０３には、優先度レベル識別子３１０３の優先度グループの最初ＡＰ２１１の開始「Ｓ」または、最後のＡＰ２１１の終了「Ｅ」の情報を格納する。「Ｉ」は優先度ＩＤの変更を表わす。
【００４４】
デッドライン３２０４は、優先度レベル識別子３１０３の優先度グループの最初のＡＰ２１１の開始から最後のＡＰ２１１の終了までの時間を「ｍｓ」単位で格納する。タスク識別子３２０５は、通知フォーマット５００に格納する情報から取得する。
【００４５】
実行状態３２０６には、仮想化プログラム４０１が実行するＶＭ２００の実行状態を格納する。仮想化プログラム４０１がＶＭ２００を実行する場合、実行状態３２０６には「Ｒ」と格納する。仮想化プログラム４０１によって実行してないＶＭ２００は「０」を格納する。プロセッサ１０２がマルチコア構成の場合は、仮想化プログラム４０１によって実行されるＶＭ２００は複数個となる。
【００４６】
ランタイム３２０７には、仮想化プログラム４０１によって実行されたＶＭ２００の実行時間が「ｍｓ」単位で格納する。Ｑｕｏｔａ３２０８には、ゲストＯＳ２１３が実行しているＡＰ２１１の優先度グループが「Ｌｎ」の場合、仮想化プログラム４０１によって該当ＶＭ２００を実行する時間が格納される。また、後述するタイマ−イベント管理プログラム３０７と割り込み管理プログラム３０８の処理では、優先度グループが「Ｌｎ」以外の優先度であってもＱｕｏｔａ３２０８には実行時間を格納する。
【００４７】
タイマーイベント管理プログラム３０７と割り込み管理プログラム３０８によって格納するＱｕｏｔａ３２０８の情報は、タイマ−イベントと割り込みがＶＭ２００のゲストＯＳ２１３によって処理された後、ゲストＯＳ２１３によって実行されるＡＰ２１１の優先度グループが優先度識別子３２０２と一致しないことがある。特に、「Ｌｎ」優先度グループのＡＰ２１１が実行される場合、開始終了がＶＭデッドライン管理プログラム３０６に通知されないため、ＶＭ管理テーブル３０４の優先度識別子３２０２が「Ｌｎ」より高い優先度グループのＶＭ２００がある場合、優先度による実行順序が守れなくなる。優先度による実行順序を守るため、タイマ−イベントと割り込み通知にはＱｕｏｔａ３２０８を格納する必要がある。
【００４８】
ＴｉｍｅＳｔａｍｐ３２０９にはランタイム３２０７を格納する。後述するＶＭデッドライン管理プログラム３０７がＱｕｏｔａ３２０８の時間が経過したかを判断するためである。元優先度３２１０には、タイマ−イベントと割り込み処理では優先度識別子３２０２に優先度「Ｌ１」を格納する際に優先度識別子３２０２の情報を格納する。タイマ−イベントと割り込み処理は、制御システムのリアルタイム性保証のためにＶＭ２００が優先的に処理するようにする必要があるため、ＶＭ２００の実行優先度に関係なく最高優先度「Ｌ１」にする必要がある。Ｑｕｏｔａ３２０８の経過後は、元優先度３２１０の優先度を優先度識別子３２０２に格納する。
【００４９】
（タイマ−管理テーブル）
図４は本発明の実施形態のタイマ−管理テーブル３０３の構成を示す図である。タイマ−管理テーブル３０３は、ＶＭ２００のゲストＯＳ２１３が実行するＡＰ２１１の中で実行優先度グループ「Ｌ１」に属しているＡＰ２１１のタイマ−登録を仮想化プログラム４０１で行うために必要なテーブルである。「Ｌ１」のグループのＡＰ２１１はリアルタイム性が必要なアプリケーションである。そのため、ＶＭ２００のゲストＯＳ２１３ではなく、ホストＯＳ４００の仮想化プログラム４０１で処理を行う。「Ｌ１」のグループに属しているＡＰ２１１のタイマ−登録を、ＶＭ内スケジュール２１２が通知ＩＦ２１４を介してタイマ−イベント管理プログラム３０７に通知する。
【００５０】
ＶＭ識別子３３０１には、計算機１００内でＶＭ２００を一意に識別する情報を格納する。優先度レベル３３０２には優先度レベル識別子３１０３を格納する。タスク識別子３３０３にはＡＰ２１１の識別する情報を格納する。インタバール３３０４にはタイマ−イベントの発火時間を格納する。カウンタ３３０５にはタイマ−イベントの単位時間（例えば１秒間）当たりの発火頻度を格納する。
【００５１】
（割り込み管理テーブル）
図５は本発明の実施形態の割り込み管理テーブル３０４の構成を示す図である。仮想化システムにおいては前記ＡＰ２１１のリアルタイム性を保証するにはＶＭ２００が処理する割り込み数を制限する必要がある。後述する割り込み管理プログラム３０８によって管理される。
【００５２】
ＶＭ識別子３４０１には計算機１００内でＶＭ２００を一意に識別する情報を格納する。周期３４０２にはＶＭ内スケジュール管理テーブル３０１の周期３１０２の情報を格納する。優先度レベル３４０３にはタイマー管理テーブル３０３で管理しているＶＭ識別子３４０１を格納する。デッドライン３４０４にはＶＭ管理テーブル３０２のデッドライン３２０４を格納する。デッドライン許容値３４０５には優先度レベル３４０４に属するＡＰ２１１のグループの実行デッドライン時間からリアルタイム性を保証できる許容時間を「ｍｓ」で格納する。
【００５３】
１つ割り込み処理時間３４０６にはＶＭ２００のゲストＯＳ２１３が外部ＩＦ１０２からの１つの割り込みを処理する時間を「ｍｓ」で格納する。割り込み数臨界値３４０７にはデッドライン許容値３４０５に対して１つ割り込み処理時間３４０６を割った数の９０％の値を格納する。９０％を格納することで、１０％の余裕値を設ける。周期デッドライン３４０８にはＶＭ内スケジュール管理テーブル３０１の周期３１０２を格納する。割り込み累積３４０９には、周期デッドライン３４０８の時間内で発生した割り込み数を格納する。
【００５４】
（通知ＩＦ処理概要）
図６Ａは本発明の実施形態の通知ＩＦ２１４の処理概要である。図６Ｂは、通知フォーマット５００の構成を示す。優先度グループの最初のＡＰ２１１の開始と最後のＡＰ２１１の終了の際に通知フォーマット５００にＡＰ２１１の情報を格納し（５０３）、ＶＭスケジューラ制御プログラム３００に通知する（５０２）。通知によってホストＯＳ４００の仮想化プログラム４０１がＶＭ２００の実行順序を決定する。外部通信ＩＦ１０４からの割り込みとタイマ−イベントは仮想化プログラム４０１が処理し、ＶＭスケジューラ制御プログラム３００に通知する。ＶＭスケジューラ制御プログラム３００はＶＭ管理テーブル３０２の優先度識別子３２０２に「Ｌ１」を設定し、Ｑｕｏｔａ３２０８を設定し、通知ＩＦ２１４でＶＭ２００に通知する（５０１）。
【００５５】
図６Ｂの通知フォーマット５００における、ＶＭ識別子５００１、周期５００２、優先度レベル５００３、及び開始時のタスク識別子５００４は、図２のＶＭ内スケジュール管理テーブル３０１のそれぞれの項目に対応して、優先度グループの最初のＡＰ２１１の開始時に、最初のＡＰ２１１によって設定され、開始終了５００５に「Ｓ」が設定される。ＶＭスケジューラ制御プログラム３００によって、図５の割り込み管理テーブル３０４の項目３４０６及び３４０７に基づいて、１つ割り込み処理時間５００６、及び割り込み数臨界値５００７が設定される。最後のＡＰ２１１の終了時に、終了時のタスク識別子５００４が設定され、開始終了５００５に「Ｅ」が設定される。
【００５６】
（ＶＭ内スケジュールのフローチャート）
図７は本発明の実施形態のＶＭ内スケジュール２１２のフローチャートである。ホストＯＳ４００及びプロセッサ１０２は、ＶＭスケジューラ制御プログラム３００及びＶＭ２００を計算機１００のメモリ１０１内に展開すると、ＶＭ２００の処理を開始する。ＶＭ２００が処理を始めるとゲストＯＳ２１３の処理を始め、ＶＭ内スケジュール２１２の処理を始める。
【００５７】
ＶＭ内スケジュール２１２は、記憶装置１０３からＶＭ内スケジュール管理テーブル３０１をメモリ１０１内に読み込む（Ｓ１００１）。ＶＭ内スケジュール２１２はＶＭ内スケジュール管理テーブル３０１の優先度レベル識別子３１０３の情報に格納している「Ｌｎ」レベルグループを除く全優先度レベルグループに対して開始用ＡＰ２１１と終了用ＡＰ２１１を登録する（Ｓ１００２）。
【００５８】
ＶＭ内スケジュール管理テーブル３０１の優先度３１０６の情報から最高優先度のＡＰ２１１を、タスク識別子３１０５から選択する（Ｓ１００３）。優先度３１０６の情報の数字が大きいほど優先度は高い。優先度が同じであるタスク識別子３１０５が複数ある場合（Ｓ１００４のＹ）、ＶＭ内スケジュール管理テーブル３０１のランタイム３１０７の情報からランタイムが最小のタスク識別子３１０５を選択する（Ｓ１０１１）。
【００５９】
前記タスク識別子３１０５の属する優先度レベル識別子３１０３が「Ｌｎ」かどうかを判断する（Ｓ１０１２）。優先度レベルが「Ｌｎ」の場合、ＶＭ内スケジュール２１２は、前記タスク識別子３１０５のＡＰ２１１を、ゲストＯＳ２１３が起動するアプリケーションとして登録する（Ｓ１０２１）。
【００６０】
優先度レベルが「Ｌｎ」ではない場合、通知フォーマット５００に、ＶＭ識別子５００１と周期５００２と優先度レベル５００３とタスク識別子５００４をＶＭ内スケジュール管理テーブル３０１から取得して該当情報を格納する。開始終了５００５には「Ｓ」を格納する（Ｓ１０３２）。通知ＩＦ２１４を介して通知フォーマット５００をＶＭスケジューラ制御プログラム３００にＡＰ２１１の開始を送信する（Ｓ１０３３）。ＶＭ内スケジュール２１２は、前記タスク識別子３１０５のＡＰ２１１を、ゲストＯＳ２１３が処理するアプリケーションとして登録する（Ｓ１０３４）。終了処理を行う（Ｓ１０３５）（図８参照）。その後、ＶＭ内スケジュール２１２は、優先度レベル識別子３１０３のグループに属しているＡＰ２１１をすべて起動する。
【００６１】
（終了処理のフローチャート）
図８は本発明の実施形態の図７に示した終了処理（１０３５）のフローチャートである。ＶＭ内スケジュール２１２は、ＶＭ内スケジュール管理テーブル３０１の優先度レベル識別子３１０４が優先度グループ内にあるＡＰ２１１すべてを、ゲストＯＳ２１３が起動するアプリケーションとしてＶＭ内スケジュール２１２に登録する。
【００６２】
優先度レベル識別子３１０４の優先度グループ内の最初のＡＰ２１１がゲストＯＳ２１３によって処理された際のランタイムを、図２のＶＭ内スケジュール管理テーブル３０１のランタイム３１０７に加算する（Ｓ２００２）。ＡＰ２１１が、優先度レベル識別子３１０４の優先度グループ内の最後ＡＰ２１１かどうかを、ＶＭ内スケジュール管理テーブル３０１のレベルリング開始終了識別子３１０４から判断する（Ｓ２００３）。開始終了識別子３１０４の情報が「Ｅ」であれば、これを通知フォーマット５００に設定して、優先度グループ内ＡＰ２１１のアプリケーションの処理が終了したことを、ＶＭスケジューラ制御プログラム３００に通知し、処理を終了する（Ｓ２０１１、Ｓ２０１２）。
【００６３】
開始終了識別子３１０４の情報が「Ｅ」ではない場合、ＶＭ内スケジュール管理テーブル３０１の順序制御タスク識別子３１０８に、順序制御タスク識別子３１０８から順序に処理するＡＰ２１１が存在するかどうかを判断する（Ｓ２０２１）。順序制御タスク識別子３１０８にＡＰ２１１のタスク識別子３１０５の情報が格納されていれば、該当ＡＰ２１１を、ゲストＯＳ２１３が起動するアプリケーションとしてＶＭ内スケジュール２１２に登録する（Ｓ２０３１）。順序制御タスク識別子３１０８にＡＰ２１１のタスク識別子３１０５の情報が「０」であれば、同グループ内のＡＰ２１１から、ランタイム３１０７が最小のタスク識別子３１０５を選択して、該当ＡＰ２１１を、ゲストＯＳ２１３が起動するアプリケーションとしてＶＭ内スケジュール２１２に登録する（Ｓ２０２２、Ｓ２０２３）。その後、次のタスクについて上記の処理を行う。
【００６４】
（仮想化システムの全体フローチャート）
図９は本発明の実施形態の仮想化システム１の全体フローチャートである。仮想化システム１の全体処理は、ＶＭスケジューラ制御プログラム３００の起動処理及び、ＶＭデッドライン管理プログラム３０６、タイマ−イベント管理プログラム３０７、割り込み管理プログラム３０８より成り立つ。
【００６５】
ホストＯＳ４００及びプロセッサ１０２はＶＭスケジューラ制御プログラム３００及びＶＭ２００を計算機１００のメモリ１０１内に展開すると、ＶＭスケジューラ制御プログラム３００の処理を開始する。ＶＭスケジューラ制御プログラム３００の処理は処理が開始されると、記憶装置１０３からＶＭ内管理テーブル３０１、ＶＭ管理テーブル３０２、タイマ−イベント管理テーブル３０３、及び割り込み管理テーブル３０４をメモリ１０１内に読込み（Ｓ１０１）、ＶＭ２００を起動する（Ｓ１０２）。ＶＭスケジューラ制御プログラム３００はテーブルの読み込みＳ１０２の後、ＶＭデッドライン管理プログラム３０６（図１０参照）、タイマーイベント管理プログラム３０７（図１２参照）、及び割り込み管理プログラム３０８（図１５参照）のそれぞれのプログラムを立ち上げ、通知又は割り込みがあるまで待機する。
【００６６】
（ＶＭデッドライン管理プログラムのフローチャート）
図１０は本発明の実施形態のＶＭデッドライン管理プログラム３０６のフローチャートである。ＶＭ２００のＶＭ内スケジュール２１２から通知があれば（Ｓ３０１のＹ）、通知ＩＦ２１４からの通信フォーマット５００の開始終了情報５００５を読み取る（Ｓ３０２）。
【００６７】
通信フォーマット５００の開始終了情報５００５が終了の「Ｅ」であれば（Ｓ３０３のＹ）、通信フォーマット５００のタスク識別子５００４と一致するＶＭ管理テーブル３０２のタスク識別子３２０５を検索し、検索したタスク識別子３２０５に関するレベルリング開始終了識別子３２０３に「Ｅ」を書き込む（Ｓ３１１）。実行状態３２０６には「０」セットし、前記ＶＭ２００が実行状態ではないことを示す（Ｓ３１２）。デッドライン３２０４に、ホスト４００の時刻とTimestamp３２０９との差をデッドラインとして格納する。ラインタイム３２０７には、デッドライン３２０４を加算する（Ｓ３１３）。前記ＶＭ２００の優先度識別子３２０２のレベルを１つ下げる（Ｓ３１４）。例えば、優先度３２０２のレベルが「Ｌ１」であれば「Ｌ２」を格納する。優先度３２０２のレベルが「Ｌｎ」であれば（Ｓ３１５のＹ）、Timestamp３２０９にホストＯＳ４００の時刻を格納する（Ｓ３１６）。レベルリング開始終了識別子３２０３には、優先度識別子３２０２の変更があることを示す「Ｉ」を格納する（Ｓ３１７）。ホストＯＳ４００がプロセッサ１０２で処理するＶＭ２００を選択する（Ｓ３１８）（図１１参照）。
【００６８】
通信フォーマット５００の開始終了情報５００５が終了の「Ｅ」でない場合（Ｓ３０３のＮ）、通信フォーマット５００のタスク識別子５００４と一致するＶＭ管理テーブル３０２のタスク識別子３２０５を検索する（Ｓ３２１）。検索したタスク識別子３２０５がＶＭ管理テーブル３０２に登録されてないＶＭ２００であれば（Ｓ３２１のＹ）、ＶＭ管理テーブル３０２に検索したタスク識別子３２０５を登録する（Ｓ３３１）。検索したタスク識別子３２０５がＶＭ管理テーブル３０２に登録されているＶＭ２００であれば（Ｓ３２１のＮ）、レベルリング開始終了識別子３２０３に開始の「Ｓ」を格納し（Ｓ３２２）、Timestamp３２０９にはホストＯＳ４００の時刻を格納する（Ｓ３２３）。
【００６９】
ＶＭ２００のＶＭ内スケジュール２１２から通知がない場合（Ｓ３０１のＮ）、ＶＭ内スケジュール管理テーブル３０１のＱｕｏｔａ３２０８の処理を行う（Ｓ３４１）（図１４参照）。処理Ｓ３１８、３３１、３２３、３４１の後、次の通知を待つ。
【００７０】
（実行ＶＭ選択のフローチャート）
図１１は本発明の実施形態の実行ＶＭ選択（図１０のＳ３１８）のフローチャートである。ホストＯＳ４００がプロセッサ１０２で処理するＶＭ２００を選択する。ＶＭ管理テーブル３０２から、優先度３２０２が「Ｌ１」のＶＭ識別子３２０１を検索する（Ｓ４０１）。「Ｌ１」優先度を格納しているＶＭ識別子３２０１がない場合（Ｓ４０１のＹ）、ランタイム３２０７が最小であるＶＭ識別子３２０１と一致するＶＭ内スケジュール管理テーブル３０１内のＶＭ識別子３１０１の周期３１０２を読み込む（Ｓ４０２）。ホストＯＳ４００の時刻とTimestamp３２０９との差が周期３１０２の長さ以上、即ち、周期デッドライン以上であれば（Ｓ４０３のＹ）、ＶＭ識別子３２０１に対応する優先度識別子３２０２に最高優先度「Ｌ１」を格納する（Ｓ４０４）。優先度識別子３２０２から最優先度を持つＶＭ識別子３２０１を検索する（Ｓ４０５）。
【００７１】
「Ｌ１」優先度を格納しているＶＭ識別子３２０１がある場合（Ｓ４０１のＮ）、優先度識別子３２０２から最優先度を持つＶＭ識別子３２０１を検索する（Ｓ４０５）。
【００７２】
優先度識別子３２０２が同じＶＭ識別子３２０１が複数ある場合（Ｓ４０６のＹ）、ＶＭ識別子３２０１の同列のランタイム３２０７が最小のＶＭ識別子３２０１を選択する（Ｓ４１１）。選択したＶＭ識別子３２０１の同列の実行状態３２０６に「Ｒ」を格納し、実行待ちであることを示す（Ｓ４２１）。ホストＯＳ４００がプロセッサ１０２で処理するＶＭ２００として、選択したＶＭ識別子３２０１をホストＯＳ４００に登録する（Ｓ４２２）。
【００７３】
（タイマ−イベント管理プログラムのフローチャート）
図１２は本発明の実施形態のタイマ−イベント管理プログラム（３０７）のフローチャートである。タイマ−イベントの通知を待つ（Ｓ５０１）。ＶＭ２００内のＶＭ内スケジュール２１２からの通知の場合（Ｓ５０２のＹ）、通知フォーマット５００の優先度レベル５００３を読み込み（Ｓ５０３）。優先度レベルが「Ｌ１」であれば（Ｓ５０４）、タイマ−管理テーブル３０３に優先度レベルを設定し、ホストＯＳ４００のタイマ−イベントとして登録する（Ｓ５０５）。
【００７４】
ホストＯＳ４００の仮想化プログラム４０１からの通知でなければ（Ｓ５０２のＮ）、タイマ−イベントを受信し（Ｓ５１１）、外部イベント処理を行う（Ｓ５１２）（図１３参照）。処理５０５、５１２の後、次の通知を待つ。
【００７５】
（外部イベント処理のフローチャート）
図１３は本発明の実施形態の外部イベント処理（図１２のＳ５１２、図１５のＳ８２1）のフローチャートである。外部イベントは、ホストＯＳ４００からＶＭスケジューラ制御プログラム３００に通知される。外部イベントには通知先のＶＭ２００の情報が格納されている。
【００７６】
受信外部イベントからＶＭ管理テーブル３０２のＶＭ識別子３２０１と一致するＶＭ２００を選択する（Ｓ６０１）。ＶＭ識別子３２０１の列の優先度識別子３２０２を読み込む（Ｓ６０２）。優先度識別子３２０２が「Ｌｎ」であれば（Ｓ６０３のＹ）、Ｑｕｏｔａ３２０８にその値「１０」を格納する（Ｓ６０４）。
【００７７】
優先度識別子３２０２が「Ｌｎ」でない場合（Ｓ６０３のＮ）、元優先度識別子３２１０に優先度識別子３２０２を格納し、優先度識別子３２０２に最高優先度「Ｌ１」を格納する（Ｓ６１１）。実行状態３２０６に実行待ちであることを示す「Ｒ」を格納し、ホストＯＳ時刻をTimestamp３２０９に格納する（Ｓ６１２）。通知ＩＦ２１４を介して前記外部イベントをＶＭスケジューラ制御プログラム３００に通知する（Ｓ６１３）。ホストＯＳ４００が、プロセッサ１０２で処理するＶＭ２００として、ホストＯＳ４００にＶＭ識別子３２０１を登録する（Ｓ６１４）。
【００７８】
（Ｑｕｏｔａ管理処理のフローチャート）
図１４は本発明の実施形態のＱｕｏｔａ管理処理（図１０のＳ３４１）のフローチャートである。ＶＭ管理テーブル３０２のＱｕｏｔａ３２０８が「０」以外のＶＭ識別子３２０１を選択する。ＶＭ識別子３２０１に関するＱｕｏｔａ３２０８を読み込む（Ｓ７０１）。ホストＯＳ４００の時刻とTimestamp３２０９の差がＱｕｏｔａ３２０８を超過した場合（Ｓ７０２のＹ）、前記ＶＭ識別子３２０１に関する優先度識別子３２０２に元優先度識別子３２１０、即ち「０」を格納する（Ｓ７１１）。
【００７９】
優先度識別子３２０２が「Ｌｎ」であれば（Ｓ７１２のＹ）、ランタイム３２０７にＱｕｏｔａ３２０８を加算する（Ｓ７１３）。優先度識別子３２０２が「Ｌｎ」でない場合（Ｓ７１２のＮ）、ランタイム３２０７にＱｕｏｔａ３２０８を加算し、Ｑｕｏｔａ３２０８に「０」を格納する（Ｓ７１４）。
【００８０】
ホストＯＳ４００の時刻とTimestamp３２０９の差がＱｕｏｔａ３２０８の未満の場合（Ｓ７０２のＮ）、ランタイム３２０７にホストＯＳ４００の時刻とTimestamp３２０９の差を加算する（Ｓ７２１）。ホストＯＳ４００の時刻をTimestamp３２０９に格納する（Ｓ７２２）。処理Ｓ７１３、７１４、７２２の後、処理Ｓ３４１は終了する。
【００８１】
（割り込み管理プログラムのフローチャート）
図１５は本発明の実施形態の割り込み管理プログラム（３０８）のフローチャートである。ＶＭ内スケジュール管理テーブル３０１を読み込み、割り込み管理テーブル３０４の項目３４０１から３４０４に情報を設定し、デッドライン許容値３４０５にはdefault値の「１０」を格納し、１つ割り込み処理時間３４０６には「０．１」を格納する（Ｓ８０１）。割り込み数臨界値３４０７には、デッドライン許容値３４０５を１つ割り込み処理時間３４０６で割った数に「１０」を引いた数を格納する（Ｓ８０２）。１つ割り込み処理時間３４０６割った数に「１０」を引くことで、１つ割り込み処理時間３４０６の処理時間の誤差によって発生する臨界値誤差に対する余裕値が設定される。
【００８２】
ホストＯＳ４００から割り込みがあるか判断する（Ｓ８０３）。割り込み情報には通常割り込み通知先のＶＭ２００の情報が格納されている。割り込み情報に含まれているＶＭ２００の情報とＶＭ識別子３４０１が一致する、割り込み管理テーブル３０４の行を選択する（Ｓ８１１）。割り込み累積３４０９に「１」を加算する（Ｓ８１２）。割り込み累積３４０９が割り込み数臨界値３４０７未満であるかどうかを判断する（Ｓ８１３）。
【００８３】
割り込み累積３４０９が割り込み数臨界値３４０７内であれば（Ｓ８１３のＹ）、割り込みがタイマ−イベントであるかどうかを判断する（Ｓ８１４）。タイマ−イベントであれば（Ｓ８１４のＹ）、割り込み累積３４０９を「１」減算し（Ｓ８１５）、タイマ−イベント管理プログラム３０７に通知する（Ｓ８１６）。割り込みがタイマ−イベントでない場合（Ｓ８１４のＮ）、外部イベント処理を呼び出す（Ｓ８２１）（図１３参照）。
【００８４】
割り込み累積３４０９が割り込み数臨界値３４０７を超過した場合（Ｓ８１３のＮ）、ホストＯＳ４００の仮想化プログラム４０１の割り込みペンディング処理（図示せず）を呼び出し、割り込み通知を遅延する（Ｓ８３１）。
【符号の説明】
【００８５】
１…仮想化システム、２…端末、３…外部ネットワーク、１００…計算機ノード、１０１…メモリ、１０２…プロセッサ、１０３…記憶装置、１０４…外部通信Ｉ／Ｆ、２００…ＶＭ、２１１…ＡＰ、２１２…ＶＭ内スケジュールプログラム、２１３…ゲストＯＳ、２１４…通知Ｉ／Ｆ、３００…ＶＭスケジューラ制御プログラム、３０１…ＶＭ内スケジュール管理テーブル、３０２…ＶＭ管理テーブル、３０３…タイマ−管理テーブル、３０４…割り込み管理テーブル、３０６…ＶＭデッドライン管理プログラム、３０７…タイマ−イベント管理プログラム、３０８…割り込み管理プログラム、４００…ホストＯＳ、４０１…仮想化プログラム
【図１】
2013145199.tif 000003
【図２】
2013145199.tif 000004
【図３】
2013145199.tif 000005
【図４】
2013145199.tif 000006
【図５】
2013145199.tif 000007
【図６Ａ】
2013145199.tif 000008
【図６Ｂ】
2013145199.tif 000009
【図７】
2013145199.tif 000010
【図８】
2013145199.tif 000011
【図９】
2013145199.tif 000012
【図１０】
2013145199.tif 000013
【図１１】
2013145199.tif 000014
【図１２】
2013145199.tif 000015
【図１３】
2013145199.tif 000016
【図１４】
2013145199.tif 000017
【図１５】
2013145199.tif 000018
【国際調査報告】
2013145199.tif 000019
2013145199.tif 000020