(57)【特許請求の範囲】
【請求項１】
プロセッサとメモリとを有する計算機を複数接続して、上記複数の計算機のうち所定の計算機が有するプロセッサにより一定の周期で繰り返し実行されるプロセスを、上記複数の計算機のうち上記所定の計算機以外の他の計算機に実行させることを制御する計算機リソース動的制御装置において、
上記プロセスの実行が開始されてから終了するまでの処理時間の限界を表すデッドライン時間と、上記プロセスが一定の周期で繰り返し実行される場合に上記デッドライン時間を超える処理時間で当該プロセスが実行されることを許可する許容回数と、上記プロセスが実行される場合に消費するメモリの量を表す消費メモリ量とをあらかじめ記憶するシステム構成情報テーブル・メモリと、
上記プロセスの実行を開始した処理開始時刻と上記プロセスの実行を終了した処理終了時刻とを処理時間履歴情報として１つ以上記憶する処理時間履歴テーブル・メモリと、
上記所定の計算機がプロセスの実行を終了した際に出力する上記処理開始時刻と上記処理終了時刻とを、上記所定の計算機から入力し、入力した処理開始時刻と処理終了時刻とを上記処理時間履歴テーブル・メモリに処理時間履歴情報として記憶し、
上記処理時間履歴テーブル・メモリに記憶した１つ以上の処理時間履歴情報の各処理時間履歴情報に対応して、当該処理時間履歴情報の処理終了時刻から処理開始時刻を引いた処理時間を求め、
求めた各処理時間履歴情報に対応する処理時間と上記システム構成情報テーブル・メモリに記憶されたデッドライン時間とを比較してデッドライン時間を超える処理時間の数を求め、
求めた数が上記システム構成情報テーブル・メモリに記憶された許容回数を超え、かつ、上記１つ以上の処理時間履歴情報のうち最新の処理時間履歴情報に対応する処理時間が上記デッドライン時間を超える場合、上記デッドライン時間を超える上記処理時間の数が上記許容回数を超えることを通知する処理時間収集部と、
上記処理時間収集部により上記デッドライン時間を超える上記処理時間の数が上記許容回数を超えることを通知された場合、上記プロセスを上記他の計算機に実行させることを決定する移行プロセス決定部と、
計算機のプロセッサの使用率を表すプロセッサ使用率と計算機が有するメモリの空いている量を表す空きメモリ量とを、上記複数の計算機の各計算機から入力し、入力した各計算機のプロセッサ使用率と空きメモリ量とを出力する計算機負荷量収集部と、
上記移行プロセス決定部により上記プロセスを他の計算機に実行させることが決定された場合、上記計算機負荷量収集部により出力された上記各計算機のプロセッサ使用率と空きメモリ量とのうち他の計算機のプロセッサ使用率と空きメモリ量とを入力し、
入力した他の計算機のプロセッサ使用率の大きい順に当該計算機の空きメモリ量と上記システム構成情報テーブル・メモリに記憶された消費メモリ量とを比較して上記空きメモリ量が消費メモリ量以上である他の計算機を判定し、判定した他の計算機に当該プロセスを実行させることを制御する資源割当部と
を備えたことを特徴とする計算機リソース動的制御装置。
【請求項２】
上記システム構成情報テーブル・メモリは、上記各計算機に対応して、当該計算機が有するメモリの容量を表すメモリ量をあらかじめ記憶し、
上記計算機負荷量収集部は、上記プロセッサ使用率とともに計算機が有するメモリの使用量を表すメモリ使用量を、上記複数の計算機の各計算機から入力し、入力した各計算機のプロセッサ使用率とメモリ使用量とを出力し、
上記計算機リソース動的制御装置は、
上記計算機負荷量収集部により出力されたプロセッサ使用率とメモリ使用量とを計算機負荷履歴情報とし、各計算機に対応して１つ以上の計算機負荷履歴情報を記憶する計算機負荷履歴テーブル・メモリと、
上記処理時間履歴テーブル・メモリに記憶された１つ以上の処理時間履歴情報の各処理時間履歴情報に対応して上記処理時間を求め、求めた１つ以上の処理時間の変動に基づいて上記デッドライン時間を超える上記処理時間が将来発生するか否かを判定し、上記デッドライン時間を超える上記処理時間が将来発生することを判定した場合、上記デッドライン時間を超える上記処理時間が発生する発生時刻を上記１つ以上の処理時間の変動に基づいて予測して出力するデッドラインミス発生時刻予測部と、
上記計算機負荷履歴テーブル・メモリに記憶された各計算機に対応する１つ以上の計算機負荷履歴情報のプロセッサ使用率の変動に基づいて、上記デッドラインミス発生時刻予測部により予測された発生時刻に対応する各計算機のプロセッサ使用率を求めて出力する計算機負荷予測部と、
上記計算機負荷履歴テーブル・メモリに記憶された各計算機に対応する１つ以上の計算機負荷履歴情報のメモリ使用量の変動に基づいて上記デッドラインミス発生時刻予測部により予測された発生時刻に対応する各計算機のメモリ使用量を求めて出力するメモリ使用量予測部と
を備え、
上記移行プロセス決定部は、上記デッドラインミス発生時刻予測部により発生時刻が出力された場合、上記プロセスを他の計算機に実行させることを決定し、
上記資源割当部は、
上記デッドラインミス発生時刻予測部により発生時刻が出力された場合に、上記移行プロセス決定部により上記プロセスを他の計算機に実行させることが決定された場合、上記計算機負荷予測部により出力された上記発生時刻に対応する複数の計算機のプロセッサ使用率のうち他の計算機のプロセッサ使用率を入力し、
入力した他の計算機のプロセッサ使用率の大きい順に、
（１）上記システム構成情報テーブル・メモリに記憶された各計算機に対応するメモリ量から当該他の計算機のメモリ量を取得し、
（２）上記メモリ使用量予測部により出力された上記発生時刻に対応する複数の計算機のメモリ使用量のうち当該他の計算機のメモリ使用量を入力し、
（３）取得したメモリ量から入力したメモリ使用量を引いた空きメモリ量を求め、求めた空きメモリ量と上記システム構成情報テーブル・メモリに記憶された消費メモリ量とを比較して上記空きメモリ量が消費メモリ量以上であるか否かを判定することを行い、
上記空きメモリ量が消費メモリ量以上であることを判定した場合、上記空きメモリ量が消費メモリ量以上である他の計算機に当該プロセスを実行させることを制御する
ことを特徴とする請求項１記載の計算機リソース動的制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の計算機がネットワークを形成して、連携して複数のプロセスを並行処理する分散システムにおける、処理が間に合わない事によるデッドラインミスの多発を防止する装置、システムに関するものである。
【背景技術】
【０００２】
従来の計算機リソース動的制御方式は、従来例１として例えば特許文献１によれば、繰り返し周期ごとに処理時間と処理データのデータの内容、データの大きさと前回の処理時間をもとにしてプロセスの次の処理時間を予測する手段と、処理予測時間の大きさの範囲ごとに定められたタスクの実行順序案を保持し、予測によって求めた次の処理時間のデータに基づいて、あらかじめ定められた実行順序案に基づいて次の周期の処理順序を決定することにより、処理のデッドラインミス発生を防止することを特徴としている。
【０００３】
また従来例２として他の特許文献２によれば、処理すべきプロセス量を単位化して、例えばあるプロセスは８単位、他のプロセスは５単位等とし、この細分化されたプロセスの単位を基準にして、各プロセッサに処理する単位を割当てる方法が示されている。従ってプロセスが持つ単位量を管理するプロセス管理手段と、実行するプロセッサを管理するプロセッサ管理手段と、割当リソース量決定手段とを持っている。
【特許文献１】特開平４−１７１５３８号公報
【特許文献２】特開平６−２８３２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の従来例１では、プロセスのマイグレーション（他の計算機への移行）を行うことができず、例え他の計算機に空きリソースがあったとしても処理内容の変更や縮退を行うしかなく、システム内の他の計算機リソースを効率よく利用できない、またはオーバーロードするプロセスの処理を任された計算機（プロセッサ）によるデッドラインミスが継続する、という課題がある。
また、上記の従来例１では、主としてデータの大きさ、値をもとにして次の処理時間を予測しているが、データの大きさによって処理時間が決定する訳ではない。更に各プロセス様々なデータを受信するが、データの内容はプロセスが受け取る直前まで不明である場合が多くて、事前の予測はできない。このような理由から、従来例１の手法で次の周期処理時間を予測することは不可能である。
また従来例２では、やはりプロセスの量を大きさで区切って単位化して管理するだけであり、プロセスの内容や質により計算機を割当てたり、計算機の環境により処理量を変えたりはしないので、やはりデッドラインミスが発生し続けることを防げない、という課題がある。
【０００５】
この発明は上記のような課題を解決するためになされたもので、システムを構成する各プロセスのデッドラインミスが発生した場合に、十分な空きメモリ量、ＣＰＵ時間を持つ計算機にプロセスマイグレーションを行うことによってプロセスのデッドラインミスの継続発生を防止することを目的とする。
また、過去のプロセスの処理時間からプロセスの将来の処理時間を予測し、将来デッドラインミスが発生すると予測された場合には、プロセスマイグレーションを行うことによってプロセスのデッドラインミスの発生を未然に防ぐことを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る計算機リソース動的制御装置は、対象となるプロセスを処理する計算機を複数台接続して、複数の上記プロセスを連携処理するシステム、に接続して、
各上記計算機のリソースの使用状態を監視して計算機のこのリソースの使用状態情報を収集し、このリソースの不足を検出する計算機負荷量収集部と、
上記プロセスの処理時間を監視してプロセスの処理時間を収集し、プロセスの処理限界時間を規定したデッドライン時間を超す処理となるデッドラインミスの発生を検出する処理時間収集部と、
システムで処理される上記プロセスの処理時間とこのプロセスの処理で使用する計算機のリソースの使用量とデッドライン時間とをプロセスの識別子と共に記憶し、システムに接続される上記計算機の所有リソース量を計算機の識別子と共に記憶するシステム構成情報テーブル・メモリと、
上記デッドラインミスの発生を検出した通知により上記システム構成情報テーブル・メモリを参照して上記プロセスまたは関連するプロセスの処理を現行の計算機とは異なる計算機に再割当を勧告する移行プロセス決定部と、
上記再割当を勧告する通知を受けて上記システム構成情報テーブル・メモリの上記プロセスの処理時間と上記計算機の所有リソース量とを参照して上記プロセスの処理時間が上記デッドライン時間内となるよう上記再割当を勧告されたプロセスと候補計算機とを抽出し、この抽出したプロセスをこの抽出した候補計算機に割当て実行させると同時に上記システム構成情報テーブル・メモリを更新する資源割当部と、を備えた。
【発明の効果】
【０００７】
この発明によれば、プロセスのデッドラインミスを検出し、またプロセスが要求する計算機リソース量と各計算機が持つリソース量を管理して、規定回数以上デッドラインミスが発生したプロセスを、負荷の軽い他の計算機、または計算機リソースに余裕のある他の計算機に割り付けることで、デッドラインミスの継続を防ぐ効果がある。
また、デッドラインミスの原因が計算機故障の場合には、故障した計算機上で動作していた全てのプロセスを他の計算機に再割付して、処理の継続が可能となり、可用性の高いシステムが得られる効果がある。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、本実施の形態における計算機リソース動的制御システムの構成を示した図である。即ち、本実施の形態のリソース動的制御システムは、複数の計算機１００がネットワーク１０２によって接続された分散計算機システム環境において、各計算機がシステムに必要な構成要素を分担して持ち、全体として処理が間に合わない事によるデッドラインミスの多発を防止する。図において各計算機１００は、それぞれプロセス１０１の処理を分担して、または独立に行っており、資源割当に応じて新たなプロセスを処理する。
最初に計算機のハードウェア構成を説明するが、図２は、計算機１００が計算機リソース動的制御装置１００ａとなる場合の構成を示す図である。これらの図において、計算機１００または計算機リソース動的制御装置１００ａは、プロセッサ（ＣＰＵ）１１、プログラムやプロセス１０１を記憶するメモリ１２、処理時間監視部１、処理時間収集部２、移行プロセス決定部３、計算機負荷監視部４、計算機負荷量収集部５、資源割当部６、システム構成情報管理テーブル・メモリ７、処理時間履歴テーブル・メモリ８、計算機負荷履歴テーブル・メモリ９、計算機状態テーブル・メモリ１０、入力装置１３、出力装置１４、通信インタフェース１５及び各計算機上で動作するプロセス１０１で構成される。
図１の構成では全体の構成例を示すために、各計算機の詳細接続は示されていないが、各計算機１００は図２の詳細構成と同じ構成をしている。例えば右端の計算機は、処理時間監視部１と計算機負荷監視部４と資源割当部６と図示しないメモリ１２に書込まれたプロセス１０１とのみが枠で表示されているが、図２に示すプロセッサ１１やメモリ１２と内部バス１６で接続されている。また資源割当部６等の構成要素は、以下の機能説明で述べるような機能を持つプログラムをメモリに展開して、このプログラムをプロセッサ１１が読み出して実行することでその機能を得ている。
このプロセス１０１は、入力装置１３の一種であるＣＤリーダや他の記録媒体読取り装置で読取られて、または他の計算機から通信回線等を経由して通信インタフェース１５で取込まれて、図２に示されるように、実際にはメモリ１２に展開して記憶されている。本実施の形態において処理されるプロセス１０１は、例えばレーダのアプリケーションのように、データのサイズではなくデータの内容によって処理負荷が大きく変動するようなアプリケーションであってもよい。
【０００９】
以下、本実施の形態における計算機リソース動的制御装置１００ａまたは計算機リソース動的制御システムにおける各構成要素についてその機能を説明する。
図３は、本実施の形態におけるプロセスのデータ処理時間を監視する処理時間監視部１の機能を説明する図である。即ち、分散処理を行う各プロセッサ１１が割当てられたプロセス１０１の処理を実行するに当たり、データを受け取ってから処理を開始した時刻（以下、「処理開始時刻」とする）、処理を完了した時刻（以下「処理終了時刻」とする）を処理時間監視部１に報告するステップを設けると共に、処理開始時刻から処理終了時刻までの間で、実際に演算のためにＣＰＵ（プロセッサ）を使用した時間（以下「ＣＰＵ時間」とする）を報告するステップを設ける。なお動作に関係するステップは、後の動作記述で説明する。更に処理時間監視部１は、必要に応じて処理時間収集部２に上記の処理開始時刻、処理終了時刻、ＣＰＵ時間を通知する役割を持つ。
処理時間監視部１は、それぞれの計算機１００に各１つ設けてもよいし、プロセス１０１毎に各１つ設けてももよいし、システム全体で１つ設けてもよい。図１では、構成の一例として計算機１００に各１つ設けた場合の構成を示している。
【００１０】
図４、図５、図６は、本実施の形態における処理時間収集部２の主な機能を説明する図である。処理時間収集部２は図４（ａ）に示すように、処理時間監視部１から処理開始時刻、処理終了時刻、ＣＰＵ時間を受け取るとともに、これらのデータをプロセスごとに分けて、処理時間履歴テーブル・メモリ８に過去一定回数分だけ保持する。図４（ｂ）は、処理時間履歴テーブル・メモリ８に保持されたデータの例を示す図である。
また図５（ａ）に示すように、保持している履歴の中で何回デッドラインミスが起きているかを調査して、許容可能な回数以上デッドラインミスが発生していた場合には、移行プロセス決定部３に、デッドラインミスが規定回数発生している旨を通知する機能を持つ。
更に図６に示すように、移行プロセス決定部３から、あるプロセスの処理開始時刻、終了時刻、ＣＰＵ時間の履歴を送信するようリクエストがあった場合に、該当するプロセスのデータを持つ処理時間履歴テーブル・メモリ８に保持されたデータを送信する機能を持つ。なお、処理時間収集部２が機能を実行するために必要な、処理時間履歴テーブル・メモリ８に保持する過去のデータの個数、プロセスの処理限界時間を規定したデッドライン時間、このデッドライン時間を超えた処理となるデッドラインミスの許容回数はシステム構成情報管理テーブル・メモリ７に記載される。
処理時間収集部２は、プロセス毎に１つ設けてもよいし、計算機毎に１つ設けてもよいし、システム全体で１つ設けるようにしてもよい。
【００１１】
図７は、本実施の形態における移行プロセス決定部３の機能を説明する図である。移行プロセス決定部３は、処理時間収集部２よりデッドラインミスが規定回数以上発生した旨を告げる通知を受け取ると、処理時間収集部２、計算機負荷量収集部５などに問い合わせ、他プロセスの処理時間の変動や、計算機の状態（正常または異常）、ＣＰＵ、メモリ等のハードウェアの利用率などについて調査を行うことにより、デッドラインミスを解消するためにハードウェア・リソースの再割り当てを行うべきプロセスを検出する機能を持つ。
この移行プロセス決定部３は、システムに１つ在ればよい。
【００１２】
図８は、本実施の形態における計算機負荷監視部４の機能を説明する図である。計算機負荷監視部４は、各計算機１００上に１つ設けて、各計算機１００のメモリ使用状況やＣＰＵ使用率を定期的に取得し、計算機負荷量収集部５に通知する機能を持つと共に、これらの情報を定期的に通知することにより計算機１００が正常に動作していることを計算機負荷量収集部５に伝える機能も持つ。
【００１３】
図９、図１０、図１１、図１２は、本実施の形態における計算機負荷量収集部５の主な機能を説明する図である。計算機負荷量収集部５は図９に示すように、計算機負荷監視部４からの通知を受け取り、メモリの空き状況とＣＰＵ１１の利用状況と上記情報の受信時刻を計算機毎に分類して計算機負荷履歴テーブル・メモリ９に保持する。
また、移行プロセス決定部３や資源割当部６から、ＣＰＵ１１の利用率、空きメモリ量、計算機の正常・異常に関する情報を送信するようリクエストがあった場合に、図１０に示すように、計算機負荷履歴テーブル・メモリ９に保持されたデータから対応するデータを取出して送信する機能も持つ。
更に、計算機負荷監視部４からデータが届かなくなった場合には、計算機状態テーブル・メモリ１０にある、対応するデータが届かなくなった計算機のエントリを図１１（ｂ）のように「異常」を示すように書き換え、同時に移行プロセス決定部３に故障が発生したことを通知する機能も持つ。
更に、計算機負荷履歴テーブル・メモリ９にあるデータを参照し、空きメモリ量や空きＣＰＵリソースが少なくなった計算機があった場合にも、移行プロセス決定部３に通知する機能も持つ。また図１２に示すように、移行プロセス決定部３や資源割当部６から正常な計算機１００の一覧リストの取得要求があった場合には、計算機状態テーブル・メモリ１０を参照して、正常動作する計算機１００の識別子の一覧を返す機能も持つ。
【００１４】
図１３は、本実施の形態における資源割当部６の機能を説明する図である。資源割当部６は、移行プロセス決定部３が移行する必要があるとして選定したプロセスを、新しく他の計算機１００に割り当てる機能を持つ。資源割当部６がそのプロセスに対して異なる計算機を割り当てる際には、計算機負荷量収集部５に各計算機１００のＣＰＵ１１の負荷やメモリ１２の利用状況について問い合わせたり、システム構成情報管理テーブル・メモリ７からプロセス１０１が必要とするＣＰＵ時間やメモリ量に関する情報を取得したりすることにより、メモリ不足やデッドラインミスを発生させる可能性が少ない計算機１００上でそのプロセス１０１を起動する。更に、プロセス１０１の起動後は元の計算機で動作していたプロセスを停止させる。
【００１５】
図１４は、本実施の形態におけるシステム構成情報管理テーブル・メモリ７のデータ構成の例を示す図である。システム構成情報管理テーブル・メモリ７は、ソフトウェアに関する情報として、プロセス１０１の名称である「プロセス名」、直近のデッドラインミスの発生回数をカウントするために保持する処理開始時刻・処理終了時刻・ＣＰＵ時間の履歴の個数を示す「処理時間履歴テーブルに格納する履歴数」、各プロセスが処理した際の「平均ＣＰＵ時間」、「デッドライン時間」、「履歴中のデッドラインミス許容回数」「動作中の計算機」「プロセス識別子」、「消費メモリ」等の計算機リソースの使用量をプロセス１０１毎に保持する。ハードウェア情報として、システムに存在する計算機１００を識別する「ホスト名」、その計算機の「搭載メモリ量」等の所有リソース量、「計算機負荷履歴テーブルに保持する履歴数」を計算機ごとに記載する。
【００１６】
図１５は、本実施の形態における処理時間履歴テーブル・メモリ８のデータ構成の例を示す図である。本テーブルはプロセス毎に存在し、テーブルには、１つのエントリごとに「処理開始時刻」「処理終了時刻」「ＣＰＵ時間」を格納する。本テーブルは、処理時間監視部１が処理時間収集部２に「処理開始時刻」「処理終了時刻」「ＣＰＵ時間」を送信すると、処理時間収集部２によってそのデータが書き込まれる。エントリの数は、システム構成情報管理テーブルによって決定されており、全エントリにデータが書き込まれると、古いデータから順に削除される。また、規定回数以上デッドラインミスが発生すると、リソース割当完了後、リソース割当を行ったプロセスのデータを管理するテーブル中に在る対応する全てのデータが削除される。
【００１７】
図１６は、本実施の形態における計算機負荷履歴テーブル・メモリ９のデータ構成の例を示す図である。本テーブルは計算機ごとに存在し、テーブルには、１つのエントリ毎に「データ取得時刻」「ＣＰＵ使用率」「空きメモリ量」のデータを格納する。本テーブルは、計算機負荷監視部４が計算機負荷量収集部５に「データ取得時刻」「ＣＰＵ使用率」「空きメモリ量」のデータを送ると、計算機負荷量収集部５によって書き込まれる。テーブルのエントリの数はシステム構成情報管理テーブルによって決定されており、全エントリにデータが書き込まれると、古いデータから順に削除される。
図１７は、本実施の形態における計算機状態テーブル・メモリ１０のデータ構成の例を示す図である。本テーブルには、計算機ごとに「正常／異常」を格納するエントリがあり、計算機負荷量収集部５が、ある一定時間内に計算機負荷監視部４から「データ取得時刻」「ＣＰＵ使用率」「空きメモリ量」のデータを受信しなければ、計算機に異常が発生したと判断し、該当する計算機のエントリが「異常」と示される。
図２で示したように、計算機リソース動的制御装置１００ａが必要な全ての構成要素を持つようにしてもよいが、図１に例を示すように、幾つかの計算機が必要な処理時間収集・予測部２等の構成要素を分散して持ち、それらの計算機群が全体として計算機リソース動的制御システムを構成してもよい。
【００１８】
次に、本実施の形態における計算機リソース動的制御装置または計算機リソース動的制御システムの各構成要素の動作について説明する。
図１８は、処理時間監視部１の動作フローの一例を示す図である。図３の機能説明図も参照しながら動作を説明する。ステップＳ１（以下、ステップの記述を省略する）にて、処理時間監視部１は、プロセッサ１１が各プロセス１０１の処理を開始すると、プロセスの処理開始時刻を取得する。そしてＳ２において、プロセッサ１１がその処理を終了した時に、処理終了時刻とＳ１からＳ２までの処理時間中におけるＣＰＵ時間を取得する。Ｓ３において、処理開始時刻、処理終了時刻、ＣＰＵ時間を処理時間収集部２に通知する。これが処理時間監視部１の図３の機能による具体的な動作である。
処理時間監視部１はＳ１〜Ｓ３の処理を、プロセッサ１１がプロセス１０１の処理動作を実行する限り繰り返す。なお、各プロセスの処理におけるＣＰＵ時間の取得は、例えばオペレーティング・システムがＵＮＩＸ（登録商標）であれば、ｔｉｍｅｓ（）システムコールや、ｇｅｔｒｕｓａｇｅ（）システムコール、ｐｓコマンドなどにより得られる。
【００１９】
図１９は、処理時間収集部２の動作フローの一例を示す図である。図４ないし図６の機能説明図も参照しながら動作を説明する。Ｓ１１において、処理時間監視部１からあるプロセスを処理した処理開始時刻、終了時刻、ＣＰＵ時間のデータを受け取ると、Ｓ１２において、そのプロセス処理のデータを書き込む処理時間履歴テーブル・メモリ８のあるエントリにこれらのデータを書き込む。Ｓ１３において、全プロセスの処理について、Ｓ１２にて書き込んだ処理開始時刻、処理終了時刻より、デッドラインミスが発生しているかどうかを調べる。デッドラインミスが発生しているかどうかは、処理終了時刻から処理開始時刻を引くことにより処理に要した時間を求め、この時間とシステム構成情報管理テーブル・メモリ７に示されている、プロセスのデッドライン時間を比較することにより得ることができる。デッドラインミスが発生していたら、Ｓ１４において、処理時間履歴テーブル・メモリ８に保持されているデータを全て参照し、規定回数以上デッドラインミスが発生しているかどうかを調べる。許容可能なデッドラインミスの規定回数はシステム構成情報管理テーブル・メモリ７が保持している。規定回数以上のデッドラインミスが発生していた場合には、Ｓ１５において、移行プロセス決定部３に通知すると共に、処理時間履歴テーブル・メモリ８に書き込まれている全データを削除する。なおＳ１３にてデッドラインミスが発生していなければ、Ｓ１６に進み、処理時間履歴テーブル・メモリ８の、次にデータを書き込むエントリを１つ先に進める。処理時間履歴テーブル・メモリ８の空きエントリがなくなった場合には、それ以降、Ｓ１２では最も古いデータを順に上書きしていく。
【００２０】
図２０は、本実施の形態における計算機負荷監視部４の動作フローの一例を示す図である。図８の機能説明図も参照しながら動作を説明する。Ｓ１００１において計算機負荷監視部４は、プロセッサ１１による処理開始時刻を取得する。そしてＳ１００２で、計算機負荷とメモリ使用量を取得する。そしてＳ１００３で、取得した現在時刻と、ＣＰＵ使用率、メモリ使用量を計算機負荷量収集部５に通知する。ＣＰＵ使用率の取得方法は、例えばオペレーティング・システムがＵＮＩＸ（登録商標）であれば、ｍｐｓｔａｔコマンドやｔｏｐコマンド、メモリ使用量の取得方法は、ｖｍｓｔａｔコマンドにより得られる。
【００２１】
図２１は、本実施の形態における計算機負荷量収集部５の動作フローの一例を示す図である。図９ないし図１２の機能説明図も参照しながら動作を説明する。Ｓ１０１１で一定時間待ち、Ｓ１０１２で計算機負荷監視部４からデータが届いたらそれを受け取る。そしてＳ１０１３で、計算機状態テーブル・メモリ１０中の、データを送信した計算機の欄を「正常」にする。そしてＳ１０１４で、計算機負荷履歴テーブル・メモリ９の該当するエントリにデータを書き込む。計算機負荷履歴テーブルは、図９（ｂ）に示すように計算機毎にエントリが分かれているので、通知を送信した計算機のエントリに書き込むことになる。Ｓ１０１５で、書き込んだデータがリソース不足を示しているかどうかを調べる。リソース不足とは、例えばＣＰＵ使用率が１００％になったか、使用メモリ量が搭載メモリ量を超えた場合などが考えられる。また、ＣＰＵ使用率、使用メモリ量の上限をユーザによって設定しておき、それを超えたらリソース不足としてもよい。リソース不足が発生していたら、Ｓ１０１６にて、移行プロセス決定部３にリソース不足が発生した旨と、その計算機名を通知する。Ｓ１０１７にて、次にデータを書き込むために、計算機負荷履歴テーブル・メモリ９のエントリを１つ先に進める。計算機負荷履歴テーブル・メモリ９の空きエントリがなくなった場合には、それ以降、最も古いデータから順に上書きしていく。
なお、Ｓ１０１１にて一定時間待っても、計算機負荷監視部４からデータが届かなかった場合には、Ｓ１０１８にて計算機状態テーブル・メモリ１０の、データを送信してこなかった計算機負荷監視部４が監視する計算機の欄を「異常」に変更し、Ｓ１０１９にて移行プロセス決定部３に通知する。Ｓ１０１１〜Ｓ１０１９の手順は１つの計算機１００に対しての計算機負荷量収集の処理を示したものであり、これを全ての計算機１００に対して行う。
【００２２】
図２２は、デッドラインミスが発生したことが処理時間収集部２より通知された場合における移行プロセス決定部３の動作フローの一例を示した図である。図において、Ｓ１０１で図５に示すように、処理時間収集部２よりデッドラインミスが規定回数以上発生した旨を伝える通知が届く。通知とともに、例えばデッドラインミスが発生したプロセス名も届く。Ｓ１０１でデッドラインミスが発生したプロセスの名前が届くと、Ｓ１０２で、システム構成情報管理テーブル・メモリ７よりデッドラインミスが発生したプロセスを処理している計算機を識別する。そしてＳ１０３で、その計算機上で動作している他のプロセスを識別してその名を取得する。Ｓ１０４で、計算機負荷量収集部５に対し、その計算機が正常に動作しているかどうかを問い合わせる。そしてＳ１０５にて、Ｓ１０３で識別した計算機が正常動作していなければ、計算機が停止したことがデッドラインミス発生の原因であることがわかる。その場合は、Ｓ１０３で検出した全てのプロセス１０１を他の計算機に移行させるために、Ｓ１０６にてこれらのプロセス名をリソース再割付の対象として資源割当部６に通知する。
【００２３】
なおＳ１０５で計算機が正常に動作していた場合には、Ｓ１０７において、Ｓ１０３で見つけたプロセスのうち、ＣＰＵ時間が増えているプロセスを調査する。ＣＰＵ時間が増えているかどうかは、システム構成情報管理テーブルが各プロセスの平均ＣＰＵ時間を保持しているので、システム構成情報管理テーブルを見て平均ＣＰＵ時間を取得し、現在のＣＰＵ時間と比較することで判る。そして、デッドラインミスが発生したプロセスと、Ｓ１０７で見つけ出したプロセスをリソース再割当の候補として、これらのうちのどれかに対してリソース割当を行うように資源割当部６に通知する。
【００２４】
図２３は、計算機負荷収集手段より通知が届いた場合に移行プロセス決定部３が行う動作フローの一例を示す図である。図７の機能説明図も参照しながら動作を説明する。計算機負荷量収集部５より負荷量が多いと通知が届くのは、計算機故障かメモリ容量が不足の場合があると考えられる。Ｓ１１１にて計算機負荷量収集部５よりこうした通知が届くと、Ｓ１１２にて、システム構成情報管理テーブル・メモリ７を参照することにより、異常が発生した計算機１００上で処理されているプロセス１０１を識別する。そしてＳ１１３にて、計算機負荷量収集部５よりの通知の内容が計算機故障かメモリ不足かを調べる。通知の内容が計算機故障であった場合にはＳ１１４にて、Ｓ１１２で調べた全プロセスをリソース再割当ての対象として、資源割当部６に通知する。また、通知の内容がメモリ不足であった場合にはＳ１１２で、識別して判明した全プロセス１０１をリソース再割当ての候補として、これらのプロセスのいずれかを他の計算機１００に移行させるよう、資源割当部６に通知する。
【００２５】
図２４は、資源割当部６の動作フローの一例を示した図である。図１３の機能説明図も参照しながら動作を説明する。Ｓ１２１で、移行プロセス決定部３から、リソース再割当の候補またはリソース再割当の対象となるプロセスのリストが届く。リソース再割当の候補のリストが届く場合は、デッドラインミスが発生してメモリ不足が原因である場合であり、この場合には届いたリストに示すプロセスのいずれか少なくとも１つについて対処を行えばよい。リソース再割当の対象リストが届く場合は、計算機故障が発生した場合であり、この場合には届いた全てのプロセスに対してリソース再割当てを行う必要がある。
Ｓ１２２で、Ｓ１２１で届いたリストに記載されているプロセス名を例えばＣＰＵ時間の長い順にテーブルに保持する。Ｓ１２４で、Ｓ１２２で作成したプロセスのテーブルから、プロセス名を１つ取り出す。Ｓ１２６で、正常に動作する計算機１００のリストを計算機負荷量収集部５より取得し、例えば負荷の大きい順にテーブルに保持する。そして、Ｓ１２７以下を、Ｓ１２６のテーブルに示されている全計算機について、または、割当先計算機が見つかるまで繰り返す。
Ｓ１２７で、計算機１００のリストが示されたテーブル中、最も負荷の大きい計算機を１つ取り出す。Ｓ１２８で、Ｓ１２４で取り出したプロセス１０１がＳ１２７で選択した計算機１００上で動作できるかどうかを確認する。動作できるかどうか確認する方法としては、例えば、単純に計算機のＣＰＵ使用率のみで判断する方法や、各プロセスの処理周期とＣＰＵ時間をもとに処理のタイミングを実際に求め、デッドラインミスが発生せずにスケジューリングできるかどうかを分析する方法が考えられる。
【００２６】
Ｓ１２９にて資源割当部６が、Ｓ１２４でテーブルより取り出したプロセス１０１がＳ１２７で選んだ計算機１００上で動作可能であると判断した場合には、次にＳ１３０で、Ｓ１２６で取り出した計算機の空きメモリ量を調査し、Ｓ１２４で取り出したプロセスが使用するメモリ量以上空いているかどうかを確認する。十分なメモリが空いていればＳ１３２にて、Ｓ１２７で選択した計算機をＳ１２４で取り出したプロセスの移行先として決定する。そしてＳ１３３にて、Ｓ１３２で決定した計算機によってＳ１２４で取り出したプロセスを起動して処理させ、これまで動作していた計算機によるプロセスの処理を停止させる。
Ｓ１３４にて、システム構成情報管理テーブル・メモリ７の、Ｓ１２４にてテーブルより取り出したプロセスと、プロセスの割当先となった計算機（つまりＳ１２７で取り出した計算機）とＳ１２４にてテーブルより取り出したプロセスの現在のＣＰＵ時間に関する情報を書き換えて、Ｓ１２３に戻り、Ｓ１２２にて作成したテーブルの次のエントリに示されるプロセスの処理を行う。
なお、移行プロセス決定部３から「リソース再割当の候補プロセス群」としてプロセスのリストが与えられた場合には、通知されたすべてのプロセス１０１に対してリソース再割当を行う必要はなく、１つ以上のプロセスの再割当が決定すれば、Ｓ１２２にて作成したテーブルに示される他のプロセスの割当処理を行わずに終了してもよい。
【００２７】
Ｓ１２９において、Ｓ１２７で選択した計算機１００がプロセス１０１を処理するとデッドラインミスを発生させると判断した場合には、Ｓ１２６に戻り、次に負荷の大きい計算機を選択してＳ１２７以降を行う。
またＳ１３１で、Ｓ１２７で選択した計算機がＳ１２４で選択したプロセスを処理するために必要な空きメモリ量を持たない場合には、Ｓ１２６に戻り、テーブルの次のエントリにある計算機について、Ｓ１２７以降を実行する。Ｓ１２６において、全ての計算機についてＳ１２７を実行し、かつ割当先が見つからなかった場合には、そのプロセスのリソース割当を断念してＳ１３５に進み、Ｓ１２４で選んだプロセスを停止し、Ｓ１３６で、Ｓ１２２にて作成したテーブルから停止させたプロセス名を削除する。
なお、ここで示した再割当の方法はあくまで一例であり、Ｓ１２４〜Ｓ１３６の動作を応用した例は多数考えられるが、その他の例はここでは割愛する。
【００２８】
図２５は、これまでに説明した各構成要素による図１８から図２４で示される動作をもとに、計算機リソース動的制御装置１００ａが、または構成要素を分散した計算機リソース動的制御システムが連携して、動作する、デッドラインミスの継続を防ぐ総合動作フローを示した図である。
処理時間収集部２または計算機負荷量収集部５がＳ１４１にて、デッドラインミスの発生、または計算機の異常、ＣＰＵ、メモリ・リソース不足を検出して、移行プロセス決定部３に通知する。この場合の処理時間収集部２の動作はＳ１１〜Ｓ１６、計算機負荷量収集部５の動作はＳ１０１１〜Ｓ１０１８に示すとおりである。その後に移行プロセス決定部３はＳ１４２で、上記の通知の内容を調査する。通知の内容が計算機の故障である場合は、Ｓ１４４にて、故障した計算機上で動作していた全てのプロセスを対象として、資源割当部６がＳ１２１〜Ｓ１３６の手順によりリソースの割当を行う。計算機の故障でない場合は、Ｓ１４５にて、移行プロセス決定部３が、デッドラインミス発生の原因となったプロセス、リソース不足発生の原因となったプロセス、リソース再割当を行うプロセスを見つけ出す。そしてそれらのプロセスに対してＳ１４６にて、資源割当部６がＳ１２１〜Ｓ１３６の手順でリソース割当を行う。リソース割当終了後、Ｓ１４７にて資源割当部６は、システム構成情報管理テーブル・メモリ７の、新規にリソース割当を行ったプロセスの識別子と、そのプロセスを処理する割当先計算機、処理に要するＣＰＵ時間などに関する情報を新しいものに書き換える。
【００２９】
即ち本実施の形態は、複数台の計算機がネットワークに接続され、各計算機上で複数のプロセスが連携または独立して動作し、各プロセスは一定の時間周期で処理を行い、制限時間内に処理を完了することが求められているような分散リアルタイムシステムにおいて、プロセスの処理時間を監視する処理時間監視手段と計算機のリソース使用状況を監視する計算機負荷監視手段とを持ち、各プロセスの処理時間に応じてプロセスに与えるリソースを変更することによってプロセスのデッドラインミスの発生継続を防止するシステムであって、以下の構成を付加することにより十分な空きリソースを持つ他計算機へのプロセスマイグレーションを可能とし、プロセスマイグレーション後における全プロセスのデッドラインミスの再発防止を可能とすることを特徴とする計算機リソース動的制御方式を示している。そして、
１１）システムを構成するプロセス一覧、各プロセスの平均処理時間、消費メモリ量、ＣＰＵ時間、各プロセスの１回あたりの処理における制限時間、システムを構成する計算機一覧、計算機が搭載するメモリ量を保持するシステム構成情報管理テーブル。
１２）システム上で動作する全プロセスの処理時間、ＣＰＵ時間の変動の履歴を保持するとともに、プロセスのデッドラインミスの発生を検出する処理時間収集手段。
１３）システム上で動作する全計算機のリソースの使用状況の履歴を保持し、過去の計算機リソースの使用状況を他の手段に通知するとともに、リソース不足の発生を検出する計算機負荷収集手段。
１４）デッドラインミス、ＣＰＵリソース不足、デッドラインミスなどの障害が発生した場合に、リアルタイム処理を継続するためにリソースの再割り当てを行うプロセスを決定する移行プロセス決定手段。
１５）移行プロセス決定手段が決定したプロセスに対して、システム構成情報管理テーブルより必要なリソース量を取得し、必要な空きリソースを持つ計算機上にプロセスマイグレーションを行う資源割付手段、を備えた。
【００３０】
言い換えると、本実施の形態の計算機リソース動的制御装置は、対象となるプロセスを処理する計算機を複数台接続して、複数の上記プロセスを連携処理するシステム、に接続して、
各上記計算機のリソースの使用状態を監視して計算機のこのリソースの使用状態情報を収集し、このリソースの不足を検出する計算機負荷量収集部と、
上記プロセスの処理時間を監視してプロセスの処理時間を収集し、プロセスの処理限界時間を規定したデッドライン時間を超す処理となるデッドラインミスの発生を検出する処理時間収集部と、
システムで処理される上記プロセスの処理時間とこのプロセスの処理で使用する計算機のリソースの使用量とデッドライン時間とをプロセスの識別子と共に記憶し、システムに接続される上記計算機の所有リソース量を計算機の識別子と共に記憶するシステム構成情報テーブル・メモリと、
上記デッドラインミスの発生の通知により上記システム構成情報テーブル・メモリを参照して上記プロセスの処理を現行の計算機とは異なる計算機に再割当を勧告する移行プロセス決定部と、
上記再割当の勧告通知を受けて上記システム構成情報テーブル・メモリの上記プロセスの処理時間と上記計算機の所有リソース量とを参照して上記プロセスの処理時間が上記デッドライン時間内となるようプロセスと候補計算機とを抽出し、この抽出したプロセスをこの抽出した候補計算機に割当て実行させると同時に上記システム構成情報テーブル・メモリを更新する資源割当部と、を備えた。
このように、プロセスのデッドラインミスを検出し、規定回数以上デッドラインミスが発生したプロセス１０１の処理を他の負荷の軽い計算機１００に割り付けるか、デッドラインミスが発生した原因となるプロセスを計算機リソースに余裕のある他の計算機に割当ることにより、デッドラインミスの継続を防ぐことが可能となる。
また、原因が計算機故障の場合には、故障した計算機上で動作していた全てのプロセスを他の計算機に再割当することにより、処理の継続が可能となる。
【００３１】
実施の形態２．
実施の形態１では、計算機がプロセスを処理する実績に基づいてデッドラインミスが生じたプロセスを負荷の軽い計算機に移す場合を説明したが、本実施の形態では学習により将来の予測をしてデッドラインミスが発生しそうであると、プロセスを他の計算機に移して、更にデッドラインミスの発生確率を減らす装置、システムを説明する。
図２６は、本実施の形態における計算機リソース動的制御システムの構成の例を示す図である。本実施の形態における計算機リソース動的制御システムは、実施の形態１における構成のほか、デッドラインミス発生時刻予測部２１、計算機負荷予測部２２、ＣＰＵ時間予測部２３、メモリ使用量予測部２４を備えている。その他の構成要素の、処理時間監視部１、計算機負荷監視部４、システム構成情報管理テーブル・メモリ７ないし計算機状態テーブル・メモリ１０の機能と動作は、実施の形態１と同一であり、説明を省略する。
同様に図２７は、本実施の形態における計算機リソース動的制御装置１００ｂの構成を示す図である。即ち図２６に示す分散配置でシステムとして動的制御することに代えて、特定の計算機が全ての構成要素を備えて、制御装置となってもよい。
また、処理時間収集部がデッドラインミス発生時刻予測部２１を含んで、処理時間収集・予測部２ｂとなる構成とし、計算機負荷量収集部が計算機負荷予測部２２を含んで、計算機負荷量収集・予測部５ｂとなる構成としてもよい。
【００３２】
以下、本実施の形態における移行プロセス決定部３ｂ、資源割当部６ｂ、デッドラインミス発生時刻予測部２１または処理時間収集・予測部２ｂ、計算機負荷予測部２２または計算機負荷量収集・予測部５ｂ、ＣＰＵ時間予測部２３、メモリ使用量予測部２４の機能について説明する。
本実施の形態における移行プロセス決定部３ｂは、処理時間収集部２から、デッドラインミス発生の通知を受け取る機能に加え、デッドラインミス発生時刻予測部２１からも通知を受け取る機能を持つ点が実施の形態１と異なる。また、デッドラインミス発生時刻予測部２１からデッドラインミス発生の通知を受け取った場合には、計算機負荷予測部２２やメモリ使用量予測部２４やＣＰＵ時間予測部２３にも問い合わせることによってデッドラインミス発生時の計算機負荷、メモリ使用量、ＣＰＵ時間（計算機のプロセッサがそのプロセスを処理する時間）の予測値を取得し、これらの予測値に基づき、将来発生すると思われるデッドラインミス発生の原因を推測する点が実施の形態１と異なる。
本実施の形態における資源割当部６ｂは、移行プロセス決定部３ｂがデッドラインミス発生時刻予測部２１からデッドラインミス通知を受け取った場合には、計算機負荷予測部２２、ＣＰＵ時間予測部２３、メモリ使用量予測部２４に問い合わせることによって、プロセスの再割当先として適切な計算機１００を選択する点が実施の形態１と異なる。
【００３３】
図２８は、本実施の形態におけるデッドラインミス発生時刻予測部２１の機能を示した図である。デッドラインミス発生時刻予測部２１は、処理時間履歴テーブル・メモリ８に示される処理開始時刻、処理終了時刻から時刻と処理時間の変動の関係を統計学などにより求め、近似式で表現する機能を持つ。また、求めた近似式を利用してデッドラインミス発生時刻を予測し、処理時間収集・予測部２ｂか、または直接に移行プロセス決定部３ｂに、デッドライン発生予測時刻を通知する役割を持つ。例えば、図２８の例では、５０ミリ秒周期で処理を行っており、処理を行うたびに処理時間が１０ミリ秒ずつ長くなっているケースを示している。この場合の近似式はｙ＝０．２×（ｘ−最も古いデータ内の処理開始時刻）＋１０ミリ秒（ｙは処理時間、ｘは処理開始時刻）と求めることができ、例えば処理のデッドラインが１００ミリ秒であった場合には、１０時１０分１０秒４５０ミリ秒にデッドラインミスが発生することがわかる。この場合、デッドラインミス発生時刻予測部２１は、移行プロセス決定部３ｂに「１０時１０分１０秒４５０ミリ秒にデッドラインミスが発生する」との予告を通知することになる。
【００３４】
図２９は、本実施の形態における計算機負荷予測部２２の機能を示した図である。計算機負荷予測部２２は、計算機負荷履歴テーブル・メモリ９に示されるＣＰＵ使用率から、時刻とＣＰＵ負荷の変動の関係を統計学などの手法により求め、変動を近似式にて表現する機能を持つ。また、求めた近似式を利用して、デッドラインミス発生予測時刻における各計算機のＣＰＵ使用率を求め、移行プロセス決定部３ｂなどからのリクエストに応じてこれらの値を通知する機能を持つ。また、ＣＰＵ使用率がある上限値を超える時刻を求め、移行プロセス決定部３ｂに通知する機能を持つ。ある上限値とは、１００％でもよいし、ユーザによってあらかじめ決めておいてもよい。
例えば、図２９では、ある計算機の負荷が５０ミリ秒ごとに０．５％ずつ増加しているケースを示している。この場合のＣＰＵ使用率の近似式はｙ＝０．０１×（ｘ−最も古いデータの受信時刻）＋１０（ｙはＣＰＵ使用率、ｘは時刻）と求めることができ、例えば、移行プロセス決定部３ｂから、１０時１０分１０秒４５０ミリ秒のＣＰＵ負荷について問い合わせがあった場合には、１４．５％と回答することになる。もし、問い合わせと同じ時刻のデータが存在しなければ、テーブルに示される中で最も近い時刻データを取得し、回答することになる。また、ＣＰＵ使用率の許容可能な上限値を１００％とした場合、本式より、ＣＰＵ使用率が１００％になるのは１０時１０分２８秒になる。
計算機負荷予測部２２は、プロセスごとにあってもよいし、システムで１つでもよい。ただしシステムで１つの場合は、全てのプロセスに対して近似式を求めることになる。
【００３５】
図３０は、本実施の形態におけるＣＰＵ時間予測部２３の機能を示した図である。ＣＰＵ時間予測部２３は、処理時間履歴テーブル・メモリ８に示される各プロセスのＣＰＵ時間から、時刻とＣＰＵ時間の変動の関係を統計学などにより求め、近似式で表現する機能を持つ。また、移行プロセス決定部３ｂなどからのリクエストに応じて、求めた近似式を利用して、デッドラインミス発生予測時における各プロセスのＣＰＵ時間を求め、通知する機能を持つ。
例えば、図３０では、ある計算機のＣＰＵ時間が５０ミリ秒ごとに１０ミリ秒ずつ増えているケースを示している。この場合のＣＰＵ時間の近似式はｙ＝０．２×（ｘ−最も古い受信データ内の処理開始時刻）＋９（ｙはＣＰＵ時間、ｘは処理開始時刻）と求めることができ、例えば、移行プロセス決定部３ｂから、１０時１０分１０秒４５０ミリ秒のＣＰＵ時間について問い合わせがあった場合には、ＣＰＵ時間予測部２３は、その時間は９９ミリ秒と回答することになる。
【００３６】
図３１は、本実施の形態におけるメモリ使用量予測部２４の機能を示した図である。メモリ使用量予測部２４は、計算機負荷履歴テーブル・メモリ９に示されるメモリ使用量から、時刻とメモリ使用量の変動を統計学などにより求め、変動を近似式にて表現する機能を持つ。また、メモリ使用量の近似式をもとにメモリ不足が発生する時刻を求め、移行プロセス決定部３ｂに通知する機能を持つ。また、求めた近似式を利用して、デッドラインミス発生予測時刻における各計算機のメモリ使用量を求め、移行プロセス決定部３ｂなどからのリクエストに応じて通知する機能を持つ。空きメモリ量がどの程度になったらメモリ不足とするかは、ユーザよりシステムに与えてもよいし、空きメモリ量が０になったらメモリ不足としてもよい。ここでは説明を単純にするため、空きメモリが０となったらメモリ不足とする。
例えば、図３１の例では、ある計算機のメモリ使用量が、５０ミリ秒ごとに２ＭＢずつ増加しているケースを示している。この場合のメモリ使用量の近似式は、ｙ＝０．０４×（ｘ−最も古いデータの受信時刻）＋１００（ｙはメモリ使用量、ｘは時刻）と求めることができる。そして、本計算機の搭載メモリ量が１８０ＭＢであった場合には、２秒後にメモリ不足が発生することになり、その旨を処理時間収集・予測部２ｂまたは直接に移行プロセス決定部３ｂに通知する。また、移行プロセス決定部３ｂなどから、１０時１０分１０秒４５０ミリ秒のメモリ使用量について問い合わせがあった場合には、１１８ＭＢと回答することになる。
メモリ使用量予測部２４は、計算機に１つあってもよいし、システムに１つでもよいが、全ての計算機について近似式を求めることになる。
【００３７】
図３２は、本実施の形態におけるデッドラインミス発生時刻予測部２１の動作フローの一例を示す図である。図２８の機能説明図も参照しながら動作を説明する。デッドラインミス発生時刻予測部２１は、Ｓ２１にて、処理時間履歴テーブル・メモリ８の全エントリを参照し、各エントリにおける開始時刻と処理時間を求める。処理時間とは、処理終了時刻から処理開始時刻を引いたものである。そしてＳ２２にて、統計学の手法により処理開始時刻と処理時間の関係を近似式にて表す。近似式の求め方としては、例えば最小二乗法などが考えられる。また近似式の次数に関しては、あらかじめ決めておいてもよいし、次数の上限を決めた上で次数を１次から徐々に上げていき、正確に近似した式を求めるという方法も考えられる。そして求めた式を用いて、Ｓ２３にて、デッドラインミス発生時刻を求める。求め方は、例えば、Ｓ２２にて求めた式がｙ＝ａｎｘｎ＋ａｎ−１ｘｎ−１＋…＋ａｘ＋ｂ（ｙ：処理時間、ｘ：時刻）であった場合、ｙの値にデッドライン時間の値を代入したときのｘの値により求めることができる。
そしてＳ２４にて、デッドラインミスが将来発生するかどうかを求める。デッドラインミスが将来発生するかどうかは、例えばＳ２３にて求めた時刻が現在時刻より前か後かによって判断することができる。デッドラインミスが将来発生すると判断した場合には、Ｓ２５において、処理時間収集・予測部経由で、または直接で移行プロセス決定部３ｂに、デッドラインミス発生が予想されるプロセスの名前を通知する。この動作は、プロセスの処理とは同期せずに行ってもよいし、プロセスの処理が終わるたびに行ってもよい。
【００３８】
図３３は、本実施の形態における計算機負荷予測部２２の動作フローの一例を示した図である。図２９の機能説明図も参照しながら動作を説明する。Ｓ２０１にて、計算機負荷履歴テーブル・メモリ９の全エントリを参照し、各エントリの負荷取得時刻とそのときの計算機負荷を求める。そしてＳ２０２にて、統計学の手法により、計算機負荷と負荷取得時刻の関係を近似式にて表す。近似式の求め方としては、デッドラインミス発生時刻予測手段と同様、例えば最小二乗法などが考えられる。また、近似式の次数に関しては、デッドラインミス発生時刻予測手段と同様にあらかじめ決めておいてもよいし、次数の上限を決めた上で徐々に上げて、最もデータの変動に近い式を近似式とする、という方法でもよい。
Ｓ２０３にて、Ｓ２０２で求めた式からＣＰＵ使用率が１００％ないし決められた上限値になる時刻を求める。そしてＣＰＵ使用率が上限に達すると予測されると、Ｓ２０５にて、ＣＰＵ使用率が上限に達する時刻と、その計算機名を通知する。なお、Ｓ２０１〜Ｓ２０５の処理は、計算機負荷量収集部５からの計算機負荷情報の通知に同期して行ってもよいし、非同期に行ってもよい。
【００３９】
図３４は、本実施の形態におけるＣＰＵ時間予測部２３の動作フローの一例を示した図である。図３０の機能説明図も参照しながら動作を説明する。Ｓ２１１にて、処理時間履歴テーブル・メモリの全エントリを参照し、各エントリにおける処理開始時刻とＣＰＵ時間を取得する。そしてＳ２１２にて、統計学の手法により、ＣＰＵ時間取得時刻とＣＰＵ時間の関係を近似式で表す。近似式の求め方は、上記の最小二乗法などが考えられる。その近似式の次数に関しても上記と同様に処理する。この動作は、プロセスの処理と同期、非同期いずれで行ってもよい。
図３５は、本実施の形態におけるメモリ使用量予測部２４の動作フローの一例を示す図である。Ｓ２２１にて、計算機負荷履歴テーブル・メモリ９の全エントリを参照し、各エントリにおける負荷取得時刻とそのときのメモリ使用量を求める。そしてＳ２２２にて、負荷取得時刻とメモリ使用量の関係を、上記の近似式で表したと同様な方法で表す。この処理も、計算機負荷量収集部５への通知に同期して、または非同期で行ってよい。そしてＳ２２３にて、メモリ不足が発生する時刻を求める。例えば、Ｓ２２２にて求めた式がｙ＝ａｎｘｎ＋ａｎ−１ｘｎ−１＋・・・＋ａ１ｘ＋ｂ（ｙ：メモリ使用量、ｘ：時刻）であった場合には、ｙに例えば計算機搭載メモリ量またはユーザが決定した上限メモリ量を代入した場合のｘの値を求めればよい。求めた時刻が現在時刻よりも後であった場合には、メモリ不足が発生させると予測され、Ｓ２２５において、メモリ不足が発生する時刻と、その計算機名を移行プロセス決定部３ｂに通知する。
【００４０】
図３６は、本実施の形態における移行プロセス決定部３ｂの、デッドラインミス発生時刻予測部２１からデッドラインミス発生の予測通知が届いた場合の動作フローの一例順を示した図である。
Ｓ２３１で、デッドラインミス発生時刻予測部２１よりデッドラインミスがある時刻に発生する旨を伝える通知が届く。通知とともに、例えばデッドラインミスが発生したプロセス名が届くことが考えられる。Ｓ２３１でデッドラインミスが発生するプロセスの名前が届くと、Ｓ２３２で、システム構成情報管理テーブル・メモリ７を参照することにより、デッドラインミスが発生するプロセスを処理している計算機名を取得する。そしてＳ２３３で、その計算機１００上で動作している他のプロセス１０１の名を取得する。Ｓ２３４にて、Ｓ２３３で見つけたプロセスのうちでデッドラインミス発生の予測時刻においてＣＰＵの処理時間が増えているプロセスを調査する。ＣＰＵ時間が増えているプロセスは実際に処理負荷が高くなったプロセスを示す。ＣＰＵ時間が増えているかどうかの判断は、システム構成情報管理テーブルが、各プロセスの平均ＣＰＵ時間を保持しているので、システム構成情報管理テーブルより平均ＣＰＵ時間を取得し、更にＣＰＵ時間予測部２３に、デッドラインミス発生時刻におけるプロセスのＣＰＵ時間を問い合わせて取得し、この二つの値を比較することにより判断できる。そしてＳ２３５にて、デッドラインミスが発生すると予測されるプロセスと、Ｓ２３４で見つけ出したプロセスを、リソース再割当を行う候補プロセスとして、これらのうちの少なくともどちらか１つを移行させるように資源割当部６ｂに通知する。
【００４１】
図３７は、本実施の形態における移行プロセス決定部３ｂの他の動作フロー、即ちメモリ使用量予測部２４または計算機負荷予測部２２から、それぞれの予測通知が届いた場合の動作フローの一例を示した図である。
Ｓ２４１にて、メモリ使用量予測部２４または計算機負荷予測部２２よりデッドラインミス発生の予測通知が届くと、Ｓ２４２で、システム構成情報管理テーブル・メモリ７を参照して、メモリ不足が発生する計算機１００上で動作するプロセス１０１名を取得し、Ｓ２４２で見つけたプロセスをリソース再割当の候補とし、資源割付部６ｂにこれらのプロセスを通知する。
なお、処理時間収集・予測部２ｂ、計算機負荷量収集部５から通知を受け取った場合の移行プロセス決定部３ｂの動作は実施の形態１と同一である。
【００４２】
図３８は、本実施の形態における資源割付部６ｂの動作フローの一例を示す図である。
Ｓ２５１で移行プロセス決定部３ｂから、リソース再割当の候補、リソース再割当対象となるプロセスのリストが届くと、Ｓ２５２で、そのリストに記載されているプロセス名を例えばデッドラインミス発生時において使用するＣＰＵ時間の長い順にテーブルに保持する。デッドラインミス発生時のＣＰＵ時間は、ＣＰＵ時間予測部２３に問い合わせることにより求められる。
Ｓ２５４において、Ｓ２５２で作成したプロセス名のテーブルから、プロセス名を１つ取り出す。Ｓ２５５で、正常に動作する計算機１００の一覧を計算機負荷量収集部５より取得し、例えばデッドラインミス発生時において負荷の大きい順にテーブルに保持する。デッドラインミス発生時刻における計算機負荷は、計算機負荷予測部２２に問い合わせることにより求められる。
Ｓ２５７において、計算機のリストで示されたテーブル中、例えば最もＣＰＵ使用率の最も高い計算機を１つ取り出す。Ｓ２５８では、Ｓ２５４で取り出したプロセス１０１がＳ２５７で選択した計算機１００上で動作できるかどうかを確認する。動作できるかどうかを確認する方法としては、例えば、単純に計算機のＣＰＵ使用率のみで判断する方法や、各プロセスの周期をもとにして、どのプロセスがいつＣＰＵを占有するかを実際に調査することによってデッドラインミスが発生せずにスケジューリングできるかどうかを分析する方法が考えられる。
【００４３】
Ｓ２５９において、Ｓ２５４でテーブルより取り出したプロセスがＳ２５７で選んだ計算機１００上で動作可能であると判断した場合には、次にＳ２６０において、Ｓ２５７で取り出した計算機１００の、デッドラインミス発生時刻における空きメモリ量を調査し、Ｓ２５４で取り出したプロセス１０１が使用するメモリ量以上に空いているかどうかを確認する。デッドラインミス発生時刻における空きメモリ量は、メモリ使用量予測部２４にデッドラインミス発生時刻のメモリ使用量を問い合わせて取得し、更にシステム構成情報管理テーブル・メモリ７に対してＳ２５６で取り出した計算機の搭載メモリ量を参照して得て、後者の値から前者の値を引くことにより求めることができる。
そして十分な空きメモリ量があればＳ２６２において、Ｓ２５７で選択した計算機１００をＳ２５４で取り出したプロセス１０１の再割当先として決定する。Ｓ２６３において、Ｓ２６１で決定した計算機１００上でＳ２５４にて取り出したプロセス１０１を起動し、元の計算機で動作していたプロセスを停止させる。Ｓ２６４にて、システム構成情報管理テーブル・メモリ７の、Ｓ２５４にてテーブルより取り出したプロセスとプロセスの割付先となった計算機１００（Ｓ２５６で取り出した計算機）とＳ２５４にてテーブルより取り出したプロセス１０１のデッドラインミス発生時のＣＰＵ時間を書き換えてＳ２５３に戻り、Ｓ２５２にて作成したテーブルの次のエントリに示されるプロセスについて、Ｓ２５３〜Ｓ２６４の処理を行う。
【００４４】
なお、移行プロセス決定部３ｂからデッドラインミス発生時刻予測部２１、またはメモリ使用量予測部２４からの通知で動的リソース制御装置またはシステムが動作している場合、すなわちリソース再割当の候補プロセス群としてプロセス１０１のリストが与えられており、リストに示されるプロセスの少なくともどれか１つについてリソース再割当が行えればよいという場合には、通知されたすべてのプロセスに対してリソース再割当を行わずに終了してもよい。
Ｓ２５９において、Ｓ２５７で選択した計算機１００でプロセス１０１を処理するとデッドラインミスを発生させると判断した場合には、Ｓ２５６に戻り、Ｓ２５５で作成したテーブルに示される他の全計算機１００についてＳ２５７以下を実行する。
またＳ２６１において、Ｓ２５７で選択した計算機１００に十分な空きメモリがない場合には、Ｓ２５６に戻り、Ｓ２５５で作成したテーブルに示される全計算機についてＳ２５７以下を実行する。Ｓ２５６において、全ての計算機について動作可能であるかどうかチェックを行って未割当の場合には、割当可能な計算機が存在しなかったと判断してリソース割当を断念し、Ｓ２６６にて自プロセスを停止させ、Ｓ２６５にて、そのプロセスをテーブルから削除して、テーブルの次のプロセスについてＳ２５３以下の処理を行う。
なお、ここで示した再割当の方法はあくまで一例であり、Ｓ２５４〜Ｓ２６４の動作を応用した例は多数考えられるが、その他の例はここでは割愛する。
【００４５】
図３９は、各構成要素の動作をもとにして連携動作させた場合の、本実施の形態における計算機リソース動的制御装置またはシステムの動作フローの概要を示した図である。
図において、Ｓ２７１にて、処理時間収集部２、計算機負荷量収集部５、デッドラインミス発生時刻予測部２１、メモリ使用量予測部２４が、デッドラインミスの発生、デッドラインミスの発生予測、計算機の異常、ＣＰＵ・メモリリソース不足、ＣＰＵ・メモリ・リソース不足の予測を移行プロセス決定部３ｂに通知する。デッドラインミス発生の検出は、Ｓ１１〜Ｓ１６の手順で行われる。デッドラインミスの発生予測の検出はＳ２１〜Ｓ２５の手順で行われる。計算機の異常検出、ＣＰＵ・メモリリソース不足の検出はステップＳ１０１１〜Ｓ１０１６の手順で行われる。デッドラインミスの発生予測は、Ｓ２１〜Ｓ２５の手順で行われる。ＣＰＵリソース不足の予測は、ステップＳ２０１〜Ｓ２０５の手順で行われる。メモリリソース不足の予測は、ステップＳ２２１〜Ｓ２２５の手順で行われる。
するとＳ２７２で、移行プロセス決定部３ｂは、通知の内容を調査する。通知の内容が計算機の故障であれば、Ｓ２７４にて、故障した計算機１００上で動作していた全てのプロセス１０１に対して、資源割当部６ｂはＳ２５１〜Ｓ２６５の手順でリソースの割当を行う。
【００４６】
計算機の故障でなければ、Ｓ２７５にて、移行プロセス決定部３ｂによりデッドラインミス発生の原因と考えられるプロセス、または、リソース不足発生の原因と考えられるプロセスを見つけ出し、Ｓ２７６にて資源割当部６ｂがＳ２５１〜Ｓ２６５の手順でリソース割当を行う。リソース割当終了後Ｓ２７７にて、資源割当部６ｂは、システム構成情報管理テーブル・メモリ７の、新規にリソース割当を行ったプロセスの識別子と、そのプロセスが動作する割当先計算機１００に関する情報などを書き換える。
【００４７】
即ち本実施の形態は、複数台の計算機がネットワークに接続され、各計算機上で複数のプロセスが連携または独立して動作し、各プロセスは一定の時間周期で処理を行い、制限時間内に処理を完了することが求められているような分散リアルタイムシステムにおいて、プロセスの処理時間を監視する処理時間監視手段と計算機のリソース使用状況を監視する計算機負荷監視手段とを持ち、各プロセスの処理時間に応じてプロセスに与えるリソースを変更することによってプロセスのデッドラインミスの発生を防止するシステムであって、以下の構成を付加することにより、デッドラインミスが発生する前に空きリソースを持つ他計算機へのプロセスマイグレーションを行い、デッドラインミス発生を予防することを特徴とする計算機リソース動的制御方式を示している。即ち、
２１）各プロセスの平均処理時間、消費メモリ量、ＣＰＵ時間、各プロセスの１回あたりの処理における制限時間、システムを構成する計算機一覧を保持するシステム構成情報管理テーブル。
２２）システム上で動作する各プロセスの処理時間、ＣＰＵ時間の変動の履歴を保持するとともに、プロセスのデッドラインミスの発生を検出する処理時間収集手段。
２３）各プロセスの処理時間の変動の履歴より、プロセスの処理時間の変動を学習し、将来のデッドラインミスの発生および発生時刻を予測する処理時間予測手段。
２４）システム上で動作する全計算機のリソースの使用状況の履歴を保持し、過去の計算機リソースの使用状況を他の手段に通知するとともに、リソース不足の発生を検出する計算機負荷収集手段。
２５）計算機のメモリ使用状況の変動をもとに、メモリの使用状況の将来の変動を学習し、将来のメモリ不足の発生を検出するとともに、プロセスのデッドラインミス発生予想時刻やＣＰＵリソース不足発生時刻におけるメモリ使用状況を通知するメモリ使用量予測手段。
２６）計算機のＣＰＵ使用状況の変動より、ＣＰＵ使用状況の将来の変動を学習し、将来のＣＰＵリソース不足の発生を検出するとともに、メモリ不足が発生する時刻、デッドラインミス発生予想時刻におけるＣＰＵ使用状況を通知するＣＰＵ使用率予測手段。
２７）デッドラインミス、ＣＰＵリソース不足、メモリリソース不足などの障害が発生した場合に、リソースの再割り当てを行うべきプロセスを決定する移行プロセス決定手段。
２８）システム構成情報管理テーブルより移行プロセス手段が決定したプロセスが必要なリソース量を取得し、必要な空きリソースを持つ計算機上にプロセスマイグレーションする資源割付手段、を備えた。
【００４８】
言い換えると、本実施の形態における計算機リソース動的制御装置は、計算機のプロセッサ使用状況の変動を基に、該プロセッサの使用時間を予測し、現プロセッサによるデッドラインミスの発生時刻を予測する計算機時間予測部と、
計算機のメモリ使用状況の変動を基に、該メモリの必要量を予測するメモリ使用量予測部と、を備え、
計算機負荷量収集部は、計算機リソースの使用状態情報の収集に加えて、リソースと計算機能力との必要量を予測する計算機負荷量収集・予測部を有し、
処理時間収集部は、プロセスの処理時間の収集に加えて、現計算機によるデッドラインミスの発生時刻を予測する処理時間収集・予測部を有し、
移行プロセス決定部は、上記リソースと計算機能力の必要量予測または上記デッドラインミスの発生予測の通知を受けると、該予測に基づいてプロセスの再割当を勧告し、
資源割当部は、上記デッドラインミスの発生時刻の予測と上記メモリの必要量の予測とに基づいて、上記勧告されて抽出したプロセスを抽出した候補計算機に割当て実行させることを特徴とする。
このように、実施の形態１に加え、デッドラインミスの発生をプロセスの処理時間の変動などから学習することによって予測し、デッドラインミス発生を予測してリソース再割当てを行えるようにすることにより、システムのソフトリアルタイム処理だけでなく、ハードリアルタイム処理も実現することができる。また、デッドラインミス発生時のＣＰＵ負荷、メモリ使用量も予測してリソース割当を行うことによって、よりデッドラインミスの発生しにくい計算機１００にリソース割当を行うことができ、リソース再割当完了後のデッドラインミス再発を高い確率で防止することができる。
【００４９】
実施の形態３．
デッドラインミスが発生すると予測される場合に、より早くプロセスを他の計算機に移行させて、デッドラインミスの発生を確実に抑える構成と動作を説明する。
本実施の形態における計算機リソース動的制御システムまたは装置の構成は、実施の形態２と同一である。また実施の形態３における処理時間監視部１、処理時間収集・予測部２ｂ、計算機負荷監視部４、計算機負荷量収集部５、処理時間履歴テーブル・メモリ８、計算機負荷履歴テーブル・メモリ９、計算機状態テーブル・メモリ１０、ＣＰＵ時間予測部２３の機能と動作は、実施の形態２と同一である。
本実施の形態におけるシステム構成情報管理テーブル・メモリ７ｃのデータ構成の例を図４０に示す。本実施の形態のシステム構成情報管理テーブル・メモリ７ｃでは、実施の形態２におけるシステム構成情報管理テーブル・メモリ７に示す情報のほか、リソース動的制御システムに関する情報として、「再割付所要時間」、ソフトウェアに関する情報として、「プロセス起動所要時間」を保持する。再割付所要時間とは、デッドラインミス発生、デッドラインミス予測、メモリ不足予測、計算機故障などの通知が移行プロセス決定部３ｃに届いてから、資源割当部６ｃが資源の再割当を完了するまでに要する時間を保持するものである。この時間は過去の最悪値としてもよいし、割付完了時間に大きな変動がなければ過去の平均値などでもよい。プロセス起動所要時間とは、動的制御システムがプロセス１０１を起動してから、プロセスが処理を開始するまでの時間である。この時間は、例えばプロセスをメモリにロードするまでの時間や、プロセス固有の初期化処理が含まれる。
【００５０】
本実施の形態におけるデッドラインミス発生時刻予測部２１ｃの動作フローを図４１に示す。Ｓ３１においてはＳ２１〜Ｓ２４を実行する。このときＳ２４にてデッドラインミスが将来発生すると判断した場合には、Ｓ３２にて現在時刻を取得し、デッドラインミス発生時刻までの残り時間を求める。そしてＳ３３にて、リソース再割当てに要する時間とプロセス起動に要する時間と、プロセス１回あたりの処理周期時間の和を求める。Ｓ３４にて、Ｓ３２で求めた時間とＳ３３で求めた時間を比較し、Ｓ３２の時間が短い場合、つまり、デッドラインミス発生までの残り時間が、対処に要する時間とプロセス起動所要時間と処理周期の時間の和よりも短い場合には、Ｓ３５にて移行プロセス決定部３ｃに、デッドラインミスの発生が予想されるプロセスの名前と現在時刻を通知する。Ｓ３４にて、Ｓ３２の時間のほうが短い、つまりＳ３４以降でただちにリソース再割当を開始した場合にデッドラインミスが発生する時刻の１周期よりも前の時刻にリソース再割当が完了すると推定できる場合には、リソース再割当は行わずにプロセスの処理時間の監視を続ける。
なおＳ３１〜Ｓ３５の処理は、プロセスの処理が終了に同期して行ってもよいし、プロセスの処理とは非同期に行ってもよい。また、本例ではデッドラインミスが発生する１周期前にリソース割付が完了するか否かでリソース割付を開始するかどうかを判断しているが、必ずしも１周期である必要はなく、ユーザによって任意に決定してよい。
【００５１】
本実施の形態におけるメモリ使用量予測部２４ｃの動作フローを図４２に示す。
Ｓ３０１では、Ｓ２２１〜Ｓ２２４を実行する。そしてＳ２２４にてメモリ不足が将来発生すると判断した場合には、Ｓ３０２にて現在時刻を取得し、メモリ不足が発生するまでの残り時間を求める。そしてＳ３０３にてリソース再割当てに要する時間とプロセス起動に要する時間とプロセスの処理周期時間の和を求める。Ｓ３０４にて、Ｓ３０２で求めた時間とＳ３０３で求めた時間を比較し、Ｓ３０２で求めた時間のほうが短い、つまりメモリ不足発生までの残り時間が、リソース再割り当てに要する時間とプロセス起動所要時間と処理周期時間の時間の和より短い場合には、Ｓ３０５にて、メモリ不足が発生する時刻とその計算機、現在時刻を移行プロセス決定部３ｃに通知する。なおＳ３０４にて、Ｓ３０２で求めた時間のほうが短い、つまり、ただちにリソース再割当を行った場合にメモリ不足が発生する時刻の１周期よりも前にリソース再割付が終了する場合、メモリ使用量の監視を継続する。なおデッドラインミスが発生する１周期前にリソース割付が完了するか否かでリソース割付を開始するかどうかを判断しているが、必ずしも１周期である必要はなく、ユーザによって任意に決定してよい。
【００５２】
本実施の形態における計算機負荷予測部２２ｃの動作フローを図４３に示す。
Ｓ３１１では、Ｓ２０１〜Ｓ２０４を実行する。そしてＳ２０４にて、ＣＰＵ使用率がある上限値以上になると判断した場合には、Ｓ３１２にて、現在時刻を取得し、ＣＰＵ使用率が上限値になるまでの残り時間を求める。そしてＳ３１３にて、リソース再割当てに要する時間とプロセス起動に要する時間とプロセスの処理周期時間の和を求める。Ｓ３１４にて、Ｓ３１２で求めた時間とＳ３１３で求めた時間を比較し、Ｓ３１２で求めた時間、つまりＣＰＵ使用率が上限値になるまでの残り時間が、リソース再割当てに要する時間とプロセス起動所要時間と周期処理のインターバル時間より短い場合には、Ｓ３１５にて、ＣＰＵが上限値になる時刻とその計算機、現在時刻を移行プロセス決定部３ｃに通知する。なお、Ｓ３１４にて、Ｓ３１２の時間のほうが短い、つまり現在時刻でリソース再割当を行っても、ＣＰＵリソース不足が発生する時刻の１周期以上前にリソース再割当が終了する場合には何もせず、ＣＰＵ使用率の監視を継続する。
【００５３】
本実施の形態における、デッドラインミス発生時刻予測部２１ｃからデッドラインミス発生の予測通知が届いた場合の移行プロセス決定部３ｃの動作フローを図４４に示す。
Ｓ３２１にて、デッドラインミス発生時刻予測部２１ｃより、デッドラインミス発生が予測されるプロセス１０１と、Ｓ３２にて取得した現在時刻が届くと、Ｓ３２２にて、実施の形態２におけるステップＳ２３２〜Ｓ２３４を実行する。そしてＳ３２３にて、Ｓ２３４で見つけたプロセスと、デッドラインミス発生が予測されるプロセスをリソース再割当の候補とし、この候補プロセス群とデッドラインミス発生時刻予測部２１ｃより送られてきた時刻を資源割付部６ｃに送信する。
本実施の形態における、メモリ使用量予測部２４ｃまたは計算機負荷予測部２２ｃから通知が届いた場合の移行プロセス決定手段３ｃの動作フローを図４５に示す。
Ｓ３３１で、メモリ使用量予測部２４ｃまたは計算機負荷予測部２２ｃから通知が届く。通知の内容は、異常が発生した計算機と、メモリ使用量予測部２４ｃがＳ３１２にて取得した現在時刻、計算機負荷予測部２２ｃがＳ３２２で取得した現在時刻である。Ｓ３３２において、システム構成情報管理テーブル・メモリ７ｃを参照して、Ｓ３３１にて通知された計算機で動作するプロセスを取得する。Ｓ３３３にて、Ｓ３２２で見つけたプロセスをリソース再割当の対象、またはリソース割当の候補のプロセスとし、資源割当部６ｃにこれらのプロセスと、Ｓ３２１にて受信した時刻を通知する。
【００５４】
本実施の形態における、資源割当部６ｃの動作フローを図４６に示す。
Ｓ３４１にて、移行プロセス決定部３ｃから、リソース割当対象、割当候補となるプロセス一覧と、デッドラインミス発生時刻予測部２１ｃ、計算機負荷予測部２２ｃ、メモリ使用量予測部２４ｃが取得した時刻を受信する。Ｓ３４２では、Ｓ２５２〜Ｓ２６３を実行する。そして２５３において、Ｓ２５２のテーブルが空か、もしくは対処する必要がないと判断した場合にＳ３４３に進み、現在時刻を取得する。そしてＳ３４４にて、Ｓ３４３にて得た時刻からＳ３４１で受信した時刻を引くことにより、リソース割当に要した時間を求める。そしてＳ３４５にて、システム構成情報管理テーブル・メモリ７ｃに登録されている、リソース割当所要時間を取得する。そしてＳ３４４で求めた、今回リソース割当に要した時間と、システム構成情報テーブル・メモリ７ｃに登録されていたリソース割当時間を取得し、今回リソース割当に要した時間のほうが長くかかっていればＳ３４７に進み、システム構成情報管理テーブル・メモリ７ｃの、リソース割付所要時間の値を、Ｓ３４４で求めた値に書き換える。
【００５５】
図４７は、上記の各構成要素の動作をもとにして連携動作させた場合の、本実施の形態における計算機リソース動的制御装置またはシステムの動作フローの概要を示した図である。
Ｓ３５１にて、処理時間収集・予測部２ｂ、計算機負荷量収集部５、デッドラインミス発生時刻予測部２１ｃ、メモリ使用量予測部２４ｃが、デッドラインミスの発生、デッドラインミスの発生予測、計算機の異常、ＣＰＵ・メモリリソース不足、ＣＰＵ・メモリリソース不足の予測を移行プロセス決定部３ｃに通知する。デッドラインミス発生の検出はＳ１１〜Ｓ１６の手順で行われる。デッドラインミスの発生予測の検出はＳ３１〜Ｓ３５の手順で行われる。計算機の異常検出、ＣＰＵ・メモリリソース不足の検出はＳ１０１１〜Ｓ１０１６の手順で行われる。ＣＰＵリソース不足の予測は、Ｓ３１〜Ｓ３５の手順で行われる。メモリリソース不足の予測は、Ｓ３０１〜Ｓ３０５の手順で行われる。
するとＳ３５２で、移行プロセス決定部３ｃは、通知の内容を調査する。通知の内容が計算機の故障であればＳ３５５にて、故障した計算機上で動作していた全てのプロセスに対して、資源割当部６ｃはＳ３４１〜Ｓ３４７の手順でリソースの割当を行う。
計算機の故障でなければＳ３５５にて、デッドラインミス発生の原因となったプロセス、リソース不足を発生させたプロセスの候補を見つけ出し、Ｓ３５６にて、資源割当部６ｃがＳ３４１〜Ｓ３４７の手順でリソース割当を行う。リソース割当終了後、Ｓ３５７にて資源割当部６ｃは、システム構成情報管理テーブル・メモリ７ｃの、新規にリソース割当を行ったプロセスの識別子と、そのプロセスが動作する割当先計算機に関する情報などを書き換える。
【００５６】
このように、システム構成情報管理テーブル・メモリ７ｃがリソース割付に要する時間の最悪値を保持し、デッドラインミス、メモリ不足、ＣＰＵリソース不足の発生予測時間よりリソース割り付けに要する時間とプロセス起動する時間と周期処理時間の和だけ前にリソース割付を開始することにより、少なくともデッドラインミス発生の１周期前までにリソース再割り当てが終了し、プロセスのハードリアルタイム処理を継続することができる。
【００５７】
即ち本実施の形態は、先の実施の形態における計算機リソース動的制御システムに加えて、以下の特徴がある要素を加えることにより、デッドラインミス発生直前までにプロセスマイグレーションを完了することを特徴とする計算機リソース動的制御方式を示している。即ち、
３１）先の実施の形態におけるシステム構成情報管理テーブルに加え、各プロセスにおける、デッドラインミスの発生、デッドラインミスの発生予測、メモリ不足、メモリ不足の予測、計算機故障を検出してからプロセスマイグレーションを完了するまでの時間と、プロセスマイグレーションを完了してからプロセスが処理を開始するまでの時間を保持するシステム構成情報管理テーブル。
３２）先の実施の形態における処理時間予測手段において、各プロセスの処理時間の変動の履歴より、プロセスの処理時間の変動を学習し、将来のデッドラインミスの発生および発生時刻を予測し、プロセスマイグレーションを完了してプロセスが処理を開始するまでに要する時間だけ前に移行プロセス決定手段にデッドラインミスの発生予測を通知する機能を持つ処理時間予測手段。
３３）先の実施の形態におけるメモリ使用量予測手段において、各計算機のメモリ使用量の変動をもとにメモリ使用状況の将来の変動を予測することによりデッドラインミス発生時刻やＣＰＵリソース不足が発生する時刻におけるメモリ使用量を通知するとともに、メモリ不足が発生する時刻を予測し、プロセスマイグレーションを完了してプロセスが処理を開始するまでに必要な時間だけ前に移行プロセス決定手段にメモリ不足の発生予測を通知する機能を持つメモリ使用量予測手段。
３４）先の実施の形態におけるＣＰＵ使用率予測手段において、各計算機のＣＰＵ使用量の変動をもとに、ＣＰＵ使用量の将来の変動を予測することによりデッドラインミス発生時刻やメモリ不足が発生する時刻におけるＣＰＵ使用量を通知するとともに、ＣＰＵリソース不足が発生する時刻を予測し、プロセスマイグレーションが完了してプロセスが処理を開始するまでに必要な時間だけ前に移行プロセス決定手段にＣＰＵリソース不足の発生予測を通知する機能を持つＣＰＵ使用率予測手段、を備える。
【００５８】
言い換えると、本実施の形態における計算機リソース動的制御装置は、先の実施の形態の装置に加えて、システム構成情報テーブル・メモリは、プロセスを候補計算機に再割当する再割当所要時間と該候補計算機でプロセスを起動するプロセス起動所要時間とを記憶し、
資源割当部は、上記再割当所要時間とプロセス起動所要時間との和の時間より前に抽出したプロセスを抽出した候補計算機に割当て実行させることを特徴とする。
また、実施の形態２と比べ、デッドラインミス発生直前までアプリケーションの処理時間、メモリ使用量、ＣＰＵ使用率の変化の振る舞いを調べることができ、より正確なシステムの振る舞いをもとにリソース割付を行うことができる。その結果、直前に振る舞いが変わり、デッドラインミス、メモリ不足、ＣＰＵリソース不足が発生しないことがわかった場合には、実施の形態２と比べ、リソース割付に伴って加わる処理オーバーヘッドを削減することができる。また、システム構成情報テーブルに、リソース割付時間の最悪値を保持、絶えず更新し、その最悪値の時間だけ先立ってリソース割付を開始することにより、デッドラインミス発生前にリソース割付処理が完了する可能性が高くなる。
【００５９】
実施の形態４．
本実施の形態においては、リソースが不足すると、重要度が高いプロセスを優先して処理する構成と動作を説明する。
本実施の形態における計算機リソース動的制御装置または計算機リソース動的制御システムの構成要素は、実施の形態１と同一である。即ち処理時間監視部１、処理時間収集・予測部２ｂ、移行プロセス決定部３、計算機負荷監視部４、計算機負荷量収集部５、処理時間履歴テーブル・メモリ８、計算機負荷履歴テーブル・メモリ９、計算機状態テーブル・メモリ１０の構成は、実施の形態１と同一である。
本実施の形態におけるシステム構成情報管理テーブル・メモリ７ｄの構成を図４８に示す。本実施の形態のシステム構成情報管理テーブル・メモリ７ｄは、実施の形態１におけるシステム構成情報管理テーブル・メモリ７に示す情報のほか、各プロセスの「重要度」を保持する。ここで重要度とは、システムを構成する全プロセスを動作させるだけの計算機リソースがなくなった場合に空きリソースを作り出すためにプロセスを停止させる際、プロセスを停止させる順序を示すものである。すなわち、重要度に示す順序に応じてプロセスを停止させることにより、重要度の高いプロセスほどリソースが足りなくなっても動作し、重要度の低いプロセスはシステム全体の計算機リソースが足りなくなった場合には停止する。
【００６０】
本実施の形態における資源割当部６ｄの動作フローの一例を図４９に示す。
Ｓ４０１にて、移行プロセス決定部３から、リソース割当の候補、リソース割当対象となるプロセス１０１のリストが届くと、Ｓ４０２にて、Ｓ４０１にて受け取ったリストを重要度の高い順に並べ替え、テーブルに保持する。そしてＳ４０４にて、Ｓ４０２のテーブルの先頭にある重要度の高いプロセス名を取り出す。そしてＳ４０５で、正常に動作する計算機１００の名前を負荷の大きい順にテーブルに持つ。そしてＳ４０６にて、Ｓ４０５にて作成したテーブルの先頭にある計算機名を取り出す。そしてＳ４０７にて、Ｓ４０６にて取り出した計算機１００のＣＰＵ使用状況などを調査し、Ｓ４０４で選択したプロセス１０１が、Ｓ４０６で選択した計算機１００上でデッドラインミス発生することなく動作できるかどうか調べる。デッドラインミスなく動作可能と判断した場合には、Ｓ４０９にて、Ｓ４０６にて取り出した計算機１００の空きメモリ量を調査し、Ｓ４０４で選択したプロセス１０１が動作可能であるかどうか調べる。動作可能であると判断した場合には、Ｓ４１１にて、Ｓ４０６で選択した計算機１００をＳ４０４で選択したプロセス１０１の移行先として決定し、Ｓ４１２で、Ｓ４１１で割当を決定した計算機１００のうえで、Ｓ４０４で選択したプロセス１０１を起動し、元の計算機上で動作していたＳ４０４で選択したプロセスを停止させる。Ｓ４１３で、システム構成情報管理テーブルの、割当た計算機とプロセス、現在のプロセスの処理時間を書き換える。
【００６１】
Ｓ４０８にて、動作させるとデッドラインミスを発生すると判断した場合には、Ｓ４１５にて、Ｓ４０５で作成したテーブルの次のエントリに示される計算機１００を選ぶ。次のエントリに示される計算機があれば、まだ全ての計算機について調査を行っていないことになるので、Ｓ４０６に進み、Ｓ４１５で選択した計算機について、Ｓ４０６以降の処理を行う。
Ｓ４１５にて、次のエントリに示される計算機がなければ、すでに全ての計算機１００について動作可能かどうか調査し、どの計算機でも動作しないということがわかったことになる。これはすなわち、計算機リソースに空きがないことを示す。この場合はＳ４１７に進み、Ｓ４０４のプロセス１０１よりも重要度の低いプロセスがあるかどうか調べ、あればＳ４１９に進み、動作するプロセスの中で最も重要度の低いプロセスを停止させる。Ｓ４２０で、Ｓ４０２で作成したテーブルに、停止させたプロセスがあれば、そのエントリを削除する。重要度の低いプロセスが停止したことにより、計算機リソースに空きができたことになる。そして、Ｓ４０５に進み、再度計算機の負荷順に並べ替えて、プロセス１０１を割付可能なリソースを調査する。
Ｓ４１７にて、現在調査中のプロセスよりも重要度の低いプロセスがなくなった場合には、Ｓ４１８にて自プロセスは停止させることにより、一連の処理は終了となる。Ｓ４１３にてプロセスの再割当が完了したか、Ｓ４１８でプロセスが停止したら、Ｓ４１４にて、テーブルから先頭エントリ、すなわち、Ｓ４０４で選択したプロセス名を削除し、Ｓ４０２のテーブルにおいて、今回調査したエントリの次のエントリに示されるプロセスについて、プＳ４０４以降の処理を繰り返し行う。
【００６２】
図５０は本実施の形態における、全構成要素が連携動作した場合における計算機リソース動的制御装置またはシステムの動作フローの概要を示した図である。
図のＳ４２１にて、処理時間収集・予測部２ｂまたは、計算機負荷量収集部５から、デッドラインミスの発生、または計算機の異常が移行プロセス決定部３に通知される。この場合の処理時間収集・予測部２ｂの動作はＳ１１〜Ｓ１６、計算機負荷量収集部５の動作はＳ１０１１〜Ｓ１０１８に示すとおりである。するとＳ４２２で、移行プロセス決定部３は、デッドラインミスの原因を調査する。Ｓ４２３にて、原因が計算機の故障にあるかどうかを調査し、計算機の故障であればＳ４２４にて、故障した計算機１００上で動作していた全てのプロセス１０１に対して、資源割当部６はＳ４０１〜Ｓ４２０の手順によりリソースの割当を行う。リソース割当の際、どの計算機にも割当可能な空きリソースがなければ、重要度の低いプロセス１０１から順に停止させて空きリソースを作成し、再度リソースの割当を試行する。
計算機の故障でなければＳ４２５で、移行プロセス決定部３により、デッドラインミス発生の原因となったプロセス、リソース不足発生の原因となったプロセス、リソース再割付を行うプロセスを見つけ出す。そしてＳ４２６にて、デッドラインミス発生の原因となったプロセス、または、リソース不足を発生させた原因と考えられるプロセスに対して、資源割当部６がＳ４０１〜Ｓ４２０の手順でリソース割当を行う。リソース割当の際、どの計算機１００にも割当可能な空きリソースがなければ、重要度の低いプロセスから順に停止させて空きリソースを作成し、再度リソース割当を試行する。そしてＳ４２７にて、リソース割当終了後に資源割当部６は、システム構成情報管理テーブル・メモリ７ｄの、新規にリソース割当を行ったプロセス１０１の識別子と、そのプロセスが動作する割当先の計算機１００、処理に要するＣＰＵ時間などに関する情報を書き換える。
【００６３】
即ち本実施の形態は、実施の形態１の計算機リソース動的制御システムに、以下の特徴を加えることにより、全てのプロセスが動作するだけのリソースがシステムに存在しない場合に、重要な処理を優先してリアルタイム処理を継続することを可能とする計算機リソース動的制御方式を示している。即ち、
４１）実施の形態１のシステム構成テーブルに加え、全てのプロセスを動作させるだけのシステムリソースが足りなくなった場合に優先動作させるプロセスの順位を保持するシステム構成情報管理テーブル。
４２）実施の形態１の資源割付手段において、移行プロセス決定手段が決定したプロセスが動作できるための空きリソースが無い場合に、システム構成情報管理テーブルが持つプロセスの動作順位をもとに、順位の低いプロセスを停止させることにより計算機に空きリソースを作成し、その計算機上にプロセスマイグレーションを行う資源割付手段、を備える。
【００６４】
言い換えると、本実施の形態における計算機リソース動的制御装置は実施の形態１の装置に加えて、システム構成情報テーブル・メモリは、プロセスの処理優先順位を記憶し、
資源割当部は、現在の計算機ではデッドラインミスの発生が予測されると、上記システム構成情報テーブル・メモリを参照して、プロセスの処理優先順位が高いプロセスを候補計算機に割当て実行させることを特徴とする。
このように、システム内で独立した複数の処理が動作している場合に、計算機故障などにより全てのプロセス１０１を動作させるだけのシステムリソースがなくなってしまった場合においても、プロセスに重要度を与え、重要性の低い処理は停止させることによってシステムリソースに空きを作り出し、重要度のより高い処理を優先させて動作継続させることが可能になる。
【００６５】
実施の形態５．
本実施の形態においては、各計算機１００の性能にばらつきがある場合に、その性能差を考慮して割当を行える装置、システムを説明する。
本実施の形態における動的リソース制御装置またはシステムの構成要素は、実施の形態１と同一である。本実施の形態における、即ち処理時間監視部１、処理時間収集・予測部２ｂ、移行プロセス決定部３、計算機負荷監視部４、計算機負荷量収集部５、処理時間履歴テーブル・メモリ８ないし計算機状態テーブル・メモリ１０の構成は、実施の形態１と同一である。
本実施の形態におけるシステム構成情報管理テーブル・メモリ７ｅが持つ情報の例を図５１に示す。システム構成情報管理テーブル・メモリ７ｅには、実施の形態１におけるシステム構成情報管理テーブル・メモリ７に示す情報のほか、プロセス１０１としてのアプリケーションごとに「動作可能計算機名」、計算機１００ごとに「性能値」が示されている。性能値としては、例えばＳＰＥＣＩｎｔのような、計算機の性能値を示すベンチマークプログラムのデータが示されることが考えられる。
【００６６】
本実施の形態における資源割当部６ｅの動作フローの例を図５２に示す。
図において、Ｓ５０１で、移行プロセス決定部３から、リソース割当の候補、リソース割当対象となるプロセスのリストが届くと、Ｓ５０２にて、プロセス１０１のリストを例えばＣＰＵ時間の多い順に並べ、テーブルに保持する。Ｓ５０２にて作成したテーブルが空であれば、処理を終了する。
空でなければＳ５０４において、Ｓ５０２にて作成したテーブルからプロセス１０１の名を１つ取り出す。そして、Ｓ５０４のプロセス１０１が動作可能で、かつ正常に動作している計算機１００を、例えば計算機負荷の大きい順に並べ替え、テーブルに保持する。各プロセスが動作可能な計算機の一覧は、システム構成情報管理テーブル・メモリ７ｅに示されているので、それを参照して計算機の識別子を取得する。そしてＳ５０７以下を、Ｓ５０５にて作成したテーブルにある全計算機について、または、リソース割当先となる計算機１００が決定するまで行う。Ｓ５０７にて、Ｓ５０５にて作成したテーブルから計算機を１つ選ぶ。そしてＳ５０８にて、Ｓ５０７の計算機１００の性能値と、現在動作中の計算機の性能値を、システム構成情報管理テーブル・メモリ７ｅを参照して取得する。そしてＳ５０９にて、Ｓ５０８にて求めた値より、Ｓ５０４にて選択したプロセス１０１の現在のＣＰＵ時間を補正する。例えば、現在動作中の計算機の性能値が１００、Ｓ５０７で選択した計算機の性能値が８５であった場合には、補正後のＣＰＵ時間は１００／８５倍になる。Ｓ５１０にて、この補正後の値をもとに、Ｓ５０４で選択したプロセスが、Ｓ５０７で選択した計算機上でデッドラインミスを発生させることなく動作できるかどうかを確認する。
【００６７】
動作可能であった場合にはＳ５１２に進み、Ｓ５０７で選択した計算機が、Ｓ５０４で選択した計算機が動作するだけの空きメモリを持っているかどうか確認する。十分な空きメモリ量があった場合にはＳ５１４にて、Ｓ５０７で選択した計算機をリソース割付先計算機として決定する。そしてＳ５１５にて、Ｓ５１４で決定した計算機１００上で、Ｓ５０４で選択したプロセス１０１を起動し、これまで動作していたプロセスを停止させる。そしてＳ５１６にて、システム構成管理テーブル・メモリ７ｅの、「動作中の計算機」の欄と、「平均ＣＰＵ時間」の欄を現在の値に書き換える。そしてＳ５１７にて、Ｓ５０４にて作成したテーブル中、リソース再割当を行ったプロセス名を削除し、Ｓ５０３に戻り、Ｓ５０２で作成したテーブルにある残りのプロセスについて、Ｓ５０３以降の処理を行う。
Ｓ５０６において、Ｓ５０５のテーブルに示される全計算機についてＳ５０７以下を実施した場合には、割付可能な計算機が見つからなかったということであるため、Ｓ５０４で選択したプロセスのリソース再割付を断念し、Ｓ５１８にてプロセス１０１を停止させ、Ｓ５０２で作成したテーブルから停止させたプロセス名を削除する。
Ｓ５１１、Ｓ５１３にて、Ｓ５０４で選択したプロセスが動作不可能であった場合には、Ｓ５０６に戻り、次のエントリの計算機についてＳ５０７以降の処理を行う。
【００６８】
本実施の形態における、各構成要素が連携して行う動的リソース制御装置、またはシステム全体の動作フローの例を図５３に示す。
Ｓ５２１にて、処理時間収集・予測部２ｂまたは、計算機負荷量収集部５は、デッドラインミスの発生、または計算機の異常、ＣＰＵ、メモリリソース不足を検出して、移行プロセス決定部３に通知する。この場合の処理時間収集・予測部２ｂの動作はＳ１１〜Ｓ１６、計算機負荷量収集部５の動作はＳ１０１１〜Ｓ１０１８に示すとおりである。するとＳ５２２で、移行プロセス決定部３は、通知の内容を調査する。通知の内容が計算機の故障であればＳ５２４にて、故障した計算機上で動作していた全てのプロセス１０１に対して、資源割当部６ｅはＳ５０１〜Ｓ５１８の手順によりリソースの割当を行う。計算機の故障でなければＳ５２５で、移行プロセス決定部３により、デッドラインミス発生の原因と考えられるプロセス、リソース不足発生の原因と考えられるプロセスを見つけ出す。そしてＳ１４６にて、Ｓ５２５で見つけたプロセスに対して、資源割当部６ｅがＳ５０１〜Ｓ５１８の手順でリソース割当を行う。リソース割当終了後Ｓ５２７にて、資源割当部６ｅは、システム構成情報管理テーブル・メモリ７ｅの、新規にリソース割当を行ったプロセス１０１の識別子と、そのプロセスが動作する割当先の計算機１００、処理に要するＣＰＵ時間などに関する情報を書き換える。
【００６９】
即ち本実施の形態は、実施の形態１の計算機リソース動的制御システムに、以下の特徴を加えることにより、システムを構成する計算機の性能が不均一な場合においてもデッドラインミスを発生させない計算機へのプロセスマイグレーションを可能とすることを特徴とする計算機リソース動的制御方式を示している。即ち、
５１）実施の形態１のシステム構成情報管理テーブルに加え、各プロセスが動作可能な計算機の一覧と、各計算機の性能を示す値を保持するシステム構成情報管理テーブル。
５２）実施の形態１の資源割付手段において、移行プロセス決定手段が決定したプロセスが動作可能な計算機をプロセスマイグレーション先となる計算機候補とし、システム構成情報管理テーブルが持つ計算機の性能値を用いて、この計算機候補にプロセスを移行した場合にプロセスが必要とする計算機リソースを算出することにより、十分な空きリソースを持つ計算機にプロセスマイグレーションを行う資源割付手段、を備える。
【００７０】
言い換えれば、本実施の形態における計算機リソース動的制御装置は、システム構成情報テーブル・メモリは、対象プロセスを処理可能な動作可能計算機の識別子と計算機の性能値とを記憶し、
資源割当部は、再割当の勧告通知を受けると、上記システム構成情報テーブル・メモリを参照して、上記動作可能計算機の識別子と計算機の性能値とを調べてプロセスを候補計算機に割当て実行させることを特徴とする。
このように、システム構成情報管理テーブル・メモリ７ｅが、各プロセス１０１が動作可能な計算機名、および、計算機の性能値を示すことにより、システム内の計算機のＯＳやＣＰＵアーキテクチャ、性能値がそれぞれ異なる場合においても、動作可能な計算機を正しく判別し、ＣＰＵ時間などを正しく補正し、デッドラインミスが発生しない計算機への割付が可能となる。
【００７１】
実施の形態６．
デッドラインミス発生予測時間が迫っていても、短時間の内に該当するプロセスを処理する計算機の移行を行って、デッドラインミスの発生を防止する構成と動作を説明する。具体的には、そうしたプロセスを移行すべき計算機を想定して起動をかけておき、待機させる。
本実施の形態におけるリソース動的制御システムの構成を図５４に示す。また一つの装置としてまとめた場合の計算機リソース動的制御装置１００ｃの構成を図５５に示す。本実施の形態における動的リソース制御システムまたは装置における構成要素は、実施の形態３の構成に加え、レプリカ管理部２５をもつ。
その他の本実施の形態における処理時間監視部１、処理時間収集部２（または処理時間収集・予測部２ｂ）、移行プロセス決定部３、計算機負荷監視部４、計算機負荷量収集部５（または計算機負荷量収集・予測部５ｂ）、資源割当部６、システム構成情報管理テーブル・メモリ７、処理時間履歴テーブル・メモリ８ないし計算機状態テーブル・メモリ１０、デッドラインミス発生時刻予測部２１、計算機負荷予測部２２、ＣＰＵ時間予測部２３、メモリ使用量予測部２４の構成は実施の形態３と同一である。
【００７２】
ここで、プロセスのレプリカとは、移行した方が良いと予想されるプロセスを新たに処理する計算機上で起動をかけて待機している、移行を前提としてコピーしたプロセスのことである。従って既に起動はしているが、移行が決まって処理すべきデータは未だ届かないなどの理由により処理待ちになっているプロセスである。また、レプリカは、メモリ資源は使用するものの、ＣＰＵリソースは使用しない、つまりレプリカのＣＰＵ時間は０であるとする。
本実施の形態におけるレプリカ管理部２５は、計算機負荷量収集部５が持つデータを参照し、十分に空きメモリがある計算機１００上でレプリカを起動する。そしてデッドラインミスなどが発生すると予測される場合において、資源割当部６がプロセスに資源再割当を行う際に、どの計算機１００でプロセスのレプリカが動作しているのかを資源割当部６に通知する役割を持つ。また、レプリカが動作する計算機上でメモリ不足発生が予測される場合には、プロセスのレプリカを停止させる役割を持つ。
【００７３】
本実施の形態におけるレプリカ管理部２５の動作フローの例を図５６、図５７に示す。図５６は、システム起動時などの際にレプリカを起動する場合の手順である。Ｓ６１にて、レプリカを動作させるプロセスを１つ選択する。プロセスを選択する基準としては、例えば、メモリ使用量の多い順などが考えられる。一般に、メモリ使用量の多いほうが、プロセスの起動に時間を要するため、プロセスの再割当が完了するまでに多くの時間がかかると考えられる。その他の方法としては、処理周期が短く、リソース割当に要する時間を短縮する必要があるものを選ぶ、という方法が考えられる。Ｓ６２にて、計算機負荷量収集部５より、全ての計算機１００のメモリ使用量を取得する。そしてＳ６３にて、プロセスが動作可能なだけの空きメモリ量を持つ計算機上でプロセスのレプリカを起動する。Ｓ６３にて、起動するレプリカの個数に関しては、全ての計算機上でレプリカを起動してもよいし、例えば空きメモリ量の大きい順に幾つか選択してレプリカを起動してもよいし、１つの計算機上だけで起動してもよい。
図５７は、システム運用中に、ある計算機１００のメモリが不足した場合のレプリカ管理部２５による動作を示した図である。メモリ不足発生時のメモリ使用量予測部２４の動作は別途説明する。Ｓ６０１にて、メモリ使用量予測部２４より、ある計算機のレプリカ停止要求が届くと、Ｓ６０２にて、指定された計算機１００上で動作するレプリカを停止させる。ここで、停止させるレプリカは、全て停止させてもよいし、メモリ使用量の多い順に停止させてもよいし、メモリ使用量の少ない順に停止させてもよい。そしてＳ６０３で、レプリカを停止させた計算機以外の計算機のメモリ使用量を計算機負荷量収集部５より取得し、Ｓ６０４で、停止させたレプリカが動作可能だけのメモリ空き容量を持つ計算機１００で、レプリカを再起動する。なおＳ６０４に関しては、Ｓ６０２で停止させた全レプリカについて実行する。
【００７４】
本実施の形態におけるメモリ使用量予測部２４の動作フローを図５８に示す。Ｓ６１１にて、Ｓ２２１からＳ２２４までを実行する。そして、メモリ不足が予測された場合、メモリ不足が発生しそうな計算機１００上でプロセスのレプリカが動作するかどうかを調べ、動作しているのであればＳ６１３に進み、レプリカ管理部２５にレプリカ停止を依頼し、レプリカを停止させる。そしてＳ６１４にて、メモリ不足が発生する時刻を再度求める。この場合のメモリ不足が発生する時刻を求める式は、Ｓ２２２で求めた式から停止させたレプリカが使用しているメモリ使用量だけ引くことによって求められる。例えば、Ｓ２２２で求めた式がｙ＝ａｘ＋ｂ（ｙ：処理時間、ｘ：時刻）であり、停止させたレプリカが使用していたメモリ使用量の総和がｃであった場合には、式はｙ＝ａｘ＋ｂ−ｃとなる。この式のｙに計算機の搭載メモリ量を与えることにより、メモリ不足が発生する時刻が求められる。Ｓ６１５にて、Ｓ２２３またはＳ６１４で求めたメモリ不足が発生する時刻と、現在時刻から、メモリ不足が発生するまでの残り時間を求める。そして、Ｓ６１６で、その計算機で動作するプロセスのレプリカが他の計算機で動作しているかどうかを調べる。レプリカが動作しているかどうかは、レプリカ管理部２５に問い合わせることで判る。レプリカが他の計算機上で動作していれば、Ｓ６１７にて、リソース再割付所要時間と１回の周期処理時間の和を求める。レプリカが動作していなければ、レプリカ再割付所要時間とプロセス起動所要時間と１回の周期処理時間の和を求める。そして、Ｓ６１７またはＳ６１８で求めた時間と、Ｓ６１５で求めた時間を比較し、Ｓ６１５で求めた時間のほうが短ければＳ６２０にて、デッドラインミス発生時刻予測部２１に、デッドラインミスが発生するプロセスと現在時刻を通知する。
【００７５】
本実施の形態における資源割当部６ｆの動作フローの例を図５９に示す。Ｓ６２１にて、移行プロセス決定部３から、リソース再割当の候補、リソース再割当対象となるプロセス１０１のリストが届くと、ＣＰＵ時間の長い順に並べ替え、テーブルに保持する。そして、Ｓ６２４以降の操作をテーブルが空になるまで実行する。
Ｓ６２４にて、Ｓ６２２のテーブルからプロセス名を１つ取り出し、Ｓ６２５にて、Ｓ６２４のプロセスのレプリカが動作する計算機１００の識別子をレプリカ管理部２５より取得し、ＣＰＵ使用率の高い順に並べ、テーブルに保持する。そして、Ｓ６２５で作成したテーブルに示される全計算機についてＳ６２７以降を実行する。まずＳ６２７にて、Ｓ６２５にて作成したテーブルから計算機名を取り出す。そして、Ｓ６２４で取り出したプロセスがＳ６２７で取り出した計算機上で動作できるかどうかを確認する。動作可能であればＳ６３１にて、ステップＳ６２７で選んだ計算機を割付先として決定し、Ｓ６３２にて、Ｓ６３１で決定した計算機上でプロセスを起動し、元の計算機で動作していたプロセスを停止させる。そしてＳ６３３にて、システム構成情報管理テーブル・メモリ７の、プロセスと計算機、現在の処理時間の情報を書き換える。そしてＳ６３４にて、Ｓ６２４で取り出したプロセスのレプリカを起動するよう要求する。そしてＳ６３６にて、Ｓ６２４で取り出したプロセスの名前をテーブルから削除し、テーブルから他のプロセスを選択して、Ｓ６２３以降を行う。またＳ６２９にて、Ｓ６２７で選んだ計算機に十分な空きＣＰＵがなかった場合には、Ｓ６２７に戻り、他の計算機についてＳ６２７〜Ｓ６２９を実行する。Ｓ６２５で作成したテーブル内の全ての計算機についてＳ６２７〜Ｓ６２９を実行し、かつ割当先が決定しなかった場合には、リソース再割当を断念し、Ｓ６３にて自プロセスを停止させ、Ｓ６３６にてＳ６２４で選択したプロセスをテーブルより削除し、他のプロセスについてＳ６２３以降を実施する。なお、レプリカが動作していない場合には、実施の形態３と同一の手順で動作を行うことになる。
【００７６】
本実施の形態における動的リソース制御システムまたは装置の全体の動作フローを図６０に示す。
Ｓ６５１にて、処理時間収集部２、計算機負荷量収集部５、デッドラインミス発生時刻予測部２１、メモリ使用量予測部２４が、デッドラインミスの発生、デッドラインミスの発生予測、計算機の異常、ＣＰＵ・メモリリソース不足、ＣＰＵ・メモリリソース不足の予測を移行プロセス決定部３に通知する。デッドラインミス発生の検出はＳ１１〜Ｓ１６の手順で行われ、デッドラインミスの発生予測の検出はＳ３１〜Ｓ３５の手順で行われる。計算機の異常検出、ＣＰＵ・メモリリソース不足の検出はＳ１０１１〜Ｓ１０１６の手順で行われ、ＣＰＵリソース不足の予測はＳ３１〜Ｓ３５の手順で行われる。メモリリソース不足の予測は、Ｓ３０１〜Ｓ３０５の手順で行われる。するとＳ６５２で、移行プロセス決定部３は、通知の内容を調査する。通知の内容が計算機の故障であればＳ６５５にて、故障した計算機上で動作していた全てのプロセスに対して、資源割当部６ｆはＳ３４１〜Ｓ３４７の手順でリソースの割当を行う。
計算機の故障でなければＳ６５５にて、デッドラインミス発生の原因と考えられるプロセス、リソース不足を発生させた原因と考えられるプロセスに対して、資源割当部６ｆがＳ６２１〜Ｓ６３４の手順でリソース割当を行う。Ｓ６５６にて、リソース割当終了後、資源割当部６ｆは、システム構成情報管理テーブル・メモリ７の、新規にリソース割当を行ったプロセスの識別子と、そのプロセスが動作する割当先計算機に関する情報などを書き換える。
【００７７】
即ち本実施の形態の計算機リソース動的制御システムは、実施の形態３の計算機リソース動的制御システム式に、以下の特徴を加えることにより、デッドラインミス発生までの残り時間が短い場合においてもデッドラインミスの発生を防止させることを特徴とする計算機リソース動的制御方式を示す。即ち、
６１）計算機負荷収集手段が持つデータを参照し、十分に空きリソース量がある計算機にプロセスのコピーをあらかじめ起動しておき、プロセスマイグレーションを行うプロセスのコピーが動作する計算機を資源割付手段に通知するレプリカ管理手段。
６２）実施の形態３の資源割付手段において、移行プロセス決定手段が決定したプロセスのコピーが動作している計算機をプロセスマイグレーション先となる計算機候補とし、計算機候補の中で十分な空きＣＰＵリソースを持つ計算機にプロセスマイグレーションを行う資源割付手段、を備える。
【００７８】
言い換えれば、本実施の形態における計算機リソース動的制御装置は実施の形態３の装置に加えて、選択した計算機に所定のプロセスの処理起動をかけて、及びプロセスの処理終了をさせて、これらの状態を管理するレプリカ管理部を備えて、
資源割当部は、再割当の勧告通知を受けると、上記選択した計算機に上記レプリカ管理部で起動をかけていて動作可能であれば、該動作可能な計算機に上記プロセスの割当を実行させることを特徴とする。
このように、レプリカ管理部２５によって各プロセスに対して予めそのプロセスのレプリカを起動し、待機させておくことにより、リソース再割当を開始してから実際にプロセスの処理を開始するまでの所要時間を短縮することができ、デッドラインミス発生やメモリ不足発生までの残り時間が短い場合においても短時間で移行処理を完了し、システムのハードリアルタイム処理を継続することが可能になる。
【００７９】
実施の形態７．
プロセスがパイプライン処理の一部を構成している場合は、パイプライン処理のステージの前後における処理に影響があるので、制約が加わる。こうした場合におけるデッドラインミスの発生は影響が広範囲になるので、適切な原因除去が必要である。本実施の形態においては、こうしたパイプライン処理における移行を説明する。
本実施の形態において、計算機リソース動的制御システムが適用対象とするプロセスの処理形態の一例を図６１に示す。図に示すように、１つの入力に対して複数のプロセスが連なって（以下パイプライン処理と呼ぶ）、各プロセスが順々に処理を行うことにより１回の周期処理が完了するものとする。また、この独立したパイプライン処理が複数個存在することにより、システムが構成されるものとする。パイプライン処理を構成する各プロセス１０１は、同一計算機１００上で動作する場合もあれば、それぞれ異なる計算機で動作する場合もある。なお、実施の形態１から実施の形態６で適用対象としているプロセスのように、単一のプロセスで処理が完結する場合は、本実施の形態ではパイプラインの長さ１のパイプライン処理を行っている。
本実施の形態におけるリソース動的制御システムの構成は実施の形態５と同じである。
本実施の形態における処理時間監視部１、計算機負荷監視部４、計算機負荷量収集部５、資源割当部６、処理時間履歴テーブル・メモリ８、計算機負荷履歴テーブル・メモリ９、計算機状態テーブル・メモリ１０の役割、構成は実施の形態１と同一であり、詳細説明を省略する。
【００８０】
本実施の形態におけるシステム構成情報管理テーブル・メモリ７ｇのデータ構成の例を図６２に示す。本実施の形態におけるシステム構成情報管理テーブル・メモリ７ｇは、実施の形態１に示す情報のほか、「パイプライン処理に関する情報」として、「パイプライン処理名」、「パイプライン処理を構成するプロセス」、「パイプライン処理のデッドライン」、「パイプライン処理の周期」が示される。例えば図６２では、パイプライン１というパイプライン処理を構成するプロセス群があり、パイプライン処理は、プロセスＡ、プロセスＢ、プロセスＣが順にデータを送信して処理を行うことによって実現し、プロセスＡからプロセスＣまでの処理を１秒以内に完了し、プロセスＡが処理を開始してから、次に処理を開始するまでの時間が２００ミリ秒であることを示している。
本実施の形態における処理時間収集部２は、実施の形態１に示す役割のほか、パイプライン処理の先頭の処理を行うプロセスの処理開始時刻、およびパイプライン処理の最後の処理を行うプロセスの処理終了時刻から１回のパイプライン処理に要する時間を求める役割を持つ。また、処理時間履歴テーブル・メモリ８に保有している全プロセスの処理時間の履歴を参照し、システムを構成するパイプライン処理が何回デッドラインミスを発生させているかを調査する。そして、許容可能な回数以上デッドラインミスが発生していた場合には、移行プロセス決定部３に、パイプライン処理において、デッドラインミスが規定回数以上発生している旨を通知する役割を持つ。パイプライン処理のデッドラインミスの回数は、パイプライン処理の先頭の処理を行うプロセスの処理開始時刻とパイプライン処理の最後の処理を行うプロセスの処理終了時刻を取得し、両方の値を引き、システム構成情報管理テーブルに示される「パイプライン処理のデッドライン」の値と比較することにより求められる。これを、処理時間履歴テーブルに示される全てのデータについて行うことになる。
【００８１】
本実施の形態における処理時間監視部１、計算機負荷監視部４、計算機負荷量収集部５の動作フローは実施の形態１と同一である。
本実施の形態における処理時間収集部２ｇの動作を図６３に示す。Ｓ７１で、処理時間監視部１からデータを受け取る。そしてＳ７２にて、処理時間履歴テーブル・メモリ８にデータを書き込む。Ｓ７２で書き込んだデータがパイプライン処理の最後に処理を行うプロセスの処理完了時刻であればＳ７４に進み、パイプライン処理の先頭の処理を行ったプロセスの、同一処理周期における処理開始時刻を求める。Ｓ７５にて、同様に、パイプライン処理の最後の処理を行ったプロセスの、同一処理周期における処理完了時刻を求める。そしてＳ７６にて、Ｓ７４とＳ７５から、パイプライン処理の１回の処理時間を求め、デッドラインミスが発生しているかどうかを調べる。デッドラインミスが発生していれば、処理時間履歴テーブル・メモリ８に残されたデータ中に何回デッドラインミスが発生しているのかを調べ、規定回数以上デッドラインミスが発生していれば、移行プロセス決定部３に通知する。そしてＳ７９にて、各プロセスにおける次の周期の処理データを格納するために、処理時間履歴テーブルのエントリを１つ先に勧める。Ｓ７３にて、書き込んだデータがパイプライン処理の最後に処理を行うプロセスのデータでない場合、またはＳ７６にて、デッドラインミスが発生していなければ、Ｓ７９に直接進む。
【００８２】
本実施の形態における移行プロセス決定部３ｇの動作を図６４に示す。
Ｓ７０１にて、処理時間収集部２からパイプライン処理のデッドラインミス通知が届くと、Ｓ７０２にて、デッドラインミスが発生したパイプライン処理を構成するプロセス名の一覧を取得する。そしてＳ７０３にて、Ｓ７０２で取得した全プロセスについて処理時間が大きく増加しているプロセスを見つけ出す。この見つけ出したプロセスをデッドラインミス発生の原因となったプロセスとみなす。デッドラインミス発生の原因となったプロセスは複数ある場合も考えられる。Ｓ７０３で見つけた全プロセスについて、Ｓ７０４以下を実行する。Ｓ７０５にて、Ｓ７０３で見つけ出した各プロセスから１つ選択し、Ｓ７０６にて、そのプロセスが動作する計算機を見つけ出し、Ｓ７０７にて、Ｓ７０４で見つけ出した計算機上で動作する他のプロセスを見つけ出す。そしてＳ７０８にて、Ｓ７０６にて見つけ出した計算機が正常に動作するかどうかを調べ、正常に動作するのであれば、Ｓ７０７で見つけたプロセスのうち、ＣＰＵ時間が最も増加しているプロセス、または、Ｓ７０５のプロセスをリソース再割当の候補とする。この場合、Ｓ７０７において最もＣＰＵ時間が増加しているプロセスか、Ｓ７０５のプロセスのどちらかについてリソース再割当ができればよい。そしてＳ７１０にて、資源割当部６に通知する。Ｓ７０８にて計算機が正常に動作していなければ、Ｓ７１１に進み、Ｓ７０７で見つけた全てのプロセスをリソース再割当の対象とし、資源割当部６に通知する。
【００８３】
本実施の形態における、全ての構成要素の連携によって動作する動的リソース管理システムまたは装置の動作フローの例を図６５に示す。
Ｓ７１１で、処理時間収集部２ｇ、または、計算機負荷量収集部５が、パイプライン処理のデッドラインミスの発生、計算機故障、メモリ不足の発生、などを移行プロセス決定部３に通知する。処理時間収集部２ｇはＳ７１〜Ｓ７９の手順でデッドラインミスの発生を検出し、計算機負荷量収集部５は、Ｓ１０１１〜Ｓ１０１９の手順で計算機故障、メモリ・ＣＰＵリソース不足を検出する。
するとＳ７１２で、移行プロセス決定部３ｇは、通知の内容を解析し、原因が計算機故障であればＳ７１６に進み、資源割当部６がＳ１２１〜Ｓ１３６の手順で、故障していた計算機上で動作していたプロセスを他の計算機上で再起動させる。原因が故障でなければ、移行プロセス決定部３ｇがＳ７１４にてＳ７０１〜Ｓ７１０の手順でデッドラインミス発生、リソース不足の発生の原因と考えられるプロセスを見つけ出し、Ｓ７１５で、そのプロセスに対して、資源割当部６が、Ｓ１２１〜Ｓ１３６の手順でリソースの再割り当てを行う。そしてＳ７１７にて、システム構成テーブル・メモリ７ｇの、リソース再割り当てが行われた計算機などに関する情報を書き換える。
【００８４】
即ち本実施の形態の計算機リソース動的制御方式は、実施の形態１の計算機リソース動的制御方式に以下の特徴を加えることにより、パイプライン状に複数のプロセスが連なって、各プロセスが順々に処理を行うことにより１回の周期処理が完了するような処理において、処理にデッドライン時間が与えられている場合に、デッドラインミスが発生した場合にデッドライン発生の原因となるプロセスのマイグレーションを行うことにより、本形状の処理のデッドラインミス継続を防止することを特徴とする計算機リソース動的制御方式である。即ち、
７１）実施の形態１のシステム構成情報管理テーブルに加え、１つの周期処理を行うプロセス群、周期処理時間、処理の制限時間、処理名を保持するシステム構成情報管理テーブル。
７２）実施の形態１の処理時間収集手段において、複数のプロセスによって構成された一連の処理全体の所要時間を求め、デッドラインミスが発生した場合に移行プロセス決定手段に通知する処理時間収集手段。
７３）実施の形態１の移行プロセス決定手段において、処理時間収集手段から通知が届いた場合に、一連の処理を構成する全プロセスの処理時間の変動を調査することによって、デッドラインミス発生の原因となったプロセスを求め、資源割付手段にそのプロセスを通知する移行プロセス決定手段、を備える。
【００８５】
言い換えると、本実施の形態における計算機リソース動的制御装置は実施の形態１の装置に加えて、システム構成情報テーブル・メモリは、パイプライン処理を構成するプロセス名とデッドライン時間を記憶し、
移行プロセス決定部は、デッドラインミスの発生、または発生予測を受けると、上記システム構成情報テーブル・メモリを参照して上記発生の原因となるパイプライン処理のプロセスを特定し、勧告を行うことを特徴とする。
このように、本実施の形態により、複数のプロセスで構成されたパイプライン処理にデッドラインが与えられた場合において、パイプライン処理にデッドラインミスが発生した場合においてもその原因を取り除き、デッドラインミス解消が可能となる。
なお、上記の各実施の形態を組合わせた実施の形態であってもよく、その場合は各実施の形態で述べられた特徴を組合わせた効果が得られる。
【図面の簡単な説明】
【００８６】
【図１】この発明の実施の形態１における計算機リソース動的制御システムの構成を示す図である。
【図２】実施の形態１における計算機リソース動的制御装置の構成を示す図である。
【図３】実施の形態１における処理時間監視部の機能を説明する図である。
【図４】実施の形態１における処理時間収集部の機能を説明する図である。
【図５】実施の形態１における処理時間収集部の機能を説明する図である。
【図６】実施の形態１における処理時間収集部の機能を説明する図である。
【図７】実施の形態１における移行プロセス決定部の機能を説明する図である。
【図８】実施の形態１における計算機負荷監視部の機能を説明する図である。
【図９】実施の形態１における計算機負荷量収集部の機能を説明する図である。
【図１０】実施の形態１における計算機負荷量収集部の機能を説明する図である。
【図１１】実施の形態１における計算機負荷量収集部の機能を説明する図である。
【図１２】実施の形態１における計算機負荷量収集部の機能を説明する図である。
【図１３】実施の形態１における資源割当部の機能を説明する図である。
【図１４】実施の形態１におけるシステム構成情報管理テーブルのデータ構成例を示す図である。
【図１５】実施の形態１における処理時間履歴テーブルのデータ構成例を示す図である。
【図１６】実施の形態１における計算機負荷履歴テーブルのデータ構成例を示す図である。
【図１７】実施の形態１における計算機状態テーブルのデータ構成例を示す図である。
【図１８】実施の形態１における処理時間監視部の動作フローを示す図である。
【図１９】実施の形態１における処理時間収集部の動作フローを示す図である。
【図２０】実施の形態１における計算機負荷監視部の動作フローを示す図である。
【図２１】実施の形態１における計算機負荷量収集部の動作フローを示す図である。
【図２２】実施の形態１における移行プロセス決定部の動作フローを示す図である。
【図２３】実施の形態１における移行プロセス決定部の動作フローを示す図である。
【図２４】実施の形態１における資源割当部の動作フローを示す図である。
【図２５】実施の形態１における計算機リソース動的制御装置、システムが行う総合動作フローを示す図である。
【図２６】この発明の実施の形態２における計算機リソース動的制御システムの構成を示す図である。
【図２７】実施の形態２における計算機リソース動的制御装置の構成を示す図である。
【図２８】実施の形態２におけるデッドラインミス発生時刻予測部の機能を説明する図である。
【図２９】実施の形態２における計算機負荷予測部の機能を説明する図である。
【図３０】実施の形態２におけるＣＰＵ時間予測部の機能を説明する図である。
【図３１】実施の形態２におけるメモリ使用量予測部の機能を説明する図である。
【図３２】実施の形態２におけるデッドラインミス発生時刻予測部の動作フローを示す図である。
【図３３】実施の形態２における計算機負荷予測部の動作フローを示す図である。
【図３４】実施の形態２におけるＣＰＵ時間予測部の動作フローを示す図である。
【図３５】実施の形態２におけるメモリ使用量予測部の動作フローを示す図である。
【図３６】実施の形態２における移行プロセス決定部の動作フローを示す図である。
【図３７】実施の形態２における移行プロセス決定部の動作フローを示す図である。
【図３８】実施の形態２における資源割当部の動作フローを示す図である。
【図３９】実施の形態２における計算機リソース動的制御装置、システムが行う総合動作フローを示す図である。
【図４０】この発明の実施の形態３におけるシステム構成情報管理テーブルのデータ構成例を示す図である。
【図４１】実施の形態３におけるデッドラインミス発生時刻予測部の動作フローを示す図である。
【図４２】実施の形態３におけるメモリ使用量予測部の動作フローを示す図である。
【図４３】実施の形態３における計算機負荷予測部の動作フローを示す図である。
【図４４】実施の形態３における移行プロセス決定部の動作フローを示す図である。
【図４５】実施の形態３における移行プロセス決定部の動作フローを示す図である。
【図４６】実施の形態３における資源割当部の動作フローを示す図である。
【図４７】実施の形態３における計算機リソース動的制御装置、システムが行う総合動作フローを示す図である。
【図４８】この発明の実施の形態４におけるシステム構成情報管理テーブルのデータ構成例を示す図である。
【図４９】実施の形態４における資源割当部の動作フローを示す図である。
【図５０】実施の形態４における計算機リソース動的制御装置、システムが行う総合動作フローを示す図である。
【図５１】この発明の実施の形態５におけるシステム構成情報管理テーブルのデータ構成例を示す図である。
【図５２】実施の形態５における資源割当部の動作フローを示す図である。
【図５３】実施の形態５における計算機リソース動的制御装置、システムが行う総合動作フローを示す図である。
【図５４】この発明の実施の形態６における計算機リソース動的制御システムの構成を示す図である。
【図５５】実施の形態６における計算機リソース動的制御装置の構成を示す図である。
【図５６】実施の形態６におけるレプリカ管理部の動作フローを示す図である。
【図５７】実施の形態６におけるレプリカ管理部の動作フローを示す図である。
【図５８】実施の形態６におけるメモリ使用量予測部の動作フローを示す図である。
【図５９】実施の形態６における資源割当部の動作フローを示す図である。
【図６０】実施の形態６における計算機リソース動的制御装置、システムが行う総合動作フローを示す図である。
【図６１】この発明の実施の形態７における計算機リソース動的制御システムが対象とするプロセスの例を示す図である。
【図６２】実施の形態７におけるシステム構成情報管理テーブルのデータ構成例を示す図である。
【図６３】実施の形態７における処理時間収集部の動作フローを示す図である。
【図６４】実施の形態７における移行プロセス決定部の動作フローを示す図である。
【図６５】実施の形態７における計算機リソース動的制御装置、システムが行う総合動作フローを示す図である。
【符号の説明】
【００８７】
１  処理時間監視部、２  処理時間収集部、２ｂ  処理時間収集・予測部、３  移行プロセス決定部、４  計算機負荷監視部、５  計算機負荷量収集部、５ｂ  計算機負荷量収集・予測部、６  資源割当部、７  システム構成情報管理テーブル・メモリ、８  処理時間履歴テーブル・メモリ、９  計算機負荷履歴テーブル・メモリ、１０  計算機状態テーブル・メモリ、１１  プロセッサ（ＣＰＵ）、１２  メモリ、１３  入力装置、１４  出力装置、１５  通信インタフェース、１６  内部バス、２１  デッドラインミス発生時刻予測部、２２  計算機負荷予測部、２３  ＣＰＵ時間予測部、２４  メモリ使用量予測部、２５  レプリカ管理部、１００  計算機、１００ａ，１００ｂ，１００ｃ  計算機リソース動的制御装置、１０１  プロセス。
【図１】
0004523921.tif 000002
【図２】
0004523921.tif 000003
【図３】
0004523921.tif 000004
【図４】
0004523921.tif 000005
【図５】
0004523921.tif 000006
【図６】
0004523921.tif 000007
【図７】
0004523921.tif 000008
【図８】
0004523921.tif 000009
【図９】
0004523921.tif 000010
【図１０】
0004523921.tif 000011
【図１１】
0004523921.tif 000012
【図１２】
0004523921.tif 000013
【図１３】
0004523921.tif 000014
【図１４】
0004523921.tif 000015
【図１５】
0004523921.tif 000016
【図１６】
0004523921.tif 000017
【図１７】
0004523921.tif 000018
【図１８】
0004523921.tif 000019
【図１９】
0004523921.tif 000020
【図２０】
0004523921.tif 000021
【図２１】
0004523921.tif 000022
【図２２】
0004523921.tif 000023
【図２３】
0004523921.tif 000024
【図２４】
0004523921.tif 000025
【図２５】
0004523921.tif 000026
【図２６】
0004523921.tif 000027
【図２７】
0004523921.tif 000028
【図２８】
0004523921.tif 000029
【図２９】
0004523921.tif 000030
【図３０】
0004523921.tif 000031
【図３１】
0004523921.tif 000032
【図３２】
0004523921.tif 000033
【図３３】
0004523921.tif 000034
【図３４】
0004523921.tif 000035
【図３５】
0004523921.tif 000036
【図３６】
0004523921.tif 000037
【図３７】
0004523921.tif 000038
【図３８】
0004523921.tif 000039
【図３９】
0004523921.tif 000040
【図４０】
0004523921.tif 000041
【図４１】
0004523921.tif 000042
【図４２】
0004523921.tif 000043
【図４３】
0004523921.tif 000044
【図４４】
0004523921.tif 000045
【図４５】
0004523921.tif 000046
【図４６】
0004523921.tif 000047
【図４７】
0004523921.tif 000048
【図４８】
0004523921.tif 000049
【図４９】
0004523921.tif 000050
【図５０】
0004523921.tif 000051
【図５１】
0004523921.tif 000052
【図５２】
0004523921.tif 000053
【図５３】
0004523921.tif 000054
【図５４】
0004523921.tif 000055
【図５５】
0004523921.tif 000056
【図５６】
0004523921.tif 000057
【図５７】
0004523921.tif 000058
【図５８】
0004523921.tif 000059
【図５９】
0004523921.tif 000060
【図６０】
0004523921.tif 000061
【図６１】
0004523921.tif 000062
【図６２】
0004523921.tif 000063
【図６３】
0004523921.tif 000064
【図６４】
0004523921.tif 000065
【図６５】
0004523921.tif 000066