(57)【要約】【課題】プロセスの処理時間に変動が生じた場合に、プロセスの起動条件を再構築することができるシステムを提供する。【解決手段】対象プロセス毎に、基本プロセス識別情報、並列起動不可プロセス識別情報、並列起動不可プロセス起動順序及び平均起動時間を含むプロセス起動情報を記憶する記憶手段と、複数のプロセスを起動した結果得られる各プロセスの起動時間と、前記記憶されている各プロセスの平均起動時間とから、各プロセスの起動時間の重み付け平均を計算する計算手段と、前記計算により得られる計算結果によって、前記記憶されている各プロセスの平均起動時間を更新する更新手段と、前記更新された各プロセスの平均起動時間、前記基本プロセス識別情報及び前記並列起動不可プロセス識別情報に基づいて、複数のプロセスの総起動時間が最も短くなるように並列起動不可プロセス起動順序を再決定する再決定手段を備える。【選択図】図１
2011065241.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセスの起動条件を算出するプロセス起動条件算出システムであって、
対象プロセス毎に、当該対象プロセスの起動時に既に起動していることが必須のプロセスを表す基本プロセス識別情報と、当該対象プロセスと並列起動することができない並列起動不可プロセスを表す並列起動不可プロセス識別情報と、当該対象プロセスと当該並列起動不可プロセスとの起動順序を表す並列起動不可プロセス起動順序と、当該対象プロセスの平均起動時間とを含むプロセス起動情報を記憶する記憶手段と、
前記記憶手段に記憶されているプロセス起動情報に従って前記複数のプロセスを起動した結果得られる各プロセスの起動時間と、前記記憶手段に記憶されている各プロセスの平均起動時間に対して、それぞれ重みを付与することにより、各プロセスの起動時間の重み付け平均を計算する重み付け平均計算手段と、
前記重み付け平均計算手段により得られる計算結果によって、前記記憶手段に記憶されている各プロセスの平均起動時間を更新する平均起動時間更新手段と、
前記平均起動時間更新手段により更新された各プロセスの平均起動時間、前記基本プロセス識別情報及び前記並列起動不可プロセス識別情報に基づいて、前記複数のプロセスを起動した場合の総起動時間が最も短くなるように、前記並列起動不可プロセス起動順序を再決定する起動順序再決定手段と、
を備えることを特徴とするプロセス起動条件算出システム。
【請求項２】
前記起動順序再決定手段は、
前記並列起動不可プロセス起動順序に無を設定した場合に、前記基本プロセス識別情報と前記並列起動不可プロセス識別情報とに基づいて、当該並列起動不可プロセス起動順序が取り得る複数の起動順序パターンを生成するパターン生成手段と、
前記パターン生成手段により生成された各起動順序パターンについて、当該起動順序パターンに規定された並列起動不可プロセス起動順序、前記更新された各プロセスの平均起動時間、前記基本プロセス識別情報及び前記並列起動不可プロセス識別情報に基づいて、前記複数のプロセスを起動した場合の総起動時間をそれぞれ算出する総起動時間算出手段と、
前記パターン生成手段により生成された複数の起動順序パターンの中から、前記総起動時間算出手段により算出された総起動時間が最も短い起動順序パターンを選択し、当該選択した起動順序パターンに規定された並列起動不可プロセス起動順序を、次回用いられる並列起動不可プロセス起動順序として選択する選択手段と、を有することを特徴する請求項１に記載のプロセス起動条件算出システム。
【請求項３】
前記重み付け平均計算手段は、
前記記憶手段に記憶されている平均起動時間の重みが、前記起動した結果得られる各プロセスの起動時間の重みよりも大きくなるように、前記重みを付与することを特徴とする請求項１または２に記載のプロセス起動条件算出システム。
【請求項４】
複数のプロセスの起動条件を算出するシステムにおけるプロセス起動条件算出方法であって、
対象プロセス毎に、当該対象プロセスの起動時に既に起動していることが必須のプロセスを表す基本プロセス識別情報と、当該対象プロセスと並列起動することができない並列起動不可プロセスを表す並列起動不可プロセス識別情報と、当該対象プロセスと当該並列起動不可プロセスとの起動順序を表す並列起動不可プロセス起動順序と、当該対象プロセスの平均起動時間とを含むプロセス起動情報を記憶する記憶手段と、
前記記憶手段に記憶されているプロセス起動情報に従って前記複数のプロセスを起動した結果得られる各プロセスの起動時間と、前記記憶手段に記憶されている各プロセスの平均起動時間に対して、それぞれ重みを付与することにより、各プロセスの起動時間の重み付け平均を計算する重み付け平均計算ステップと、
前記重み付け平均計算ステップにより得られる計算結果によって、前記記憶手段に記憶されている各プロセスの平均起動時間を更新する平均起動時間更新ステップと、
前記平均起動時間更新ステップにより更新された各プロセスの平均起動時間、前記基本プロセス識別情報及び前記並列起動不可プロセス識別情報に基づいて、前記複数のプロセスを起動した場合の総起動時間が最も短くなるように、前記並列起動不可プロセス起動順序を再決定する起動順序再決定ステップと、
を備えることを特徴とするプロセス起動条件算出方法。
【請求項５】
前記起動順序再決定ステップは、
前記並列起動不可プロセス起動順序に無を設定した場合に、前記基本プロセス識別情報と前記並列起動不可プロセス識別情報とに基づいて、当該並列起動不可プロセス起動順序が取り得る複数の起動順序パターンを生成するパターン生成ステップと、
前記パターン生成ステップにより生成された各起動順序パターンについて、当該起動順序パターンに規定された並列起動不可プロセス起動順序、前記更新された各プロセスの平均起動時間、前記基本プロセス識別情報及び前記並列起動不可プロセス識別情報に基づいて、前記複数のプロセスを起動した場合の総起動時間をそれぞれ算出する総起動時間算出ステップと、
前記パターン生成ステップにより生成された複数の起動順序パターンの中から、前記総起動時間算出ステップにより算出された総起動時間が最も短い起動順序パターンを選択し、当該選択した起動順序パターンに規定された並列起動不可プロセス起動順序を、次回用いられる並列起動不可プロセス起動順序として選択する選択ステップと、を有することを特徴する請求項４に記載のプロセス起動条件算出方法。
【請求項６】
前記重み付け平均計算ステップは、
前記記憶手段に記憶されている平均起動時間の重みが、前記起動した結果得られる各プロセスの起動時間の重みよりも大きくなるように、前記重みを付与することを特徴とする請求項４または５に記載のプロセス起動条件算出方法。
【請求項７】
コンピュータを、
複数のプロセスの起動条件を算出するプロセス起動条件算出システムであって、
対象プロセス毎に、当該対象プロセスの起動時に既に起動していることが必須のプロセスを表す基本プロセス識別情報と、当該対象プロセスと並列起動することができない並列起動不可プロセスを表す並列起動不可プロセス識別情報と、当該対象プロセスと当該並列起動不可プロセスとの起動順序を表す並列起動不可プロセス起動順序と、当該対象プロセスの平均起動時間とを含むプロセス起動情報を記憶する記憶手段と、
前記記憶手段に記憶されているプロセス起動情報に従って前記複数のプロセスを起動した結果得られる各プロセスの起動時間と、前記記憶手段に記憶されている各プロセスの平均起動時間に対して、それぞれ重みを付与することにより、各プロセスの起動時間の重み付け平均を計算する重み付け平均計算手段と、
前記重み付け平均計算手段により得られる計算結果によって、前記記憶手段に記憶されている各プロセスの平均起動時間を更新する平均起動時間更新手段と、
前記平均起動時間更新手段により更新された各プロセスの平均起動時間、前記基本プロセス識別情報及び前記並列起動不可プロセス識別情報に基づいて、前記複数のプロセスを起動した場合の総起動時間が最も短くなるように、前記並列起動不可プロセス起動順序を再決定する起動順序再決定手段と、して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセスの起動条件を算出するシステムに関する。
【背景技術】
【０００２】
起動条件が個々に異なる複数のプロセスを起動する技術が知られている。特許文献１には、予め設定された、動作の仕様を表す処理順序情報と、動作を構成する各処理の依存関係を表す依存関係情報と、各処理の実行時間を表す処理時間情報とを用いて、各処理の実行開始時刻と実行終了時刻を求める評価装置が記載されている。
【０００３】
また、特許文献２には、複数のジョブを並列して実行する複数のプロセッサを有する情報処理システムに接続される解析装置が、ジョブデータに対応するジョブの実行時間に関するシミュレーションを行い、ジョブが情報処理装置に投入されてから終了するまでのターンアラウンドタイムを演算することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２５１３０３号公報
【特許文献２】特開２００６−０４００１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述した特許文献１記載の評価装置は、シミュレーションを実行する代わりに、評価に必要な処理順序情報や処理時間情報等を外部から与えることで、各処理の実行開始時刻と実行終了時刻を高速に求めようとするものであるから、処理順序情報や処理時間情報等は予め既に設定されており、処理順序情報を変更することなどは想定されていない。
【０００６】
また、特許文献２記載の解析装置は、各ジョブを仮想的実行条件下で実行することにより各ジョブの仮想的な実行時間を算出するものであるが、仮想的実行条件は、ジョブを実行するホスト側の条件に関するものであるから、ジョブ間の依存関係や起動順序を変更したりするものではない。
【０００７】
しかしながら、複数のプロセスを起動する際の順序は、プロセス間の依存関係に応じた起動順序や各プロセスの処理時間等を考慮してプロセス全体の処理が最も効率的になるように決定されるところ、例えば、プロセスの処理時間は、処理データや実行環境又はシステム構成変更等の理由により変動する場合がある。従って、例えば、あるプロセスの処理時間が、システム構成変更等の理由により、これまで想定していた処理時間よりも長くなるかあるいは短くなるような場合には、これに応じて、プロセス間の起動順序も再構築することが望ましい。
【０００８】
そこで、本発明の目的は、プロセスの処理時間に変動が生じた場合に、各プロセスの起動順序を再構築することができるプロセス起動条件算出システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係るプロセス起動条件算出システムは、複数のプロセスの起動条件を算出するプロセス起動条件算出システムであって、対象プロセス毎に、当該対象プロセスの起動時に既に起動していることが必須のプロセスを表す基本プロセス識別情報と、当該対象プロセスと並列起動することができない並列起動不可プロセスを表す並列起動不可プロセス識別情報と、当該対象プロセスと当該並列起動不可プロセスとの起動順序を表す並列起動不可プロセス起動順序と、当該対象プロセスの平均起動時間とを含むプロセス起動情報を記憶する記憶手段をそなえる。また、前記記憶手段に記憶されているプロセス起動情報に従って前記複数のプロセスを起動した結果得られる各プロセスの起動時間と、前記記憶手段に記憶されている各プロセスの平均起動時間に対して、それぞれ重みを付与することにより、各プロセスの起動時間の重み付け平均を計算する重み付け平均計算手段と、前記重み付け平均計算手段により得られる計算結果によって、前記記憶手段に記憶されている各プロセスの平均起動時間を更新する平均起動時間更新手段と、前記平均起動時間更新手段により更新された各プロセスの平均起動時間、前記基本プロセス識別情報及び前記並列起動不可プロセス識別情報に基づいて、前記複数のプロセスを起動した場合の総起動時間が最も短くなるように、前記並列起動不可プロセス起動順序を再決定する起動順序再決定手段と、備える。
【００１０】
また、本発明は、対象プロセス毎に、当該対象プロセスの起動時に既に起動していることが必須のプロセスを表す基本プロセス識別情報と、当該対象プロセスと並列起動することができない並列起動不可プロセスを表す並列起動不可プロセス識別情報と、当該対象プロセスと当該並列起動不可プロセスとの起動順序を表す並列起動不可プロセス起動順序と、当該対象プロセスの平均起動時間とを含むプロセス起動情報を記憶する記憶手段を備えるシステムにおけるプロセス起動条件算出方法としても成立する。プロセス起動条件算出方法は、前記記憶手段に記憶されているプロセス起動情報に従って前記複数のプロセスを起動した結果得られる各プロセスの起動時間と、前記記憶手段に記憶されている各プロセスの平均起動時間に対して、それぞれ重みを付与することにより、各プロセスの起動時間の重み付け平均を計算する重み付け平均計算ステップと、前記重み付け平均計算ステップにより得られる計算結果によって、前記記憶手段に記憶されている各プロセスの平均起動時間を更新する平均起動時間更新ステップと、前記平均起動時間更新ステップにより更新された各プロセスの平均起動時間、前記基本プロセス識別情報及び前記並列起動不可プロセス識別情報に基づいて、前記複数のプロセスを起動した場合の総起動時間が最も短くなるように、前記並列起動不可プロセス起動順序を再決定する起動順序再決定ステップと、を備える。
【００１１】
また、本発明は、本発明のプロセス起動条件算出方法の各処理ステップをコンピュータに実行させるプログラムとしても成立する。本発明のプログラムは、ＣＤ−ＲＯＭ等の光学ディスク、磁気ディスク、半導体メモリなどの各種の記録媒体を通じて、又は通信ネットワークなどを介してダウンロードすることにより、コンピュータにインストール又はロードすることができる。
【発明の効果】
【００１２】
本発明のプロセス起動システムによれば、プロセスの処理時間に変動が生じた場合に、各プロセスの起動条件を再構築することができるプロセス起動条件算出システムを提供することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係るシステムの概要を説明するための図である。
【図２】並列起動不可プロセス起動順序の算出処理の流れを示すフローチャートである。
【図３】プロセス起動処理について説明する図である。
【図４】並列起動不可プロセス起動順序の変更前と変更後の全プロセス起動時間の比較を説明する図である。
【図５】プロセス処理情報311のデータの一例を示す図である。
【図６】プロセス情報テーブルの一例を示す図である。
【図７】プロセス情報テーブルの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。
【００１５】
［システムの概略構成］
図１は、本発明に係るプロセス起動条件算出システムが適用されたプロセス起動システムの概略構成を示すブロック図である。プロセス起動システムは、操作端末101とデータ処理装置102とを含んで構成される。
【００１６】
データ処理装置102は、主に、起動コマンドプロセス201、プロセス起動情報記憶手段202、プロセス（起動対象）203を備える。なお、プロセスは、処理、動作などとも呼ばれる。ここで、データ処理装置102は、データ処理装置102の動作を制御するＣＰＵ、ＲＯＭやＲＡＭ等のメモリ、各種の情報を格納する外部記憶装置、入力インタフェース、出力インタフェース、通信インタフェース及びこれらを結ぶバスを備える専用又は汎用のコンピュータを適用することができる。例えば、データ処理装置102は、ＣＰＵが、メモリまたは外部記憶装置などに記憶された所定のプログラムを実行することにより、後述する機能実現手段として機能する。また、データ処理装置102は、単一のコンピュータより構成されるものであっても、ネットワーク上に分散した複数のコンピュータより構成されるものであってもよい。
【００１７】
起動コマンドプロセス201は、起動情報取得手段301、プロセス起動手段302、プロセス確認手段303、プロセス起動出力手段304、プロセス平均起動時間更新手段305、プロセス起動順序算出手段306、プロセス起動情報出力手段307、プロセス終了手段308、プロセス処理情報記憶手段309などを備える。
【００１８】
プロセス起動情報記憶手段202は、例えばメインファイルであり、プロセス毎にプロセス起動情報（プロセス起動情報ファイル）401を格納する。プロセス起動情報401には、例えば、基本プロセス、並列起動不可プロセス、並列起動不可プロセス起動順序、プロセス平均起動時間などが含まれる。基本プロセス（又は「基本プロセス識別情報」という）には、対象プロセスの起動時に、起動していることが必須のプロセス（以下「基本プロセス」という）の識別情報が格納される。並列起動不可プロセス（又は「並列起動不可プロセス識別情報」という）には、対象プロセスと並列起動が出来ないプロセス（以下、「並列起動不可プロセス」という）の識別情報が格納される。並列起動不可プロセス起動順序には、対象プロセスの起動時に起動していることが必須の並列起動不可プロセスの識別情報が格納される。プロセス平均起動時間は、対象プロセスの過去の起動時間である。なお、本実施形態において起動時間は、処理時間と同じ意味である。
【００１９】
一方、起動コマンドプロセス201に含まれるプロセス処理情報記憶手段309は、プロセス毎にプロセス処理情報（プロセス処理情報ファイル）311が格納され、このプロセス処理情報311には、プロセス起動情報、プロセス状態、プロセス起動時間、プロセス総起動時間が含まれる。プロセス処理情報311に含まれるプロセス起動情報は、プロセス起動情報401と同様に、基本プロセス、並列起動不可プロセス起動順序、並列起動不可プロセス、プロセス平均起動時間を主に含む。プロセス状態には、プロセスの状態（起動中or処理中 or未処理（初期値））が格納される。プロセス起動時間には、プロセス起動が成功した場合の起動時間が格納される。起動番号には、並列起動不可プロセス起動時の、起動順序の番号が格納される。プロセス総起動時間には、全プロセスが未起動時からプロセス起動が成功するまでの時間が格納される。
【００２０】
操作端末101は、画面上でユーザが起動コマンドを入力可能に構成されており、起動コマンドが入力されると、起動コマンドプロセス201を起動する。プロセス起動出力手段304は、プロセス起動メッセージを受信し、画面に出力する。
【００２１】
起動コマンドプロセス201は、操作端末101により起動され、各プロセス（起動対象）203を起動する。
【００２２】
起動情報取得手段301は、起動コマンドプロセス201が起動されたら、プロセス起動情報記憶手段202から各プロセス（起動対象）の起動情報ファイル401を取得し、プロセス処理情報記憶手段309のプロセス処理情報311にプロセス起動情報401を書き込む。起動情報取得手段301は、プロセス（起動対象）の起動情報ファイル401をプロセス処理情報記憶手段309に展開後、プロセス起動手段302にプロセス起動通知を送信する。
【００２３】
プロセス起動手段302は、起動情報取得手段301からプロセス起動通知を受け付けると、プロセス起動情報記憶手段202の並列起動不可プロセスと、プロセス処理情報記憶手段309のプロセス処理情報311を取得する。
【００２４】
プロセス起動手段302は、プロセス起動手段302によって取得された並列起動不可プロセスとプロセス状態に基づいて、プロセス状態が未処理のプロセス、基本プロセスのプロセスが起動中のプロセス、及び、並列起動不可プロセス起動順序のプロセスが起動中のプロセスを特定し、特定した全てのプロセスに対して、起動を行う。また、プロセスの起動後、プロセス状態を処理中に変更し、プロセス確認手段303に起動したプロセスのプロセス確認通知を送信する。
【００２５】
プロセス確認手段303は、プロセス起動手段302からプロセス確認通知を受けると、プロセス状態が処理中のプロセス及び起動対象プロセスのプロセス処理情報記憶手段309をチェックする。起動対象プロセスの起動が確認できた場合は、当該確認できた起動対象プロセスのプロセス処理情報311中のプロセス状態を起動中に変更し、プロセス起動時間に起動にかかった時間を書き込む。プロセス起動が成功した場合は、プロセス起動出力手段304にプロセス起動完了通知を送信する。
【００２６】
プロセス起動出力手段304は、プロセス確認手段303からプロセス起動完了通知を受けると、操作端末101にプロセス起動メッセージを出力する。プロセス起動メッセージの出力後、全プロセスのプロセス処理情報311をチェックし、起動中以外のプロセスがある場合は、プロセス起動手段302にプロセス起動を通知する。全プロセスが起動した場合はプロセス平均起動時間更新手段305に全プロセス起動処理完了通知を送信する。
【００２７】
プロセス平均起動時間更新手段305は、プロセス起動情報記憶手段202に記憶されているプロセス起動情報に従って、複数のプロセスを起動した結果得られる各プロセスの起動時間と、プロセス起動情報記憶手段202に記憶されている各プロセスの平均起動時間に対して、それぞれ重みを付与することにより、各プロセスの起動時間の重み付け平均を計算する重み付け平均計算手段、及び、この重み付け平均計算手段により得られる計算結果によって、プロセス起動情報記憶手段202に記憶されている各プロセスの平均起動時間を更新する平均起動時間更新手段して機能する。具体的には、プロセス平均起動時間更新手段305は、プロセス起動出力手段304から全プロセス起動処理完了通知を受け付けると、プロセス起動情報記憶手段202のプロセス起動情報401のプロセス平均起動時間と、プロセス起動出力手段304の起動結果により得られるプロセス起動時間とに、それぞれ重みづけをして平均を計算し、プロセス平均起動時間を更新する。なお、計算方法の一例は、後述する。プロセス平均起動時間を更新後、プロセス起動順序算出手段306に更新完了通知を送信する。
【００２８】
プロセス起動順序算出手段306は、プロセス平均起動時間更新手段305により更新された各プロセスの平均起動時間、プロセス起動情報記憶手段202の基本プロセス識別情報及び並列起動不可プロセス識別情報に基づいて、複数のプロセスを起動した場合の総起動時間が最も短くなるように、並列起動不可プロセス起動順序を再決定する起動順序再決定手段として機能する。具体的には、プロセス起動順序算出手段306は、並列起動不可プロセス起動順序に無を設定した場合に、基本プロセス識別情報と前記並列起動不可プロセス識別情報とに基づいて、当該並列起動不可プロセス起動順序が取り得る複数の起動順序パターンを生成するパターン生成機能と、パターン生成機能により生成された各起動順序パターンについて、当該起動順序パターンに規定された並列起動不可プロセス起動順序、前記更新された各プロセスの平均起動時間、基本プロセス識別情報及び並列起動不可プロセス識別情報に基づいて、複数のプロセスを起動した場合の総起動時間をそれぞれ算出する総起動時間算出機能と、パターン生成手段により生成された複数の起動順序パターンの中から、総起動時間算出手段により算出された総起動時間が最も短い起動順序パターンを選択し、当該選択した起動順序パターンに規定された並列起動不可プロセス起動順序を、次回用いられる並列起動不可プロセス起動順序として選択する選択機能と、を有する。なお、算出方法の一例は、図2のフローチャート及び図５〜図７を用いて後述する。図５は、プロセス処理情報記憶手段309のプロセス処理情報311のデータの一例を示す図である。図６及び図７は、後述するプロセス情報テーブルの一例を示す図である。算出した並列起動不可プロセス起動順序を更新後、プロセス起動情報出力手段307にプロセス起動情報記憶手段出力依頼を通知する。
【００２９】
プロセス起動情報出力手段307は、プロセス起動情報記憶手段202のプロセス起動情報401をプロセス処理情報記憶手段309によって更新する。プロセス起動情報記憶手段202の更新後、プロセス終了手段308にプロセス終了依頼を通知する。
【００３０】
プロセス終了手段308は、プロセス起動情報出力手段307からプロセス終了依頼を受け付けると、プロセスを終了する。
【００３１】
［システムの動作の説明：プロセス起動動作］
図3を用いて、プロセス起動手段302等によるプロセス起動の処理について説明する。図3の状態1は、操作端末101で起動コマンドプロセス201を入力し、起動コマンドプロセス201の起動情報取得手段301が、プロセス起動情報記憶手段202からプロセス起動情報401を取得した場合を示している。図５（A）には、前回のプロセス起動から算出した並列起動不可プロセス起動順序、プロセス平均起動時間が格納されている。
【００３２】
図3の状態1から、操作端末101より起動コマンドプロセスを起動すると状態2のプロセス起動に移る。プロセス起動順序は、図５（A）に示しており、全プロセスが未起動の状態で基本プロセス、並列起動不可プロセス起動順序を満たしているプロセスはプロセスAのみなので、プロセス起動手段302がプロセスAを起動し、プロセス状態を処理中に変更する。
【００３３】
プロセスAの起動完了後、起動確認を行い、プロセス起動成功を操作端末101に送信し、起動時間を格納し、プロセス状態を起動中にする。プロセス状態の変更後は、全プロセスのプロセス状態を調べ、未処理のプロセス（B、C、D、E）が存在するので再度プロセス起動を行う。
【００３４】
プロセス起動手段302は、プロセスAの起動確認後、未処理のプロセス（B、C、D、E）が存在するので、再度プロセス起動を行う(（図3中の状態3)。図５（A）の基本プロセス、並列起動不可プロセス起動順序、プロセス状態を調べ、未起動及び起動可能なプロセス（B、C）が存在するので、プロセス起動手段302がプロセスBとプロセスCを起動し、プロセス状態を処理中に変更する。
【００３５】
プロセスBとプロセスCの起動時間がb’とc’で、b’<c’の大小関係が成り立つ場合、プロセスBの起動確認がプロセスCの起動確認より速く確認できる。そのため、プロセスB起動完了後、プロセス起動成功を操作端末101に送信、起動時間を格納し、プロセス状態変更を起動中に変更する。プロセス状態変更後、全プロセスのプロセス状態を調べ、未処理のプロセス（D、E）が存在するので再度プロセス起動を行う。
【００３６】
プロセス起動手段302は、プロセスB起動後、未処理のプロセス（D、E）が存在するので再度プロセス起動を行う(図３中の状態4)。図５（A）の基本プロセス、並列起動不可プロセス起動順序、プロセス状態を調べ、未起動及び起動可能なプロセスDが存在するので、プロセス起動手段302がプロセスDを起動し、プロセス状態を処理中に変更する。プロセスD起動完了後は、プロセス起動成功を操作端末101に送信、起動時間を格納し、プロセス状態を起動中にする。プロセスDの起動時間がd’で、c’ < b’+ d’の大小関係が成り立つ場合、プロセスCの起動確認が、プロセスDの起動確認より早く確認できる。そのため、プロセスCの起動確認後、全プロセスのプロセス状態を調べ、未処理のプロセスEが存在するので再度プロセス起動を行う。
【００３７】
プロセス起動手段302は、プロセスC起動後、未処理のプロセスEが存在するので再度プロセス起動を行う(図３中の状態5)。図５（A）の基本プロセス、並列起動不可プロセス起動順序、プロセス状態を調べ、未起動及び起動可能なプロセスEが存在するので、プロセス起動手段302がプロセスEを起動する。起動後、起動確認を行い、プロセス起動成功を操作端末101に送信、起動時間を格納し、プロセス状態を起動中にする。プロセスEの起動時間がe’でc’+ e’ > b’+ d’が成り立つ場合、プロセスE起動完了時は、プロセスDの起動確認は完了している。
【００３８】
これにより、プロセスEのプロセス状態変更後、全プロセスのプロセス状態を調べると、全プロセスとも起動中であるので、プロセス起動出力手段304は、プロセス平均起動時間更新手段305に全プロセス起動処理完了通知を送信する。
【００３９】
［プロセス平均起動時間更新動作］
次に、プロセス平均起動時間更新手段305による、プロセス平均起動時間の算出更新処理について説明する。まず、プロセス平均起動時間更新手段305は、プロセスAのプロセス平均起動時間をプロセス起動情報記憶手段２０２のプロセスA起動情報４０１から取得し、プロセス起動時間（図3中の状態2でのプロセス起動にかかった時間）を、プロセス処理情報記憶手段309のプロセス処理情報311中のプロセスA起動情報から取得する。
【００４０】
そして、取得したプロセスAのプロセス平均起動時間とプロセス起動時間とから、プロセスAのプロセス平均起動時間を算出更新する。具体的には、以下の算出式でプロセス平均起動時間を算出更新する。aはプロセス平均起動時間、a´はプロセス起動時間、b1はプロセス平均起動時間aに対する重み係数、b2はプロセス起動時間a´に対する重み係数である。
a (更新後のプロセス平均起動時間) = a * b1 + a´ * b2
【００４１】
直近のプロセス起動時間a´とプロセス平均起動時間ａに対して重み付けをして両者の平均を計算することで、プロセス平均起動時間ａに対する直近のプロセス起動時間a´の影響度を設定することができる。重み係数には、例えば、操作端末１０１からユーザが所定のメニュー画面などを介して、任意の値を設定することができ、例えば、b1には0.6、b2には0.4などの値が設定される。
【００４２】
プロセス平均起動時間更新手段305は、プロセスAのプロセス平均起動時間を算出すると、当該算出結果により、プロセス起動情報記憶手段202のプロセスAのプロセス平均起動時間を更新する。他のプロセスB〜Dについても、同様に計算し、プロセス起動情報記憶手段202の各プロセスB〜Dのプロセス平均起動時間を更新する。以下、更新後のプロセス平均起動時間を更新平均起動時間という。
【００４３】
［並列起動不可プロセス起動順序の算出動作］
次に、プロセス起動順序算出手段306による並列起動不可プロセス起動順序の算出処理の一例を、図２に示すフローチャートを用いて説明する。
【００４４】
前提として、プロセス平均起動時間更新手段305で算出した、プロセスAの更新平均起動時間を3Tとし、他のプロセスの更新平均起動時間は、プロセスBはT、プロセスCはT、プロセスDは5T、プロセスEは2Tとする。この更新平均起動時間を用いて、プロセス起動順序算出手段306が、プロセス起動順序を更新する場合について説明する。
【００４５】
プロセス起動順序算出手段306は、最初に、全プロセスに対しプロセス状態を未処理、並列起動不可プロセス起動順序を「無し」、各プロセスの総起動時間を「0」にする（図２：Ｓ１）。また、パターン数を初期化する（図２：Ｓ２）このときのプロセス情報を、図５（B）に示す。
【００４６】
次に、以下の条件でプロセスを抽出する。
（Ａ１）プロセス状態が未起動かつ起動条件のプロセスのプロセス状態が起動中のプロセスを抽出する（図２：Ｓ３）。抽出の結果、プロセスA、プロセスBが抽出される。プロセス起動順序算出手段306は、抽出したプロセスに対し、以下の判別式を実施する。
（Ａ２）並列起動不可プロセスを持つプロセス？ and 並列起動不可プロセスも起動可能プロセスとして抽出されている?（図２：ＳＡ１）
【００４７】
抽出されたプロセスA、プロセスB共に並列起動不可プロセスを持ち、お互いが並列起動不可プロセスとなっている。そのため、上記判別式は両方とも成り立つこととなる。プロセス起動順序算出手段306は、次に以下の処理を行う。
（Ａ３）並列起動が出来ないプロセス数をn個として、起動順のパターン数をn!とする（図２：Ｓ７）。
（Ａ４）パターン数分のプロセス情報テーブルを複製し、並列起動不可プロセスの起動順序をパターン数分作成する（図２：Ｓ８）。
（Ａ５）（Ａ４）で作成した起動順起から、パターン数分作成したプロセス情報テーブルの並列起動不可プロセス起動順序に対し、起動条件となるプロセスを格納する（図２：Ｓ９）。
【００４８】
並列起動が出来ないプロセス数は、2個（プロセスA、プロセスB）なので起動順のパターン数は2種類となる。よって、プロセス情報テーブルを2つ複製し、起動順序は[A→B]、[B→A]の2パターンを作成する。作成したプロセス情報テーブルの、並列起動不可プロセス起動順序に対し、並列起動不可プロセス起動順序を格納したテーブルを、図6（A）（パターン1）と図7（A）（パターン2）に示す。プロセス起動順序算出手段306は、作成したプロセス情報テーブルごとに、再度（Ａ１）の処理を行い、プロセスを抽出する。
【００４９】
最初にパターン1のプロセス情報テーブルから処理を行う。
（Ａ１）の処理の結果、図6（A）より抽出されるプロセスはAとなる。プロセスAに対し（Ａ２）の判別を行い、抽出されたプロセスが一つしかないので判別式は成り立たない。成り立たない場合は、プロセス起動順序算出手段306は、以下の処理を行う。
（Ａ６）起動条件となっているプロセスの中で一番長い総起動時間をXとする（図２：Ｓ４）。
（Ａ７）自プロセスの総起動時間に（X + プロセス更新平均起動時間）を格納する（図２：Ｓ５）。
（Ａ８）自プロセスと抽出したプロセスのプロセス状態を起動中に変更する（図２：Ｓ６）。
【００５０】
プロセスAには起動条件となっているプロセスは存在しないので、X=0となる。そのため、自プロセスの総起動時間にはプロセス過去起動3Tが格納される。総起動時間格納後、プロセス状態を起動中に変更する。このときのプロセス情報テーブルを図6(B)に示す。
【００５１】
プロセス状態変更後、再度（Ａ１）の処理を行い、抽出される起動可能プロセスがなくなるまで繰り返す。
【００５２】
図６（B）から（Ａ１）で抽出されるプロセスは、プロセスBとCである。（Ａ２）の判別式を実施し、プロセスBの並列起動不可プロセスであるプロセスAは抽出されていないので、（Ａ６）（Ａ７）（Ａ８）の処理を実施する。（Ａ６）の処理の結果、プロセスBとCの起動条件はプロセスAなので、X=3Tとなる。そのため、プロセスBの総起動時間には X + プロセス更新平均起動時間 = 3T + T = 4Tが格納される。プロセスCの総起動時間には X + プロセス更新平均起動時間 = 3T + T = 4Tが格納される。総起動時間格納後、プロセス状態を起動中に変更する。このときのプロセス情報テーブルを図６（C）に示す。
【００５３】
プロセス状態変更後、再度（Ａ１）の処理を行い、図６（C）からプロセスDとEが抽出される。（Ａ２）の判別式を実施し、並列起動不可プロセスはないので、プロセス起動順序算出手段306は、（Ａ６）（Ａ７）（Ａ８）の処理を実施する。（Ａ６）の処理の結果、プロセスDとEの起動条件はプロセスBとプロセスCなので、X=4Tとなる。そのため、プロセスDの総起動時間には X + プロセス更新平均起動時間 = 4T + 5T = 9Tが格納される。プロセスEの総起動時間には X + プロセスB過去起動時間 = 4T + 2T = 6Tが格納される。総起動時間格納後、プロセス状態を起動中に変更する。このときのプロセス情報テーブルを図６（D）に示す。
【００５４】
プロセス状態変更後、再度（Ａ１）の処理を行い、図６（D）から抽出されるプロセスはないので、プロセス起動順序算出手段306は、パターン2のプロセス情報テーブルに対し処理を行う。
【００５５】
まず、（Ａ１）の処理を行う。図7(B)から抽出されるプロセスは、プロセスBである。プロセスBに対し（Ａ２）の判別を行い、抽出されたプロセスが一つしかないので判別式は成り立たないので、（Ａ６）（Ａ７）（Ａ８）の処理を実施する。（Ａ６）の処理の結果、プロセスBの起動条件はないので、X=0となる。そのため、プロセスBの総起動時間には X + プロセス更新平均起動時間 = 0 + T = Tが格納される。総起動時間格納後、プロセス状態を起動中に変更する。このときのプロセス情報テーブルを図７（B）に示す。
【００５６】
プロセス起動順序算出手段306は、プロセス状態変更後、再度（Ａ１）の処理を行い、図７（B）から（Ａ１）で抽出されるプロセスは、プロセスAとDである。（Ａ２）の判別式を実施し、プロセスAの並列起動不可プロセスであるプロセスBは抽出されていないので、プロセス起動順序算出手段306は、（Ａ６）（Ａ７）（Ａ８）の処理を実施する。（Ａ６）の処理の結果、プロセスAとDの起動条件はプロセスBなので、X=Tとなる。そのため、プロセスAの総起動時間には X + プロセス更新平均起動時間 = T + 3T = 4Tが格納される。プロセスDの総起動時間には X + プロセス更新平均起動時間 = T + 5T = 6Tが格納される。総起動時間格納後、プロセス状態を起動中に変更する。このときのプロセス情報テーブルを図７(C)に示す。
【００５７】
プロセス状態変更後再度（Ａ１）の処理を行い、図７(C)から（Ａ１）で抽出されるプロセスは、プロセスCである。プロセス起動順序算出手段306は、（Ａ２）の判別式を実施し、抽出されたプロセスが一つしかなく判別式は成り立たないので、（Ａ６）（Ａ７）（Ａ８）の処理を実施する。（Ａ６）の処理の結果、プロセスCの起動条件はプロセスAなので、X=4Tとなる。そのため、プロセスCの総起動時間には X + プロセス更新平均起動時間 = 4T + T = 5Tが格納される。プロセス起動順序算出手段306は、総起動時間格納後、プロセス状態を起動中に変更する。
【００５８】
プロセス状態変更後、再度（Ａ１）の処理を行い、（Ａ１）で抽出されるプロセスは、プロセスEである。プロセス起動順序算出手段306は、（Ａ２）の判別式を実施し、抽出されたプロセスが一つしかなく判別式は成り立たないので、（Ａ６）（Ａ７）（Ａ８）の処理を実施する。（Ａ６）の処理の結果、プロセスCの起動条件はプロセスCなので、X=5Tとなる。そのため、プロセスCの総起動時間には X + プロセス更新平均起動時間 = 5T + 2T = 7Tが格納される。プロセス起動順序算出手段306は、総起動時間格納後、プロセス状態を起動中に変更する。このときのプロセス情報テーブルを図７（D）に示す。
【００５９】
プロセス状態変更後、再度（Ａ１）の処理を行い、図７（D）から抽出されるプロセスはない。パターン1、2共に抽出されるプロセスがなくなった場合、プロセス起動順序算出手段306は、以下の処理を行う。
（Ａ９）パターンごとに作成したプロセス情報テーブルの中で一番総起動時間が長い時間をYn（n:パターン数を番号で区別）とする（図２：Ｓ１０）。
（Ａ１０）Yｎの中で一番短いパターンの並列起動不可プロセス起動順序を次回の並列起動不可プロセス起動順序として格納する（図２：Ｓ１１）。
【００６０】
（Ａ９）の処理の結果、パターン1で一番総起動時間が長いのは9T（プロセスD）なので、Y1=9Tとなる。パターン2で一番総起動時間が長いのは7T（プロセスE）なので、Y2=7Tとなる。よって、パターン2の並列起動不可プロセス起動順序が次回の並列起動不可プロセス起動順序として格納される。図4において、並列起動不可プロセス起動順序前（図4（Ａ））と、変更後の全プロセス起動時間（図4（Ｂ））の比較を示す。
【００６１】
プロセス起動順序算出手段306は、並列起動不可プロセス起動順序の算出完了後、プロセス起動情報出力手段307にプロセス起動情報記憶手段出力依頼を通知する。
【００６２】
プロセス起動情報出力手段307は、プロセス起動情報記憶手段202のプロセス起動情報401をプロセス処理情報記憶手段309のプロセス起動情報によって更新する。プロセス起動情報記憶手段202の更新後、プロセス終了手段308にプロセス終了依頼を通知する。
【００６３】
プロセス終了手段308はプロセス起動情報出力手段307からプロセス終了依頼を受けたら、プロセスを終了する。
【００６４】
以上、本実施形態によれば、複数プロセスの起動により得られる各プロセスの起動時間に基づいて当該プロセスの平均過去起動時間を更新し、この更新したプロセスの平均過去起動時間に基づいて、次の起動時に使用する並列起動不可プロセスの起動順序を再決定することとしているので、何らかの理由によりプロセスの起動時間が変動した場合でも、変動結果に応じた最適なプロセスの起動順序を再構築することができるようになる。
【００６５】
また、本実施形態によれば、直近のプロセス起動時間a´とプロセス平均起動時間ａに対して重み付けをして計算しているので、プロセス平均起動時間ａに対する直近のプロセス起動時間a´の影響度を適宜設定することが可能である。従って処理データや実行環境又はシステム構成変更に応じて、適切な重みづけを設定することにより、プロセス平均過去時間の精度をより高めることができるようになる。
【００６６】
また、次回のプロセス起動順序を全プロセス起動後に算出しているので、システム構成の変更などを、次回のプロセス起動順序に即座に反映することができ、その結果、起動プロセスへの影響度を最小限にすることができるようになる。
【００６７】
なお、本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、１つの手段が有する機能が２つ以上の物理的手段により実現されても、２つ以上の手段の機能が１つの物理的手段により実現されてもよい。
【００６８】
［その他の実施形態］
本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。例えば、上記実施形態では、本発明に係るプロセス起動条件算出システムが、起動情報取得手段301、プロセス起動手段302、プロセス確認手段303及びプロセス起動出力手段304を含むプロセス起動システムに適用される場合について説明したが、本発明に係るプロセス起動条件算出システムは、プロセス起動手段302等を有するプロセス起動装置とは別に構成され、当該プロセス起動装置からプロセスの起動結果であるプロセス起動時間を取得し、この取得したプロセス起動時間に基づいて、各プロセスの起動条件を再構築することもできる。
【符号の説明】
【００６９】
101…操作端末、102…データ処理装置、201…起動コマンドプロセス、202…プロセス起動情報記憶手段、202…プロセス起動情報、202…プロセス起動情報記憶手段、301…起動情報取得手段、302…プロセス起動手段、303…プロセス確認手段、304…プロセス起動出力手段、305…プロセス平均起動時間更新手段、306…プロセス起動順序算出手段、307…プロセス起動情報出力手段、308…プロセス終了手段、309…プロセス処理情報記憶手段、311…処理用プロセス情報（ファイル）、401…プロセス起動情報（ファイル）
【図２】
2011065241.tif 000003
【図３】
2011065241.tif 000004
【図４】
2011065241.tif 000005
【図５】
2011065241.tif 000006
【図６】
2011065241.tif 000007
【図７】
2011065241.tif 000008
【図１】
2011065241.tif 000009