(57)【要約】【課題】順序制約のあるプロセスに群単位で起動優先順位が設定されている場合の再開処理時間全体を短縮する情報処理装置を提供すること。【解決手段】プロセス記憶部１１と、順序制約グループ、順序制約、プロセスの所属群、群の起動優先順位、順序制約グループの起動状態、群の起動状態およびプロセスの起動状態を記憶する管理テーブル１２と、起動完了していない順序制約グループを選択し、その順序制約グループに含まれるプロセスの所属群のうち起動完了していない群を起動優先順位に基づき選択し、選択した順序制約グループおよび群に含まれる未起動のプロセスを仮選択するプロセス仮選択部１３と、仮選択プロセスが他の順序制約グループに含まれる場合、その順序制約グループに含まれる、より起動優先順位の高い群が起動完了していれば、仮選択プロセスを正式決定する次プロセス決定部１４と、次プロセス起動部１５と、管理テーブル更新部１６とを備える。【選択図】      図１
2012203449.tif 000002
【特許請求の範囲】
【請求項１】
プロセスを記憶したプロセス記憶部と、
前記プロセス間に存在する起動順序の制約である順序制約を表す情報、関連性のある前記順序制約の集まりである順序制約グループを表す情報、前記プロセスが所属する群を表す情報、前記群に設定された起動優先順位を表す情報、前記順序制約グループの起動状態を表す情報、前記群の起動状態を表す情報、および、前記プロセスの起動状態を表す情報を記憶する管理テーブルと、
起動完了していない前記順序制約グループを選択し、その順序制約グループに含まれるプロセスが所属する群のうち起動完了していない群を前記起動優先順位に基づいて選択し、選択した順序制約グループおよび選択した群に含まれ、かつ、まだ起動していないプロセスを仮選択するプロセス仮選択部と、
前記仮選択したプロセスについて、他の順序制約グループに含まれるか否かを判断し、他の順序制約グループに含まれない場合には、仮選択したプロセスを次に起動する次プロセスとして決定し、他の順序制約グループに含まれる場合には、前記他の順序制約グループに含まれる他のプロセスを含む他の群であって、仮選択したプロセスを含む群より前記起動優先順位の高いものが起動完了していれば、仮選択したプロセスを次プロセスとして決定する次プロセス決定部と、
前記次プロセスを起動するプロセス起動部と、
前記プロセスの起動および起動完了に伴い前記管理テーブルを更新する管理テーブル更新部と、
を備えた情報処理装置。
【請求項２】
前記管理テーブルは、前記順序制約グループに設定された優先順位を表す情報をさらに記憶し、
前記プロセス仮選択部は、起動完了していない前記順序制約グループを前記優先順位に基づいて選択することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記管理テーブルは、
前記順序制約グループを識別する情報と、前記順序制約グループに設定された優先順位を表す情報と、前記順序制約グループの起動状態を表す情報と、前記順序制約グループに含まれるプロセスが所属する群を識別する情報とを対応付けたレコードを記憶する順序制約グループ管理テーブルと、
前記群を識別する情報と、前記群に設定された起動優先順位と、前記群の起動状態を表す情報と、前記群に所属するプロセスを識別する情報とを対応付けたレコードを記憶する群管理テーブルと、
前記プロセスを識別する情報と、前記プロセスの起動状態を表す情報と、前記プロセスが有する前記順序制約およびその順序制約が含まれる順序制約グループを表す情報とを対応付けたレコードを記憶するプロセス管理テーブルと、
を有することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
プロセス記憶部に記憶されたプロセス間に存在する起動順序の制約である順序制約を表す情報、関連性のある前記順序制約の集まりである順序制約グループを表す情報、前記プロセスが所属する群を表す情報、前記群に設定された起動優先順位を表す情報、前記順序制約グループの起動状態を表す情報、前記群の起動状態を表す情報、および、前記プロセスの起動状態を表す情報を管理テーブルに記憶しておき、
起動完了していない前記順序制約グループを選択し、
その順序制約グループに含まれるプロセスが所属する群のうち起動完了していない群を前記起動優先順位に基づいて選択し、
選択した順序制約グループおよび選択した群に含まれ、かつ、まだ起動していないプロセスを仮選択し、
前記仮選択したプロセスが他の順序制約グループに含まれない場合には、仮選択したプロセスを次に起動する次プロセスとして決定し、
前記仮選択したプロセスが他の順序制約グループに含まれる場合には、前記他の順序制約グループに含まれる他のプロセスを含む他の群であって、仮選択したプロセスを含む群より前記起動優先順位の高いものが起動完了していれば、仮選択したプロセスを次プロセスとして決定し、
前記次プロセスを起動し、
前記プロセスの起動および起動完了に伴い前記管理テーブルを更新する、情報処理方法。
【請求項５】
前記管理テーブルに、前記順序制約グループに設定された優先順位を表す情報をさらに記憶しておき、
前記プロセスの仮選択のために前記順序制約グループを選択する際に、起動完了していない前記順序制約グループを前記優先順位に基づいて選択することを特徴とする請求項４に記載の情報処理方法。
【請求項６】
プロセス記憶部に記憶されたプロセス間に存在する起動順序の制約である順序制約を表す情報、関連性のある前記順序制約の集まりである順序制約グループを表す情報、前記プロセスが所属する群を表す情報、前記群に設定された起動優先順位を表す情報、前記順序制約グループの起動状態を表す情報、前記群の起動状態を表す情報、および、前記プロセスの起動状態を表す情報を管理テーブルに記憶しておく管理テーブル記憶ステップと、
起動完了していない前記順序制約グループを選択し、その順序制約グループに含まれるプロセスが所属する群のうち起動完了していない群を前記起動優先順位に基づいて選択し、
選択した順序制約グループおよび選択した群に含まれ、かつ、まだ起動していないプロセスを仮選択するプロセス仮選択ステップと、
前記仮選択したプロセスが他の順序制約グループに含まれない場合には、仮選択したプロセスを次に起動する次プロセスとして決定し、前記仮選択したプロセスが他の順序制約グループに含まれる場合には、前記他の順序制約グループに含まれる他のプロセスを含む他の群であって、仮選択したプロセスを含む群より前記起動優先順位の高いものが起動完了していれば、仮選択したプロセスを次プロセスとして決定する次プロセス決定ステップと、
前記次プロセスを起動する次プロセス起動ステップと、
前記プロセスの起動および起動完了に伴い前記管理テーブルを更新する管理テーブル更新ステップと、をコンピュータ装置に実行させるコンピュータ・プログラム。
【請求項７】
前記管理テーブル記憶ステップで、前記順序制約グループに設定された優先順位を表す情報をさらに前記管理テーブルに記憶しておき、
前記プロセス仮選択ステップで、起動完了していない前記順序制約グループを前記優先順位に基づいて選択することを特徴とする請求項６に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセスの実行順序をスケジューリングする情報処理装置に関する。
【背景技術】
【０００２】
プロセス間の順序制約に基づいて、プロセスの実行順序をスケジューリングする情報処理装置が知られている。ここで、順序制約とは、プロセス間のデータの依存関係や制御の依存関係に基づく実行順序の制約をいう。
【０００３】
例えば、特許文献１に記載された情報処理装置は、プロセス間の依存関係を規定する依存関係テーブルに基づいて、複数のプロセッサユニットに複数のプロセスを並列に処理させるスケジューリングを行う。この情報処理装置は、依存関係テーブルを参照することによりその時点で実行可能となっているプロセスを検出する。そして、この情報処理装置は、複数のプロセッサユニットのうちもっとも早い時間に割当済みプロセスの処理が完了するプロセッサユニットを選択する。そして、この情報処理装置は、選択したプロセッサユニットに実行させるプロセスキューに、検出したプロセスを追加する。
【０００４】
プロセスのスケジューリングを行う他の情報処理装置としては、呼処理制御サーバが挙げられる。呼処理制御サーバは、呼制御機能の他、障害情報管理、自立診断、障害回復処理などの各種管理機能を提供するサーバである。このような呼処理制御サーバは、プロセスを群単位で管理している。ここで、群とは、共通性を持つプロセスの集まりである。例えば、呼処理制御サーバが提供する各種管理機能のうち同一機能を実現しているプロセスの集まりが１つの群であってもよい。このような呼処理制御サーバは、群単位で設定された起動優先順位にしたがって、各プロセスの起動順序を制御する。これにより、呼処理制御サーバは、プロセスの起動状態を群単位で一括して通知するといったように、各種機能の効率的な監視を行うことができる。なお、これらの各種機能は互いに連携して機能するため、これらのプロセス間には、順序制約が存在する場合も多い。したがって、このような呼処理制御サーバにおいて、群単位で設定される起動優先順位は、プロセス間の順序制約を考慮した上であらかじめ設定される。
【０００５】
このような呼処理制御サーバが行うプロセスの起動順序制御の一例を、図７を参照して説明する。なお、図７において、呼処理制御サーバは、複数のプロセスを並列に実行可能であるものとする。また、各プロセス間には、順序制約グループＡ、Ｂ、Ｃで表される順序制約が存在するものとする。例えば、順序制約グループＡ（ａ→ｃ→ｅ）は、プロセスｅの起動にはプロセスｃの起動完了を必要とし、プロセスｃの起動にはプロセスａの起動完了を必要とすることを表している。ここで、プロセスの起動完了とは、そのプロセスが実行する処理のうち、プロセス起動時に行う処理が完了することをいう。また、これらのプロセスは、それぞれ群１、群２、群３のいずれかに所属している。そして、これらの群には、順序制約グループＡ、Ｂ、Ｃを考慮し、群１、群２、群３の順に起動優先順位が設定されているものとする。
【０００６】
このようなケースにおいて、呼処理制御サーバは、まず、起動優先順位の最も高い群１に含まれるプロセスａおよびｂを並列に起動する。次に、呼処理制御サーバは、群１に所属する各プロセスの起動が完了すると、次に起動優先順位の高い群２に含まれるプロセスｃおよびｄを並列に起動する。このようにして、呼処理制御サーバは、順次プロセス群を起動していく。
【０００７】
このような呼処理制御サーバが行う起動時の制御については、特許文献２にも記載されている。特許文献２に記載された呼処理制御サーバは、複数の呼処理制御部に所定の起動条件を設定しておく。これにより、特許文献２に記載された呼処理制御サーバは、全ての呼処理制御部を構成するプロセス群の起動が完了していなくても、所定の起動条件を満たした呼処理制御部から順に制御を再開させる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−６９９２１号公報
【特許文献２】特開２００８−１１０３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述の呼処理制御サーバは、通信システムとして高い信頼性が求められる無中断サーバである。また、呼処理制御サーバは、障害時や新規機能追加時には再開処理（プロセスの再起動）を必要とする。再開処理実行中にはサービスを提供することができないため、呼処理制御サーバには、再開処理時の起動時間短縮が求められる。
【００１０】
しかしながら、特許文献１には、プロセス間に順序制約がある場合のプロセススケジューリングについて記載されているが、さらにプロセスの群単位で起動優先順位が設定される場合のスケジューリングについては記載されていない。
【００１１】
また、図７に示したように、群単位で設定された起動優先順位にしたがって起動制御する場合、優先順位の高い群が起動完了状態になっていないと、次の群を起動できない。このため、優先順位の高い群に所属する一部のプロセスの起動が完了した時点で、他のプロセスを並列に実行可能であるにも関わらず、起動中の群に所属する全プロセスの完了を待つ起動待ち合わせ時間が発生してしまう。
【００１２】
また、特許文献２に記載されたものは、一部のプロセスの起動完了で条件を満たす呼処理制御部から制御を再開させることで、その呼処理制御部の再開までの時間を短縮可能であるものの、再開処理全体に要する時間を短縮することは出来ない。
【００１３】
本発明は、上述の課題を解決するためになされたもので、互いに順序制約のあるプロセスに群単位で起動優先順位が設定されている場合の再開処理時間全体を短縮可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の情報処理装置は、プロセスを記憶したプロセス記憶部と、前記プロセス間に存在する起動順序の制約である順序制約を表す情報、関連性のある前記順序制約の集まりである順序制約グループを表す情報、前記プロセスが所属する群を表す情報、前記群に設定された起動優先順位を表す情報、前記順序制約グループの起動状態を表す情報、前記群の起動状態を表す情報、および、前記プロセスの起動状態を表す情報を記憶する管理テーブルと、起動完了していない前記順序制約グループを選択し、その順序制約グループに含まれるプロセスが所属する群のうち起動完了していない群を前記起動優先順位に基づいて選択し、選択した順序制約グループおよび選択した群に含まれ、かつ、まだ起動していないプロセスを仮選択するプロセス仮選択部と、前記仮選択したプロセスについて、他の順序制約グループに含まれるか否かを判断し、他の順序制約グループに含まれない場合には、仮選択したプロセスを次に起動する次プロセスとして決定し、他の順序制約グループに含まれる場合には、前記他の順序制約グループに含まれる他のプロセスを含む他の群であって、仮選択したプロセスを含む群より前記起動優先順位の高いものが起動完了していれば、仮選択したプロセスを次プロセスとして決定する次プロセス決定部と、前記次プロセスを起動するプロセス起動部と、前記プロセスの起動および起動完了に伴い前記管理テーブルを更新する管理テーブル更新部と、を備える。
【００１５】
また、本発明の情報処理方法は、プロセス記憶部に記憶されたプロセス間に存在する起動順序の制約である順序制約を表す情報、関連性のある前記順序制約の集まりである順序制約グループを表す情報、前記プロセスが所属する群を表す情報、前記群に設定された起動優先順位を表す情報、前記順序制約グループの起動状態を表す情報、前記群の起動状態を表す情報、および、前記プロセスの起動状態を表す情報を管理テーブルに記憶しておき、起動完了していない前記順序制約グループを選択し、その順序制約グループに含まれるプロセスが所属する群のうち起動完了していない群を前記起動優先順位に基づいて選択し、選択した順序制約グループおよび選択した群に含まれ、かつ、まだ起動していないプロセスを仮選択し、前記仮選択したプロセスが他の順序制約グループに含まれない場合には、仮選択したプロセスを次に起動する次プロセスとして決定し、前記仮選択したプロセスが他の順序制約グループに含まれる場合には、前記他の順序制約グループに含まれる他のプロセスを含む他の群であって、仮選択したプロセスを含む群より前記起動優先順位の高いものが起動完了していれば、仮選択したプロセスを次プロセスとして決定し、前記次プロセスを起動し、前記プロセスの起動および起動完了に伴い前記管理テーブルを更新する。
【００１６】
また、本発明のコンピュータ・プログラムは、プロセス記憶部に記憶されたプロセス間に存在する起動順序の制約である順序制約を表す情報、関連性のある前記順序制約の集まりである順序制約グループを表す情報、前記プロセスが所属する群を表す情報、前記群に設定された起動優先順位を表す情報、前記順序制約グループの起動状態を表す情報、前記群の起動状態を表す情報、および、前記プロセスの起動状態を表す情報を管理テーブルに記憶しておく管理テーブル記憶ステップと、起動完了していない前記順序制約グループを選択し、その順序制約グループに含まれるプロセスが所属する群のうち起動完了していない群を前記起動優先順位に基づいて選択し、選択した順序制約グループおよび選択した群に含まれ、かつ、まだ起動していないプロセスを仮選択するプロセス仮選択ステップと、前記仮選択したプロセスが他の順序制約グループに含まれない場合には、仮選択したプロセスを次に起動する次プロセスとして決定し、前記仮選択したプロセスが他の順序制約グループに含まれる場合には、前記他の順序制約グループに含まれる他のプロセスを含む他の群であって、仮選択したプロセスを含む群より前記起動優先順位の高いものが起動完了していれば、仮選択したプロセスを次プロセスとして決定する次プロセス決定ステップと、前記次プロセスを起動する次プロセス起動ステップと、前記プロセスの起動および起動完了に伴い前記管理テーブルを更新する管理テーブル更新ステップと、をコンピュータ装置に実行させる。
【発明の効果】
【００１７】
本発明は、互いに順序制約のあるプロセスに群単位で起動優先順位が設定されている場合の再開処理時間全体を短縮可能な情報処理装置を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態としての情報処理装置の機能ブロック図である。
【図２】本発明の実施の形態における管理テーブルの一例を示す図である。
【図３】本発明の実施の形態としての情報処理装置の起動処理を説明するフローチャートである。
【図４】本発明の実施の形態としての情報処理装置の更新処理を説明するフローチャートである。
【図５】本発明の実施の形態としての情報処理装置による起動処理の一例を説明する図である。
【図６】本発明の実施の形態における管理テーブルに格納される情報の一例を示す図である。
【図７】関連技術における起動処理の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００２０】
本発明の第１の実施の形態としての情報処理装置１の機能ブロックを図１に示す。図１において、情報処理装置１は、プロセス記憶部１１と、管理テーブル１２と、プロセス仮選択部１３と、次プロセス決定部１４と、プロセス起動部１５と、管理テーブル更新部１６とを備えている。
【００２１】
ここで、情報処理装置１は、ＣＰＵ（Central Processing Unit）と、ＲＡＭ（Random Access Memory）と、ＲＯＭ（Read Only Memory）と、ハードディスク等の記憶装置を含むコンピュータ装置によって構成されている。また、プロセス記憶部１１および管理テーブル１２は、ＲＡＭおよび記憶装置によって構成される。また、プロセス仮選択部１３と、次プロセス決定部１４と、プロセス起動部１５と、管理テーブル更新部１６とは、記憶装置またはＲＯＭに記憶されたコンピュータ・プログラムモジュールをＲＡＭに読み込んで１つの管理プロセスとして実行するＣＰＵによって構成される。なお、情報処理装置１の各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。また、情報処理装置１は、複数のプロセスを並列に実行可能であるものとする。
【００２２】
プロセス記憶部１１は、プロセスを記憶している。これらのプロセスは、例えば、記憶装置に記憶された各種サービスに相当するコンピュータ・プログラムモジュールがＲＡＭや仮想記憶上に読み込まれ、実行可能状態となっているものである。これらのプロセスは、後述のプロセス起動部１５によって実行状態に切り替えられることにより起動される。また、これらのプロセスは、互いに連携して動作することにより、情報処理装置１上で提供される各種サービスを実現する。また、プロセス起動部１５によって起動された各プロセスは、上述の管理プロセスの子プロセスとなる。各プロセスは、そのプロセスが実行する処理のうち起動時に行う起動処理を完了すると、プロセス起動部１５に対して起動完了を通知する。
【００２３】
また、プロセス記憶部１１が記憶する各プロセスは、それぞれ群に所属している。各プロセスが所属する群は、後述の管理テーブル１２に記憶される。また、プロセスは、その起動処理において他のプロセスとの間に起動順序の制約（以降、順序制約という）を有する場合もある。プロセスが順序制約を有する場合、そのプロセスは、後述の順序制約グループに含まれるという。
【００２４】
管理テーブル１２は、プロセス間に存在する順序制約を表す情報、関連性のある順序制約の集まりである順序制約グループを表す情報、プロセスが所属する群を表す情報、群に設定された起動優先順位を表す情報、順序制約グループの起動状態を表す情報、群の起動状態を表す情報、および、プロセスの起動状態を表す情報を記憶する。
【００２５】
例えば、管理テーブル１２は、上述の各種情報を格納するため、図２に示すようなデータ構造であってもよい。この例では、管理テーブル１２は、順序制約グループ管理テーブル１２１と、群管理テーブル１２２と、プロセス管理テーブル１２３とからなる。
【００２６】
順序制約グループ管理テーブル１２１は、順序制約グループに関する情報を記憶している。ここで、順序制約グループとは、関連性のある順序制約の集まりである。例えば、図２では、プロセスｃの起動にプロセスａの起動完了を必要とするという順序制約と、プロセスｅの起動にプロセスｃの起動完了を必要とする順序制約との集まりを順序制約グループＡとしている。
【００２７】
具体的には、順序制約グループ管理テーブル１２１は、順序制約グループを識別する情報と、順序制約グループに設定された優先順位を表す情報と、順序制約グループの起動状態と、所属群情報とからなるレコードを記憶している。順序制約グループを識別する情報は、例えば、図２の例では、Ａ、Ｂ、Ｃといったアルファベット大文字で表されている。また、図２の例では、順序制約グループに設定された優先順位は、順序制約グループを識別する情報を表すアルファベットの昇順で表されている。また、順序制約グループの起動状態は、「未起動」、「起動中」、「起動完」を表す情報のいずれかである。ここで、「未起動」とは、その順序制約グループに含まれるプロセスのいずれもまだ起動されていない状態である。なお、順序制約グループに含まれるプロセスとは、その順序制約グループに含まれる順序制約によって起動順序を制約されるプロセスのことをいう。また、「起動中」とは、その順序制約グループに含まれるプロセスの少なくとも１つが起動されているが、全てのプロセスの起動が完了していない状態である。また、「起動完」とは、その順序制約グループに含まれる全てのプロセスの起動処理を完了した状態である。また、所属群情報は、その順序制約グループに含まれるプロセスが所属する群（以降、その順序制約グループの所属群ともいう）を識別する情報である。
【００２８】
群管理テーブル１２２は、プロセスの集まりである群に関する情報を保持するテーブルである。ここで、群とは、類似するサービスを提供していたり、起動順序が近い等の共通性を持つプロセスの集まりである。
【００２９】
具体的には、群管理テーブル１２２は、群を識別する情報と、群に設定された起動優先順位と、群の起動状態を表す情報と、群に所属するプロセスを識別する情報とからなるレコードを記憶している。群を識別する情報は、例えば、図２の例では、１、２、３といった正の整数で表されている。また、図２の例では、群に設定された起動優先順位は、群を識別する情報を表す数値の昇順で表されている。また、群の起動状態は、「未起動」、「起動中」、「起動完」を表す情報のいずれかである。ここで、「未起動」とは、その群に含まれるプロセスのいずれもまだ起動されていない状態である。また、「起動中」とは、その群に含まれるプロセスの少なくとも１つが起動されているが、全てのプロセスの起動が完了していない状態である。また、「起動完」とは、その群に含まれる全てのプロセスの起動処理が完了した状態である。
【００３０】
プロセス管理テーブル１２３は、プロセスに関する情報を保持するテーブルである。具体的には、プロセス管理テーブル１２３は、プロセスを識別する情報と、プロセスの起動状態を表す情報と、プロセス間の起動順序を制約する順序制約およびその順序制約が所属する順序制約グループを表す情報とを対応付けたレコードを記憶する。
【００３１】
ここで、プロセスを識別する情報は、例えば、図２の例では、ａ、ｂ、ｃといったアルファベット小文字で表されている。また、図２の例では、プロセス間の順序制約を、アルファベットの昇順および所属する順序制約グループで表している。例えば、順序制約グループＡに含まれるプロセスａ、ｃ、ｅは、そのアルファベットの順にしたがって、プロセスａの起動完了後でなければプロセスｃを起動できず、プロセスｃの起動完了後でなければプロセスｅを起動できないという順序制約を有している。また、プロセスの起動状態は、「未起動」、「起動中」、「起動完」を表す情報のいずれかである。ここで、「未起動」とは、そのプロセスがまだ起動されていない状態である。また、「起動中」とは、そのプロセスが起動されているが起動完了していない状態である。また、「起動完」とは、そのプロセスが起動処理を完了した状態である。
【００３２】
なお、図２の例では、プロセス管理テーブル１２３は、上記のレコードに、さらに所属する群を識別する情報も含んでいる。この各プロセスの所属群を表す情報は、群管理テーブル１２２またはプロセス管理テーブル１２３のいずれかに含まれていればよい。
【００３３】
プロセス仮選択部１３は、管理テーブル１２を参照することにより、次に起動する候補となるプロセスを仮選択する。具体的には、プロセス仮選択部１３は、起動完了していない順序制約グループを選択する。例えば、管理テーブル１２が図２に示す構造であった場合、プロセス仮選択部１３は、「未起動」または「起動中」である順序制約グループのうち、優先順位の高いものから順次選択する。そして、プロセス仮選択部１３は、選択した順序制約グループの所属群のうち、起動完了していない群を起動優先順位に基づいて選択する。管理テーブル１２が図２に示す構造であった場合、プロセス仮選択部１３は、選択した順序制約グループの所属群のうち、「未起動」または「起動中」のものを、起動優先順位の高いものから順次選択する。そして、プロセス仮選択部１３は、選択した順序制約グループに含まれ、かつ、選択した群に含まれるプロセスのうち、未起動のものを、次に起動する次プロセスの候補として仮選択する。
【００３４】
次プロセス決定部１４は、仮選択したプロセスを、次プロセスとして正式決定するかどうかを判断する。具体的には、次プロセス決定部１４は、仮選択したプロセスが他の順序制約グループに含まれない場合には、仮選択したプロセスを次プロセスとして決定する。一方、次プロセス決定部１４は、仮選択したプロセスが他の順序制約グループに含まれる場合には、そのような他の順序制約グループにおいて、仮選択したプロセスを含む群より高い起動優先順位が設定された所属群があるか否かを判断する。そして、プロセス決定部１４は、そのような群がある場合、その群が起動完了していれば、仮選択したプロセスを次プロセスとして決定する。
【００３５】
なお、次プロセス決定部１４が、仮選択したプロセスを、次プロセスとして決定しなかった場合には、プロセス仮選択部１３は、他の順序制約グループおよび他の群を優先順位にしたがって順次選択していくことにより、新たな候補となるプロセスを仮選択していく。
【００３６】
プロセス起動部１５は、次プロセス決定部１４が決定した次プロセスを起動する。
【００３７】
管理テーブル更新部１６は、プロセスの起動開始および起動完了に伴い、管理テーブル１２を更新する。
【００３８】
以上のように構成された情報処理装置１の動作について、図３を参照して説明する。
【００３９】
まず、プロセス仮選択部１３は、起動完了していない順序制約グループを選択する（ステップＳ１）。
【００４０】
例えば、プロセス仮選択部１３は、「未起動」または「起動中」である順序制約グループのうち、優先順位が最も高いものを選択する。
【００４１】
次に、プロセス仮選択部１３は、ステップＳ１で選択した順序制約グループの所属群のうち、起動完了していない群を起動優先順位に基づいて選択する（ステップＳ２）。
【００４２】
例えば、プロセス仮選択部１３は、ステップＳ１で選択した順序制約グループの所属群のうち、「未起動」または「起動中」であって、起動優先順位が最も高いものを選択する。
【００４３】
なお、プロセス仮選択部１３は、後述のステップＳ４、Ｓ５またはＳ８でＦａｌｓｅ判定となって再度ステップＳ１〜Ｓ２を実行する場合、ステップＳ１では、「未起動」または「起動中」であって前回選択した順序制約グループの次に優先順位が高い順序制約グループを選択する。そして、この場合、ステップＳ２では、プロセス仮選択部１３は、選択した順序制約グループおよびその所属群で、「未起動」または「起動中」であって最も高い起動優先順位となる群の組み合わせが、以前に選択した組み合わせと同一である場合には、選択した順序制約グループの所属群で「未起動」または「起動中」のもののうち、前回選択したものの次に起動優先順位の高いものを選択する。
【００４４】
例えば、順序制約グループＡ、Ｂ、Ｃの順に優先順位が設定され、群１、２、３の順に起動優先順位が設定されている場合を考える。このとき、全ての順序制約グループおよび群が「未起動」または「起動中」であると仮定すると、プロセス仮選択部１３は、ステップＳ１〜Ｓ２を繰り返す度に、順序制約グループＡおよび群１、順序制約グループＢおよび群１、順序制約グループＣおよび群１、順序制約グループＡおよび群２、順序制約グループＢおよび群２、順序制約グループＣおよび群２、、、、といった順で選択を行っていく。なお、プロセス仮選択部１３は、ステップＳ１２でＦｌａｓｅ判定となって再度ステップＳ１からの処理を繰り返す場合には、再び順序制約グループＡおよび群１から選択していく。
【００４５】
次に、プロセス仮選択部１３は、ステップＳ１で選択した順序制約グループに含まれ、かつ、ステップＳ２で選択した群に含まれるプロセスのうち、まだ起動していないプロセスを、次プロセスの候補として仮選択する（ステップＳ３）。
【００４６】
ここで、仮選択するプロセスがない場合（ステップＳ４でＮｏ）、情報処理装置１の動作はステップＳ１に戻る。
【００４７】
一方、次プロセスの候補を仮選択した場合、次プロセス決定部１４は、仮選択したプロセスが、ステップＳ１で選択した順序制約グループにおける順序制約を満たしているか否かを判断する（ステップＳ５）。
【００４８】
ここで、仮選択したプロセスが順序制約を満たしていないと判断した場合、情報処理装置１の動作はステップＳ１に戻る。
【００４９】
一方、仮選択したプロセスが順序制約を満たしていると判断した場合、次プロセス決定部１４は、仮選択したプロセスが他の順序制約グループに含まれるか否かを判断する（ステップＳ６）。
【００５０】
ここで、仮選択したプロセスが他の順序制約グループに含まれない場合、次プロセス決定部１４は、仮選択したプロセスを次プロセスとして正式決定する（ステップＳ９）。
【００５１】
一方、仮選択したプロセスが他の順序制約グループに含まれる場合、次プロセス決定部１４は、そのような他の順序制約グループにおいて、仮選択したプロセスを含む群より高い起動優先順位が設定された所属群があるか否かを判断する（ステップＳ７）。
【００５２】
ここで、そのような群がない場合、次プロセス決定部１４は、仮選択したプロセスを次プロセスとして正式決定する（ステップＳ９）。
【００５３】
一方、そのような群がある場合、次プロセス決定部１４は、そのような群の起動が完了しているか否かを判断する（ステップＳ８）。
【００５４】
ここで、そのような群の起動が完了している場合、次プロセス決定部１４は、仮選択したプロセスを次プロセスとして正式決定する（ステップＳ９）。
【００５５】
一方、そのような群の起動が完了していない場合、情報処理装置１の動作はステップＳ１に戻る。
【００５６】
次に、プロセス起動部１５は、ステップＳ９で次プロセスとして正式決定されたプロセスを起動する（ステップＳ１０）。
【００５７】
次に、管理テーブル更新部１６は、管理テーブル１２を更新する（ステップＳ１１）。具体的には、管理テーブル更新部１６は、ステップＳ１０でのプロセスの起動に伴い、プロセス管理テーブル１２３において該当するプロセスの起動状態を「起動中」に更新する。また、管理テーブル更新部１６は、該当するプロセスを含む群の起動状態に変更があれば、群管理テーブル１２２を更新する。また、管理テーブル更新部１６は、該当するプロセスを含む順序制約グループの起動状態に変更があれば、順序制約グループ管理テーブル１２１を更新する。
【００５８】
次に、プロセス仮選択部１３は、プロセス記憶部１１に記憶された全てのプロセスを起動したか否かを判断する（ステップＳ１２）。
【００５９】
ここで、まだ起動していないプロセスがある場合、情報処理装置１の動作はステップＳ１に戻る。
【００６０】
一方、プロセス記憶部１１に記憶された全てのプロセスを起動した場合、情報処理装置１は、起動処理を終了する。
【００６１】
次に、情報処理装置１がプロセスの起動完了に伴い管理テーブル１２を更新する動作について、図４を参照して説明する。
【００６２】
まず、管理テーブル更新部１６は、プロセスの起動完了通知を受信する（ステップＳ２１）。
【００６３】
次に、管理テーブル更新部１６は、起動完了通知の送信元のプロセスについて、プロセス管理テーブル１２３における起動状態を「起動完」に更新する（ステップＳ２２）。
【００６４】
次に、管理テーブル更新部１６は、起動完了通知の送信元のプロセスが所属する群を特定する（ステップＳ２３）。
【００６５】
次に、管理テーブル更新部１６は、特定した群について、所属する他のプロセスの起動状態が全て「起動完」であるか否かを判断する（ステップＳ２４）。
【００６６】
ここで、所属する他のプロセスの起動状態が全て「起動完」であると判断すると、管理テーブル更新部１６は、群管理テーブル１２２における該当する群の起動状態を「起動完」に更新する（ステップＳ２５）。
【００６７】
次に、管理テーブル更新部１６は、ステップＳ２５で起動状態を更新した群に所属するプロセスが含まれる順序制約グループを特定する（ステップＳ２６）。
【００６８】
次に、管理テーブル更新部１６は、特定した順序制約グループの全ての所属群の起動状態が「起動完」であるか否かを判断する（ステップＳ２７）。
【００６９】
ここで、全ての所属群の起動状態が「起動完」であると判断すると、管理テーブル更新部１６は、順序制約グループ管理テーブル１２１における該当する順序制約グループの起動状態を「起動完」へと更新する（ステップＳ２８）。
【００７０】
以上で、情報処理装置１のプロセス起動完了に伴う管理テーブル更新動作の説明を終了する。
【００７１】
次に、このような情報処理装置１が行う起動処理の動作例について、図５を参照して説明する。図５では、図７を用いて説明した関連技術における起動順序制御の一例と同様に、プロセスａ〜ｇ間の順序制約、順序制約グループＡ〜Ｃ、および群１〜３があらかじめ定められて管理テーブル１２に記憶されているものとする。
【００７２】
まず、プロセスｂの起動処理が完了した直後の時点（イ）での情報処理装置１の動作について説明する。この時点（イ）において、管理テーブル１２に格納される情報は、図６に示す通りとなる。
【００７３】
まず、プロセス仮選択部１３は、「未起動」または「起動中」である順序制約グループのうち、優先順位の最も高い順序制約グループＡを選択する（ステップＳ１）。
【００７４】
次に、プロセス仮選択部１３は、順序制約グループＡの所属群１、２、３のうち、「未起動」または「起動中」のものであって、最も起動優先順位の高い群１を選択する（ステップＳ２）。
【００７５】
ここで、順序制約グループＡおよび群１に含まれるプロセスのうち、まだ起動していないプロセスがないので（ステップＳ４でＮｏ）、情報処理装置１の動作はステップＳ１に戻る。
【００７６】
次に、プロセス仮選択部１３は、「未起動」または「起動中」である順序制約グループのうち、優先順位が次に高い順序制約グループＢを選択する（ステップＳ１）。
【００７７】
次に、プロセス仮選択部１３は、順序制約グループＢの所属群１、２、３のうち、「未起動」または「起動中」のものであって、最も起動優先順位の高い群１を選択する（ステップＳ２）。
【００７８】
ここで、順序制約グループＢおよび群１に含まれるプロセスのうち、まだ起動していないプロセスがないので（ステップＳ４でＮｏ）、情報処理装置１の動作はステップ１に戻る。
【００７９】
同様にして、プロセス仮選択部１３は、順序制約グループＣおよび群１を選択するが、該当する未起動のプロセスがないと判断する（ステップＳ１〜Ｓ２、ステップＳ４でＮｏ）。そして、情報処理装置１の動作はステップ１に戻る。
【００８０】
次に、プロセス仮選択部１３は、「未起動」または「起動中」である順序制約グループのうち、前回選択した順序制約グループＣより優先順位の低い順序制約グループがないため、再度、優先順位の最も高い順序制約グループＡを選択する（ステップＳ１）。
【００８１】
次に、プロセス仮選択部１３は、順序制約グループＡの選択が２回目であるため、その所属群１、２、３のうち、優先順位が次に高い群２を選択する（ステップＳ２）。
【００８２】
次に、プロセス仮選択部１３は、順序制約グループＡおよび群２に含まれるプロセスのうち、「未起動」のプロセスｃを仮選択する（ステップＳ３）。
【００８３】
しかしながら、仮選択したプロセスｃは、順序制約グループＡにおける順序制約を満たさない（プロセスａが起動完了していない）ため（ステップＳ５でＮｏ）、情報処理装置１の動作はステップ１に戻る。
【００８４】
同様にして、プロセス仮選択部１３は、順序制約グループＢおよび群２を選択する（ステップＳ１〜Ｓ２）。
【００８５】
次に、プロセス仮選択部１３は、順序制約グループＢおよび群２に含まれるプロセスのうち、「未起動」のプロセスｄを仮選択する（ステップＳ３）。
【００８６】
次に、次プロセス決定部１４は、仮選択したプロセスｄについて、順序制約グループＢにおける順序制約（プロセスｂが起動完了している）を満たすと判断する（ステップＳ５でＹｅｓ）。
【００８７】
次に、次プロセス決定部１４は、仮選択したプロセスｄについて、他の順序制約グループに含まれないと判断する（ステップＳ６でＮｏ）。
【００８８】
次に、次プロセス決定部１４は、仮選択したプロセスｄを次プロセスとして正式決定する（ステップＳ９）。
【００８９】
次に、次プロセス起動部１５は、次プロセスに決定したプロセスｄを起動する（ステップＳ１０）。
【００９０】
次に、管理テーブル更新部１６は、管理テーブル１２を更新する（ステップＳ１１）。
【００９１】
まず、プロセス管理テーブル１２３におけるプロセスｄの起動状態は「未起動」となっている。そこで、管理テーブル更新部１６は、プロセスｄの起動状態を「起動中」に更新する。
【００９２】
また、群管理テーブル１２２において、プロセスｄが所属する群２の起動状態は「未起動」となっている。したがって、管理テーブル更新部１６は、群管理テーブル１２２における群２の起動状態を「起動中」に更新する。
【００９３】
また、順序制約グループテーブル１２１において、プロセスｄが含まれる順序制約グループＢの起動状態は「起動中」である。そこで、管理テーブル更新部１６は、順序制約グループＢの起動状態を「起動中」のままとする。
【００９４】
以上で、時点（イ）における情報処理装置１の次プロセス決定動作の説明を終了する。
【００９５】
次に、プロセスａの起動処理が完了した直後の時点（ロ）での情報処理装置１の動作について説明する。この時点（ロ）において、管理テーブル１２に格納される情報は、図２に示した通りとなる。
【００９６】
まず、プロセス仮選択部１３は、「未起動」または「起動中」である順序制約グループのうち、優先順位の最も高い順序制約グループＡを選択する（ステップＳ１）。
【００９７】
次に、プロセス仮選択部１３は、順序制約グループＡの所属群１、２、３のうち、既に群１は「起動完」となっているため、残りの「未起動」または「起動中」の群のうち最も起動優先順位の高い群２を選択する（ステップＳ２）。
【００９８】
次に、プロセス仮選択部１３は、順序制約グループＡおよび群２に含まれるプロセスのうち、「未起動」のプロセスｃを仮選択する（ステップＳ３）。
【００９９】
次に、次プロセス決定部１４は、仮選択したプロセスｃは、順序制約グループＡにおける順序制約を満たす（プロセスａが起動完了している）と判断する（ステップＳ５でＹｅｓ）。
【０１００】
次に、次プロセス決定部１４は、仮選択したプロセスｃについて、他の順序制約グループＣに含まれると判断する（ステップＳ６でＹｅｓ）。
【０１０１】
次に、次プロセス決定部１４は、他の順序制約グループＣにおいて、仮選択したプロセスｃを含む群２より高い起動優先順位が設定された所属群１があると判断する（ステップＳ７でＹｅｓ）。
【０１０２】
次に、次プロセス決定部１４は、そのような群１が起動完了していると判断する（ステップＳ８でＹｅｓ）。
【０１０３】
そこで、次プロセス決定部１４は、仮選択したプロセスｃを次プロセスとして正式決定する（ステップＳ９）。
【０１０４】
次に、次プロセス起動部１５は、次プロセスに決定したプロセスｃを起動する（ステップＳ１０）。
【０１０５】
次に、管理テーブル更新部１６は、管理テーブル１２を更新する（ステップＳ１１）。
【０１０６】
まず、プロセス管理テーブル１２３におけるプロセスｃの起動状態は「未起動」となっている。そこで、管理テーブル更新部１６は、プロセスｃの起動状態を「起動中」に更新する。
【０１０７】
また、群管理テーブル１２２において、プロセスｄが所属する群２の起動状態は「起動中」となっている。したがって、管理テーブル更新部１６は、群管理テーブル１２２における群２の起動状態を「起動中」のままとする。
【０１０８】
また、順序制約グループテーブル１２１において、プロセスｄが含まれる順序制約グループＡの起動状態は「起動中」である。そこで、管理テーブル更新部１６は、順序制約グループＡの起動状態を「起動中」のままとする。
【０１０９】
以上で、時点（ロ）における情報処理装置１の次プロセス決定動作の説明を終了する。
【０１１０】
このようにして、情報処理装置１は次プロセスを決定しながらプロセスａ〜ｆの起動処理を行う。
【０１１１】
その結果、図５に示した本発明の実施の形態の起動順序制御では、図６に示した関連技術の起動順序制御に対して、起動待ち合わせ時間を削減できていることがわかる。
【０１１２】
次に、本発明の実施の形態の効果について述べる。
【０１１３】
本発明の実施の形態としての情報処理装置は、互いに順序制約のあるプロセスを群単位で起動制御する場合の再開処理時間全体を短縮することができる。
【０１１４】
その理由は、プロセス仮選択部が、起動完了していない順序制約グループおよび起動完了していない群を優先順位にしたがって選択し、選択した順序制約グループおよび選択した群に含まれ、かつ、まだ起動していないプロセスを仮選択するからである。そして、次プロセス決定部が、仮選択したプロセスが含まれる他の順序制約グループにおいて、より優先順位の高い群が起動完了している場合に、そのプロセスを次プロセスとして決定するからである。これにより、本発明の実施の形態としての情報処理装置は、群単位で起動制御するように管理されているプロセス群に対して、群単位の起動優先順位およびプロセス単位の順序制約を随時確認しながら次プロセスを決定することが可能となる。その結果、本発明の実施の形態としての情報処理装置は、起動待ち受け時間を削減し、再開処理時間全体を短縮することが可能となる。
【０１１５】
また、本発明の実施の形態としての情報処理装置は、再開処理時間全体を短縮する効率的な起動順序制御を、管理テーブルを更新するだけで柔軟に実行することができる。
【０１１６】
その理由として、例えば、本発明の実施の形態の情報処理装置を適用した呼処理制御サーバへの新規機能追加が発生した場合を想定する。このような場合、本発明の実施の形態の情報処理装置は、新しいサービスを提供するためのプロセスに関する順序制約や所属群を表す情報を管理テーブルに追加する。これにより、本発明の実施の形態の情報処理装置は、新規プロセスを含むプロセス群の起動制御を、起動待ち合わせ時間を抑制しながら行うことができる。したがって、本発明の実施の形態の情報処理装置は、各プロセスの起動処理に要する時間を算出する等によるプロセスのスケジューリングを開発時の作り込みによって行う必要がない。
【０１１７】
なお、本発明の実施の形態において、管理テーブル１２が図２に示すような構造の情報を記憶する一例について説明したが、管理テーブル１２は、その他の構造であっても構わない。管理テーブル１２は、少なくとも、プロセス間の起動順序の制約である順序制約を表す情報、関連性のある順序制約の集まりである順序制約グループを表す情報、プロセスが所属する群を表す情報、群に設定された起動優先順位を表す情報、順序制約グループの起動状態を表す情報、群の起動状態を表す情報、および、プロセスの起動状態を表す情報を少なくとも記憶するものであればよい。
【０１１８】
また、本発明の実施の形態において、管理テーブル１２は、順序制約グループに設定された優先順位を表す情報を必ずしも記憶していなくてもよい。その場合、プロセス仮選択部１３は、図３のステップＳ１において、起動完了していない順序制約グループのいずれかをランダムに選択してもよい。
【０１１９】
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した情報処理装置の動作を、本発明のコンピュータ・プログラムとして情報処理装置の記憶装置（記憶媒体）に格納しておき、係るコンピュータ・プログラムを当該ＣＰＵが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。
【０１２０】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０１２１】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【符号の説明】
【０１２２】
１  情報処理装置
１１  プロセス記憶部
１２  管理テーブル
１３  プロセス仮選択部
１４  次プロセス決定部
１５  プロセス起動部
１６  管理テーブル更新部
１２１  順序制約グループ管理テーブル
１２２  群管理テーブル
１２３  プロセス管理テーブル
【図１】
2012203449.tif 000003
【図２】
2012203449.tif 000004
【図３】
2012203449.tif 000005
【図４】
2012203449.tif 000006
【図５】
2012203449.tif 000007
【図６】
2012203449.tif 000008
【図７】
2012203449.tif 000009