(57)【要約】  ジョブ制御情報記憶部（１１１）は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶し、ジョブ実行部（１０１）は、実行順序に従ってタスクを実行し、ジョブ実行管理部（１０２）は、実行中のタスクの状態を監視し、実行条件に基づいて、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出し、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答し、仮想タスク生成部（１２１）は、検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成し、仮想タスク登録部（１２２）は、仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをタスク制御情報記憶部（１１１）の実行順序に追加する。これにより、効率的にタスクのスケジューリングを実施することができる。
2010001555.tif 000002
【特許請求の範囲】
【請求項１】
並行して動作可能な複数のタスクの実行順序を決定する実行順序決定装置であって、
各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、
前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、
実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、
前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部とを備え、
前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、
前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加することを特徴とする実行順序決定装置。
【請求項２】
前記実行順序決定装置に接続される周辺デバイスの制御が開始されるための制御条件を記憶するデバイス制御情報記憶部と、
実行中の周辺デバイスの状態を監視し、前記デバイス制御情報記憶部に記憶されている前記制御条件に基づいて、周辺デバイスの状態が、周辺デバイスを制御するデバイス制御が実行されている実行状態から、他の周辺デバイスからの応答があるまで待機する処理待ち状態に遷移するデバイス制御を検出するデバイス制御管理部とをさらに備え、
前記仮想タスク管理部は、前記デバイス制御管理部によって検出された前記処理待ち状態に遷移するデバイス制御を複製したデバイス制御を仮想タスクとして生成し、
前記デバイス制御管理部は、前記処理待ち状態に遷移するデバイス制御を検出した際に、当該デバイス制御に関する情報を前記タスク実行管理部に通知し、
前記タスク実行管理部は、前記デバイス制御管理部から前記デバイス制御に関する情報を受け取り、受け取った前記デバイス制御に関する情報に基づいて、他のデバイス制御を実行する要求を前記処理待ち状態に遷移するデバイス制御から受け付けた際に、前記処理待ち状態に遷移するデバイス制御からの前記要求に対して応答し、
前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するデバイス制御と並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加することを特徴とする請求項１記載の実行順序決定装置。
【請求項３】
各タスクを実行した実行結果と、各タスクの実行開始及び実行終了のログとを含む履歴情報を記憶するタスク履歴記憶部と、
前記タスク実行管理部によって前記処理待ち状態に遷移するタスクが検出された際に、前記他のタスクの実行結果を、前記タスク制御情報記憶部に記憶されている実行条件と、前記タスク履歴記憶部に記憶されている履歴情報とに基づいて予測するタスク結果予測部とをさらに備え、
前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記タスク結果予測部によって予測された前記実行結果を用いて、前記処理待ち状態に遷移するタスクからの前記要求に対して応答することを特徴とする請求項１又は２記載の実行順序決定装置。
【請求項４】
前記仮想タスク管理部は、前記仮想タスクが受け取る前記他のタスクの実行結果が異常終了であった場合、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序から削除することを特徴とする請求項１〜３のいずれかに記載の実行順序決定装置。
【請求項５】
並行して動作可能な複数のタスクの実行順序を決定するための実行順序決定プログラムであって、
各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、
前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、
実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、
前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部としてコンピュータを機能させ、
前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、
前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加することを特徴とする実行順序決定プログラム。
【請求項６】
並行して動作可能な複数のタスクの実行順序を決定する実行順序決定回路であって、
各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶回路と、
前記タスク制御情報記憶回路に記憶されている前記実行順序に従って前記タスクを実行するタスク実行回路と、
実行中のタスクの状態を監視し、前記タスク制御情報記憶回路に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理回路と、
前記タスク実行管理回路によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理回路とを備え、
前記タスク実行管理回路は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、
前記仮想タスク管理回路は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶回路の前記実行順序に追加することを特徴とする実行順序決定回路。
【請求項７】
請求項１〜４のいずれかに記載の実行順序決定装置と、
前記実行順序決定装置に接続される周辺デバイスとを備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並行して動作可能な複数のタスクの実行順序を決定する実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置に関し、特に、ハードウェア構成の変化に応じて効率的にタスクのスケジューリングを行う実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置に関するものである。
【背景技術】
【０００２】
従来、デジタル家電機器又は携帯電話機などに代表される情報処理機器は、多種多様な機能を実現するのに、計算機システム上に多数のタスクを常駐又は起動し、当該タスクを実行している。【０００３】
近年、情報処理機器のネットワーク対応により、情報処理機器の提供するサービスが多様化し、ユーザ要件が高度化している。これに伴い、情報処理機器が実行するジョブ及びタスクの数及び処理量は増大し、ジョブ及びタスクの処理内容も複雑化する傾向にある。【０００４】
ジョブ及びタスクの数及び処理量の増大化に対応するため、複数のＣＰＵ（中央演算処理装置）、又は複数の演算を並列実行できる単一のＣＰＵを用意した計算機システムの構築が行われている。計算機システム上で、複数のジョブ及びタスクが並列して実行される。【０００５】
このような計算機システムにおいては、計算能力に見合った処理時間を得るのに、効率の良いジョブ及びタスクのスケジュールを編成する必要がある。特に、複数のタスクの並列実行が可能な計算機システムでは、複数のタスクが独立して動作するので、ジョブ間及びタスク間の同期設計又は実行順序の決定が処理待ち時間の削減に対して極めて重要な要素となる。【０００６】
特に、システムの起動処理のような、システムで予め実行が定められている処理においては、ジョブ及びタスクの実行順序の効率的な決定は、システムの起動時間を短縮するのに必須である。ここでの、システムの起動処理のような予め実行が定められている処理とは、複数のジョブ及びタスクが互いに連携しながら毎回一定の処理を繰り返すことで、システムをあらかじめ定められた状態に遷移させるような処理のことである。【０００７】
従来、複数のジョブを並列に実行可能な計算機システムにおけるジョブの実行順序決定方法としては、過去のジョブの実行履歴をもとに、シミュレーションを行い、システム全体の処理時間を短縮するものがあった（例えば、特許文献１参照）。一括データ処理であるバッチ処理を行うジョブは、決まった入力ファイルに対して一定の処理を行い、開始時間に依存しない性質を有しており、複数のジョブが定期的に繰り返される。このような形態のジョブに関して、過去の実行履歴をもとに、シミュレーションが実行される。これにより、対象となる計算機システムにおいてジョブが実行される前、又は、システム設計時に、ジョブのスケジューリングが行われることで、システム全体の処理時間の短縮が図られている。【０００８】
しかしながら、前記従来の構成では、各ジョブが動作中に入出力操作を行ったファイルのアクセス履歴情報を用いて、各ジョブの実行開始条件を決定し、実行履歴情報から各ジョブの実行時間を求めている。つまり、過去のジョブの実行結果に基づいてジョブの実行開始時間を求めている。そのため、従来は、これらのジョブにより処理を実施する計算機システムから見た場合、取得済みの履歴情報を用いた静的解析によりジョブの実行順序を決定している。このような実行順序決定方法は、例えば、ハードディスクドライブを内蔵する計算機システムにおいて、ファイルシステムの検査処理など、処理対象のデータ量により処理時間が変化するジョブが含まれる場合に問題となる。つまり、システム設計時又は構築時に収集された、実行履歴情報の各ジョブの実行時間からは、計算機システムごとの最適なジョブの実行開始時間を求めることはできず、効率的なジョブの実行順序を決定できないという課題を有していた。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平８−２８６９５８号公報
【発明の概要】
【００１０】
本発明は、上記の問題を解決するためになされたもので、効率的にタスクのスケジューリングを実施することができる実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置を提供することを目的とするものである。
【００１１】
本発明の一局面に係る実行順序決定装置は、並行して動作可能な複数のタスクの実行順序を決定する実行順序決定装置であって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部とを備え、前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加する。
【００１２】
この構成によれば、タスク制御情報記憶部は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶しており、タスク実行部は、タスク制御情報記憶部に記憶されている実行順序に従ってタスクを実行する。タスク実行管理部は、実行中のタスクの状態を監視し、タスク制御情報記憶部に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。仮想タスク管理部は、タスク実行管理部によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。そして、タスク実行管理部は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。続いて、仮想タスク管理部は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをタスク制御情報記憶部の実行順序に追加する。
【００１３】
本発明によれば、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【００１４】
本発明の目的、特徴及び利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１における実行順序決定装置を備えた計算機のハードウェア構成を示す図である。
【図２】本発明の実施の形態１における実行順序決定装置の構成を示すブロック図である。
【図３】本発明の実施の形態１におけるジョブ制御情報記憶部に格納されているジョブ制御情報の一例を示す図である。
【図４】本発明の実施の形態１におけるジョブ履歴記憶部に格納されている履歴情報の一例を示す図である。
【図５】サーバの初期化に要する処理時間が、クライアントの起動に要する処理時間よりも短い場合の実行順序決定装置の動作を示す図である。
【図６】クライアントの起動に要する処理時間を大幅に短縮するようなハードウェア構成の変更が加えられた場合の実行順序決定装置の動作を示す図である。
【図７】本発明の実施の形態１における実行順序決定装置の動作について説明するための第１のフローチャートである。
【図８】本発明の実施の形態１における実行順序決定装置の動作について説明するための第２のフローチャートである。
【図９】本発明の実施の形態２における実行順序決定装置の構成を示すブロック図である。
【図１０】本発明の実施の形態２におけるデバイス制御情報記憶部に格納されているデバイス制御情報の一例を示す図である。
【図１１】本発明の実施の形態２におけるデバイス履歴記憶部に格納されているデバイスの履歴情報の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下本発明の実施の形態について、図面を参照しながら説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
【００１７】
（実施の形態１）
図１は、本発明の実施の形態１における実行順序決定装置を備えた計算機のハードウェア構成を示す図である。この計算機（以下、情報処理装置とも言う）は、それ自体としてユーザの使用に供することもできるが、様々な電気機器に組み込まれてもよい。例えば、計算機は、代表的にはＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の汎用のコンピュータである。また、計算機は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）あるいは携帯電話機等の携帯通信端末でもよく、ＢＤ等の光ディスクから情報を読み出すとともに、光ディスクへ情報を書き込む光ディスク装置でもよい。
【００１８】
計算機は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１、メモリ装置２、周辺デバイス３、タイマ回路４及び電源回路５を備えている。周辺デバイス３は、通信装置３１、入力装置３２、出力装置３３、ハードディスク装置３４及び読取書込装置３５を有している。これらの装置は、バスライン６を通じて互いに接続されている。ハードディスク装置３４、読取書込装置３５、入力装置３２及び出力装置３３は、それぞれ、インタフェース（Ｉ／Ｆ）３６、３７、３８及び３９を通じてバスライン６に接続される。
【００１９】
ＣＰＵ１は、単一のＣＰＵで構成されても良く、複数のＣＰＵで構成されてもよい。一例として、情報処理装置は、複数のＣＰＵ１１，１２，１３を有する。メモリ装置２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２を備えている。
【００２０】
ＲＯＭ２１は、ＣＰＵ１の動作を規定するコンピュータプログラム及びデータを記憶している。コンピュータプログラム及びデータは、ハードディスク装置３４に記憶させることもできる。ＣＰＵ１は、ＲＯＭ２１又はハードディスク装置３４が格納するコンピュータプログラム及びデータを、必要に応じてＲＡＭ２２に書き込みつつ、コンピュータプログラムが規定する処理を実行する。ＲＡＭ２２は、ＣＰＵ１が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。ＲＯＭ２１には、フラッシュＲＯＭのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリ及び記憶媒体も含まれる。ＲＡＭ２２には、電源を切ると記憶内容が保持されない揮発性のメモリ及び記憶媒体が含まれる。
【００２１】
タイマ回路４は、一定の周期でタイマ割り込み信号を出力する。電源回路５は、計算機に供給される電力のＯＮ／ＯＦＦを制御する。電源回路５によって電力がＯＮされることで、計算機システムが起動することになる。
【００２２】
計算機が必要とする周辺デバイス３は、計算機が有する機能に基づいて決定される。ハードディスク装置３４は、内蔵する不図示のハードディスクへコンピュータプログラム又はデータを書き込み、かつハードディスクからコンピュータプログラム又はデータを読み出す。読取書込装置３５は、例えばＣＤ、ＤＶＤ又はメモリカードなどの記録媒体４１に記録されたコンピュータプログラム又はデータを読み取る。通信装置３１は、電話回線、ネットワーク線、無線又は赤外線通信等の通信回線４２を通じて、外部と自身との間で、コンピュータプログラム又はデータを交換する。入力装置３２は、例えば、ＰＤＡに配列されたキーボード、携帯電話機に配列された入力ボタン、あるいは着脱自在のマウス又はキーボードであり、ユーザの操作を受け付けることによりデータ等を入力する。出力装置３３は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ；液晶表示器）、ブラウン管又はスピーカであり、データ及び画像等を画面に表示したり、データ等を音声で出力したりする。
【００２３】
以上のように、ＲＯＭ２１、ハードディスク装置３４、又はフレキシブルディスク若しくはＣＤ−ＲＯＭ等の記録媒体４１を通じて、コンピュータプログラムが計算機に供給され、計算機は動作する。また、コンピュータプログラムは、通信回線４２等の伝送媒体を通じて供給することも可能である。例えば、記録媒体４１（ＣＤ−ＲＯＭ）に記録されたコンピュータプログラムは、読取書込装置３５を計算機へ接続することで、読み出すことができる。また、読み出したコンピュータプログラムは、ＲＡＭ２２又はハードディスク装置３４に格納することができる。
【００２４】
プログラム記録媒体としてＲＯＭ２１からコンピュータプログラムが供給される場合には、当該ＲＯＭ２１を計算機に搭載することにより、ＣＰＵ１は上記コンピュータプログラムに従った処理を実行可能となる。通信回線４２等の伝送媒体を通じて供給されるコンピュータプログラムは、通信装置３１を通じて受信され、例えば、ＲＡＭ２２又はハードディスク装置３４に格納される。伝送媒体は、有線の伝送媒体に限られず、無線の伝送媒体であってもよい。また、伝送媒体は通信線路のみでなく、例えばルータなどの通信線路を中継する中継装置も含む。
【００２５】
実行順序決定プログラムは、例えばメモリ装置２に格納され、ＣＰＵ１と協働して実行することにより実現している。
【００２６】
図２は、本発明の実施の形態１における実行順序決定装置の構成を示すブロック図である。
【００２７】
図２において、実行順序決定装置は、スケジューラ１００、ジョブ実行部１０１、ジョブ実行管理部１０２、ジョブ条件解析部１０３、ジョブ結果予測部１０４、ジョブ履歴処理部１０５、ジョブ制御情報記憶部１１１、ジョブ履歴記憶部１１２及び仮想タスク管理部１２０を備えている。
【００２８】
なお、本明細書におけるジョブとは、コンピュータに実行させる一連の処理を表す単位であり、タスクとは、ジョブにおける一連の処理をさらに細分化した処理を表す単位である。すなわち、ジョブは、複数のタスクで構成される。また、特許請求の範囲におけるタスクは、上記のジョブの概念とタスクの概念とを含む。すなわち、特許請求の範囲におけるタスクは、複数の処理のまとまりを表すと共に、複数の処理のうちの１つの処理を表す。
【００２９】
ジョブ制御情報記憶部１１１は、ジョブの実行を予約するために、実行するプログラム又は必要なファイル情報を指示するためのジョブ制御情報を保持している。ジョブ制御情報は、実行するプログラムの起動順序、及び起動条件の解析に必要な情報を含む。ジョブ制御情報は、計算機が実行するタスクを識別する識別子と、起動条件となるタスクの実行条件と、タスクの起動順序とを含めば良く、記述形式は任意のものが利用可能である。
【００３０】
図３は、本発明実施の形態１におけるジョブ制御情報記憶部に格納されているジョブ制御情報の一例を示す図である。
【００３１】
ジョブ制御情報記憶部１１１は、ジョブ制御情報として、起動順序２０１、タスク名２０２及びタスク実行条件２０３を組にして管理している。ここでは、アプリケーションＡを起動する際に、初期化開始とＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）受付開始との２つのタスクを順に実行することを示している。また、アプリケーションＢを起動する際に、初期化開始とディスプレイ設定との２つのタスクを順に実行することを示している。さらに、ディスプレイ設定は、アプリケーションＡのＲＰＣ受付開始処理が既に実行されていることが実行条件として設定されている。
【００３２】
ジョブ制御情報記憶部１１１は、起動順序２０１、タスク名２０２及びタスク実行条件２０３を対応付けたジョブ制御情報をテーブル形式で記憶している。ジョブ制御情報記憶部１１１には、起動する順序に従ってタスク名２０２及びタスク実行条件２０３が格納されている。ジョブ制御情報記憶部１１１は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶する。
【００３３】
スケジューラ１００は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に従って、次に実行するタスクを決定する。スケジューラ１００は、ジョブ制御情報に含まれる起動順序に従って、次に実行するタスクを決定する。スケジューラ１００は、決定したタスクの開始をジョブ実行部１０１に指示する。
【００３４】
ジョブ実行部１０１は、スケジューラ１００からの指示に従い、対象のジョブ及びタスクを実行する。ジョブ実行部１０１は、スケジューラ１００によって決定されたタスクを実行する。すなわち、ジョブ実行部１０１は、ジョブ制御情報記憶部１１１に記憶されている実行順序に従ってタスクを実行する。
【００３５】
ジョブ条件解析部１０３は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に基づいて、ジョブ及びタスクの実行条件及び依存関係を解析する。
【００３６】
ジョブ履歴記憶部１１２は、各タスク及び各ジョブを実行した実行結果と、各タスク及び各ジョブの実行開始及び実行終了のログとを含む履歴情報を記憶している。
【００３７】
図４は、本発明実施の形態１におけるジョブ履歴記憶部に格納されている履歴情報の一例を示す図である。履歴情報は、ジョブ開始レコード３１１、タスク開始レコード３１２、タスク終了レコード３１３及びジョブ終了レコード３１４などから構成されている。これら各レコードは、ジョブの実行開始、タスクの実行開始、ジョブの実行終了及びジョブの実行終了などの事象により発生する。各レコードは、対象のジョブ又はタスクを識別する識別子と、開始又は終了のいずれかを示す情報とを含む。さらに、ジョブ開始レコード３１１及びタスク開始レコード３１２は、実行時の開始条件を判断するための開始時入力情報３０１を含む。タスク終了レコード３１３及びジョブ終了レコード３１４は、ジョブ又はタスクの実行終了が正常終了であったか異常終了であったかを示す終了状態３０２を含む。
【００３８】
ジョブ結果予測部１０４は、現在実行中又は実行予定のジョブ及びタスクの実行結果を、履歴を用いて予測し、予測した実行結果をジョブ実行管理部１０２に通知する。ジョブ結果予測部１０４は、ジョブ条件解析部１０３から、解析されたジョブ及びジョブステップ（タスク）の実行条件及び依存関係を受け取る。ジョブ結果予測部１０４は、ジョブ条件解析部１０３によって解析されたジョブ及びジョブステップの実行条件及び依存関係と、ジョブ履歴記憶部１１２に記憶されている履歴情報とを用いて、現在実行中又は実行予定のジョブ及びタスクの実行結果を予測する。
【００３９】
ジョブ実行管理部１０２は、実行中のタスクの状態を監視し、ジョブ制御情報記憶部１１１に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。また、ジョブ結果予測部１０４は、ジョブ実行管理部１０２によって処理待ち状態に遷移するタスクが検出された際に、他のタスクの実行結果を、ジョブ制御情報記憶部１１１に記憶されている実行条件と、ジョブ履歴記憶部１１２に記憶されている履歴情報とに基づいて予測する。
【００４０】
ジョブ実行管理部１０２は、ジョブ及びタスクの状態を監視して、ジョブ及びタスクの状態をジョブ履歴処理部１０５に通知する。また、ジョブ実行管理部１０２は、ジョブ及びタスクの実行条件又は依存関係に基づいて、ジョブ及びタスクの状態がタスク待機状態（アイドル状態）へ遷移することを検出する。ジョブ実行管理部１０２は、アイドル状態への遷移を検出すると、ジョブ結果予測部１０４から予測された実行結果を受け取る。
【００４１】
ジョブ結果予測部１０４によって予測された実行結果が正常終了である場合、ジョブ実行管理部１０２は、当該タスクの実行結果として正常終了を返し、タスクを実行状態のまま維持し、当該ジョブの処理を継続させる。一方、ジョブ結果予測部１０４によって予測された実行結果が異常終了である場合、ジョブ実行管理部１０２は、当該タスクの実行結果として異常終了を返し、エラー処理を行うよう指示する。
【００４２】
続いて、ジョブ実行管理部１０２は、ジョブ及びタスクの実行条件の仮成立によりスキップされる処理、又は依存関係の解消によりスキップされる処理を実行する該タスクを複製した仮想タスクの起動を、仮想タスク管理部１２０に指示する。
【００４３】
また、ジョブ実行管理部１０２は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。このとき、ジョブ実行管理部１０２は、ジョブ結果予測部１０４によって予測された実行結果を用いて、処理待ち状態に遷移するタスクからの要求に対して応答する。
【００４４】
ジョブ履歴処理部１０５は、ジョブ実行管理部１０２から通知されたジョブ及びタスクの状態を用いて、タスク及びジョブの実行開始及び実行終了のログをジョブ履歴記憶部１１２へ追記する。
【００４５】
仮想タスク管理部１２０は、仮想タスク生成部１２１及び仮想タスク登録部１２２を含む。仮想タスク管理部１２０は、ジョブ実行管理部１０２によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。また、仮想タスク管理部１２０は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをジョブ制御情報記憶部１１１の実行順序に追加する。さらに、仮想タスク管理部１２０は、仮想タスクが受け取る他のタスクの実行結果が異常終了であった場合、仮想タスクをジョブ制御情報記憶部１１１の実行順序から削除する。
【００４６】
仮想タスク生成部１２１は、ジョブ実行管理部１０２からの指示を受け取り、実行条件又は依存関係が修正されたジョブ又はタスクの複製を仮想タスクとして生成する。すなわち、仮想タスク生成部１２１は、ジョブ又はタスクが本来実行しなければならなかった処理を実行するための仮想タスクを生成する。
【００４７】
仮想タスク登録部１２２は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に、当該ジョブが仮想タスクを起動する旨の制御情報を追記する。すなわち、仮想タスク登録部１２２は、仮想タスク生成部１２１によって生成された仮想タスクの制御情報をジョブ制御情報記憶部１１１に登録する。また、仮想タスク登録部１２２は、仮想タスク生成部１２１が生成した仮想タスクが異常終了した際に、該仮想タスクに対応するジョブ制御情報をジョブ制御情報記憶部１１１から削除する。
【００４８】
以上により、本実施の形態１の実行順序決定装置は、ジョブ実行時の実行条件の成立又は不成立の結果と実行条件を判断する時に参照されたデータとを、履歴情報として保持することで、システム構成が変更された場合でも、効率的なジョブスケジューリング計画を実施することができる。これにより、複数のジョブが並列して動作可能な計算機システムにおいて、システム構成が変更された場合にも、即時に効率的なジョブスケジューリングを実施することが可能となり、実行時間を短縮することができる。
【００４９】
なお、本実施の形態において、ジョブ制御情報記憶部１１１がタスク制御情報記憶部の一例に相当し、ジョブ実行部１０１がタスク実行部の一例に相当し、ジョブ実行管理部１０２がタスク実行管理部の一例に相当し、仮想タスク管理部１２０が仮想タスク管理部の一例に相当し、ジョブ履歴記憶部１１２がタスク履歴記憶部の一例に相当し、ジョブ結果予測部１０４がタスク結果予測部の一例に相当する。
【００５０】
次に、図５及び図６を用いて、クライアントサーバシステムを含む情報処理機器における、クライアントのサーバの初期化完了待ちを原因として発生するクライアントのアイドル時間を短縮する短縮方法の一例について説明する。図５及び図６の計算機システムは、実行順序決定装置を備える。また、計算機システムにおいて実行されるジョブとして、サーバ４０１、クライアント４０２、及びクライアント４０２により起動されるアプリケーション４０３がある。
【００５１】
なお、サーバ４０１は、周辺デバイスを一括して管理する。例えば、サーバ４０１は、周辺デバイスの画面表示の設定を変更したり、デコーダの初期化を要求したりする。また、クライアント４０２は、サーバ４０１と連携して、種々のアプリケーションを起動する。例えば、クライアント４０２は、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）を再生するためのアプリケーション及びＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を統括するアプリケーションなどを起動する。
【００５２】
図５は、サーバ４０１の初期化４１１に要する処理時間が、クライアント４０２の起動４１５に要する処理時間よりも短い場合の実行順序決定装置の動作を示す図である。なお、図５に示す計算機システムは、初期設計時におけるシステム構成である。
【００５３】
図５において、クライアント４０２は、起動４１５及び初期化が終了した後、ジョブ実行管理部１０２へリクエスト４２２を発行する。サーバ４０１の初期化４１１に要する処理時間が、クライアント４０２の起動４１５に要する処理時間よりも短いので、クライアント４０２からジョブ実行管理部１０２へのリクエスト４２２の発行時には、サーバ４０１はサービス実行４１２を既に開始している。そのため、サーバ４０１は、初期化４１１の終了を待つことなく、ジョブ実行管理部１０２からのリクエスト４２４に対する処理を実行し、ジョブ実行管理部１０２へ応答４２６を返すことができる。また、クライアント４０２は、ジョブ実行管理部１０２からの結果４２７を受け取ると、アプリケーション４０３の起動要求４２５を遅滞なく実行することができる。
【００５４】
図６は、クライアント４０２の起動４１５に要する処理時間を大幅に短縮するようなハードウェア構成の変更が加えられた場合の実行順序決定装置の動作を示す図である。図６では、サーバ４０１の初期化４１１に要する処理時間が、クライアント４０２の起動４１５に要する処理時間よりも長いので、クライアント４０２からジョブ実行管理部１０２へのリクエスト４２２の発行時には、サーバ４０１は初期化４１１を終了していない。そのため、サーバ４０１がジョブ実行管理部１０２からのリクエストを受信してから初期化４１１が完了するまでの初期化完了待ち４１３に要するアイドル時間が発生する。
【００５５】
この場合、ジョブ実行管理部１０２は、クライアント４０２が発行したリクエスト４２２をフックし、リクエストの発行先であるサーバ４０１の実行状態を検査する。このとき、ジョブ実行管理部１０２は、ジョブ制御情報記憶部１１１に格納されているジョブ制御情報より、リクエスト４２２の実行条件が、初期化４１１の完了であることを知ることができる。これにより、ジョブ結果予測部１０４は、サーバ４０１の初期化４１１が完了するまでの間、クライアント４０２が初期化完了待ち状態になることを予測することができる。
【００５６】
そこで、ジョブ実行管理部１０２は、ジョブ結果予測部１０４から通知された実行結果に基づき、リクエスト４２２に対する応答４２３をクライアント４０２に発行する。さらに、ジョブ実行管理部１０２は、サーバ４０１のサービス実行４１２開始後にリクエスト４２４を発行するための仮想タスク４１４を起動する。
【００５７】
仮想タスク４１４は、サービス実行４１２の開始後、リクエスト４２４をサーバ４０１に発行し、サーバ４０１からの応答４２６を待つ。クライアント４０２は、リクエスト４２２の発行後、即時に応答４２３を受け取ることができるので、後続のクライアント処理４１６を実行することが可能となる。これにより、クライアント４０２は、アプリケーション４０３の起動要求４２５を遅滞なく実行することが可能となる。
【００５８】
一方、仮想タスク４１４は、サーバ４０１からの応答４２６を受け取ると、ジョブ実行管理部１０２が先行して発行した応答４２３の内容を検査する。仮想タスク４１４は、結果４２７をクライアント４０２に返し、後処理を実行してもよい。また、仮想タスク４１４は、結果４２７をクライアント４０２に返すことなく、処理を完了してもよい。また、仮想タスク４１４は、応答４２６の内容と応答４２３の内容とが不一致であった場合についても、エラー処理を実施しても良い。また、仮想タスク４１４は、エラーの発生を非同期にクライアント４０２に通知し、エラー処理をクライアント４０２に実施させてもよい。
【００５９】
次に、本実施の形態１における実行順序決定装置の動作について説明する。図７及び図８は、本発明の実施の形態１における実行順序決定装置の動作について説明するためのフローチャートである。
【００６０】
なお、図７及び図８では、図６と同様に、サーバクライアントシステムにおける実行順序決定装置の動作について説明する。すなわち、第１のＣＰＵで実行されるクライアントジョブは、第１のＣＰＵとは異なる第２のＣＰＵで実行されるサーバジョブに対して、リクエストを送信する。サーバジョブは、リクエストに基づいた処理を実行し、実行結果をクライアントジョブへ返信する。クライアントジョブは、サーバジョブからの実行結果を受信すると、アプリケーションを実行するよう指示する。
【００６１】
まず、図７のステップＳ１において、スケジューラ１００は、ジョブ制御情報記憶部１１１に記憶されているタスクに基づいて、次に実行するタスクを決定する。次に、ステップＳ２において、ジョブ実行部１０１は、スケジューラ１００によって決定されたタスクを実行する。
【００６２】
次に、ステップＳ３において、ジョブ実行管理部１０２は、実行中及び次に実行するタスクの状態を監視する。次に、ステップＳ３において、ジョブ実行管理部１０２は、ジョブ制御情報記憶部１１１に記憶されているタスクの実行条件又は依存関係に基づいて、タスクの状態が実行状態からアイドル状態へ遷移するか否かを判断する。ここで、タスクの状態が実行状態からアイドル状態へ遷移しないと判断された場合（ステップＳ４でＮＯ）、ステップＳ１の処理へ戻る。
【００６３】
一方、タスクの状態が実行状態からアイドル状態へ遷移すると判断された場合（ステップＳ４でＹＥＳ）、ステップＳ５において、ジョブ条件解析部１０３は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に基づいて、タスクの実行条件及び依存関係を解析する。例えば、初期化処理のタスクを実行している場合、ジョブ条件解析部１０３は、初期化処理が終了しなければ、次のサービス実行処理のタスクを実行することができないことを判断する。また、例えば、サービス実行処理のタスクを実行している場合、実行中のサービス実行処理が他のサービス実行処理と依存関係を有する可能性がある。そのため、サービス実行処理のタスクを実行している場合、ジョブ条件解析部１０３は、実行中のサービス実行処理と他のサービス実行処理との依存関係を解析する。
【００６４】
次に、ステップＳ６において、ジョブ結果予測部１０４は、ジョブ条件解析部１０３によって解析されたタスクの実行条件及び依存関係と、ジョブ履歴記憶部１１２に記憶されている履歴情報とに基づいて、現在実行中又は実行予定のタスクの実行結果を予測する。
【００６５】
次に、ステップＳ７において、ジョブ実行管理部１０２は、ジョブ結果予測部１０４によって予測された実行結果が正常終了であるか否かを判断する。ここで、予測された実行結果が正常終了でないと判断された場合（ステップＳ７でＮＯ）、図８のステップＳ１４の処理へ移行する。
【００６６】
一方、予測された実行結果が正常終了であると判断された場合（ステップＳ７でＹＥＳ）、ステップＳ８において、ジョブ実行管理部１０２は、ジョブ結果予測部１０４によって予測された実行結果を、タスクの状態が実行状態からアイドル状態へ遷移すると判断されたタスクへ送信する。そして、ジョブ実行管理部１０２は、仮想タスクを生成するように仮想タスク生成部１２１へ指示する。
【００６７】
なお、本実施の形態では、ジョブ結果予測部１０４は、ジョブ条件解析部１０３によって解析されたタスクの実行条件及び依存関係と、ジョブ履歴記憶部１１２に記憶されている履歴情報とに基づいて、現在実行中又は実行予定のタスクの実行結果を予測しているが、本発明は特にこれに限定されない。例えば、ジョブ制御情報記憶部１１１にタスクの依存関係と実行結果とを対応付けて予め記憶しておき、ジョブ実行管理部１０２は、ジョブ制御情報記憶部１１１に記憶されているタスクの依存関係を参照し、実行結果を決定してもよい。
【００６８】
次に、ステップＳ９において、仮想タスク生成部１２１は、タスクの状態が実行状態からアイドル状態へ遷移すると判断されたタスクを複製した仮想タスクを生成する。例えば、図６の場合、クライアント４０２のクライアント処理４１６を複製したタスクが仮想タスクとして生成される。
【００６９】
次に、ステップＳ１０において、仮想タスク登録部１２２は、生成した仮想タスクをジョブ制御情報記憶部１１１に追加する。このとき、仮想タスク登録部１２２は、仮想タスクの実行順序と、仮想タスクが実行される実行条件と、ジョブ結果予測部１０４によって予測された実行結果とを対応付けてジョブ制御情報記憶部１１１に記憶する。生成された仮想タスクがジョブ制御情報記憶部１１１に追加されることにより、今回アイドリング状態へ遷移すると判断されたタスクと同じタスクが実行される際に、タスクの解析及びタスクの実行結果の予測を行うことなく、ジョブ制御情報に登録されている仮想タスクを実行することが可能となる。
【００７０】
次に、図８のステップＳ１１において、ジョブ実行部１０１は、仮想タスクを実行する。このとき、スケジューラ１００は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に基づいて、仮想タスクを次に実行するタスクとして決定する。ジョブ実行部１０１は、仮想タスクを実行する。ジョブ実行部１０１は、スケジューラ１００によって決定された仮想タスクを実行する。
【００７１】
次に、ステップＳ１２において、ジョブ実行管理部１０２は、仮想タスクが正常に終了したか否かを判断する。具体的には、ジョブ実行管理部１０２は、ジョブ結果予測部１０４によって予測された実行結果と、実際にタスクが実行されることにより通知される実行結果とが一致するか否かを判断し、２つの実行結果が一致する場合、仮想タスクが正常に終了したと判断する。一方、ジョブ実行管理部１０２は、２つの実行結果が一致しない場合、仮想タスクが正常に終了しなかったと判断する。
【００７２】
ここで、仮想タスクが正常に終了したと判断された場合（ステップＳ１２でＹＥＳ）、ステップＳ１の処理へ戻る。なお、ジョブ実行管理部１０２は、実際にタスクが実行されることにより通知される実行結果を、タスクの状態が実行状態からアイドル状態へ遷移すると判断されたタスクへ送信してもよい。
【００７３】
一方、仮想タスクが正常に終了しなかったと判断された場合（ステップＳ１２でＮＯ）、又は、予測された実行結果が正常終了でないと判断された場合（ステップＳ７でＮＯ）、ステップＳ１３において、ジョブ実行管理部１０２は、タスクの状態が実行状態からアイドル状態へ遷移すると判断されたタスクへエラーの発生を通知する。エラーの発生を受信したタスクは、エラー処理を実行する。
【００７４】
次に、ステップＳ１４において、仮想タスク登録部１２２は、ジョブ制御情報記憶部１１１に記憶されている仮想タスクに関するジョブ制御情報を削除し、ステップＳ１の処理へ戻る。
【００７５】
かかる構成によれば、ジョブ実行管理部１０２が、ジョブ又はタスクの実行時に、ジョブ又はタスク処理完了待ちのアイドル状態の発生を検出し、ジョブ結果予測部１０４によって予測された実行結果を用いることにより、ジョブ及びタスクの実行条件を仮想的に成立させ、後続処理を即時に実行することができる。これにより、計算機システムの設計時又は計算機システムの初期化時には予測不可能だったアイドル時間の発生を回避することが可能となる。つまり、計算機システム全体のジョブ及びタスクを効率的にスケジュールすることができ、ジョブ実行時間を短縮することができる。
【００７６】
（実施の形態２）
図９は、本発明の実施の形態２における実行順序決定装置の構成を示すブロック図である。
【００７７】
図９において、実施の形態１と同じ符号で表す、スケジューラ１００、ジョブ実行部１０１、ジョブ条件解析部１０３、ジョブ結果予測部１０４、ジョブ履歴処理部１０５、ジョブ制御情報記憶部１１１、ジョブ履歴記憶部１１２及び仮想タスク管理部１２０は、前述した図２の構成要素と同一である。
【００７８】
図９では、図９に示す実行順序決定装置は、図２の構成に加え、デバイス制御管理部５０２、デバイス条件解析部５０３、デバイス結果予測部５０４、デバイス履歴処理部５０５、デバイス制御情報記憶部５１１及びデバイス履歴記憶部５１２を備える。また、図９に示す実行順序決定装置は、ジョブ実行管理部１０２の替わりにジョブ実行管理部５０１を備えている。
【００７９】
デバイス制御情報記憶部５１１は、周辺デバイスの制御を予約するために、対象となるデバイスファイルの情報又は周辺デバイスを制御するためのパラメータなどを指示するためのデバイス制御情報を保持している。デバイス制御情報は、実行する周辺デバイスの制御順序、及び制御条件の解析に必要な情報を含む。デバイス制御情報は、計算機が周辺デバイスを識別するための識別子と、周辺デバイスの状態と、周辺デバイスの制御順序とを含めば良く、記述形式は任意のものが利用可能である。図１０は、本発明実施の形態２におけるデバイス制御情報記憶部に格納されているデバイス制御情報の一例を示す図である。デバイス制御情報記憶部５１１は、デバイス識別子６０１、デバイス状態６０２及びデバイス制御条件６０３を組にして管理している。
【００８０】
デバイス制御情報記憶部５１１は、実行順序決定装置に接続される周辺デバイスの制御が開始されるための制御条件を記憶する。デバイス制御情報記憶部５１１は、デバイス識別子６０１、デバイス状態６０２及びデバイス制御条件６０３を対応付けたデバイス制御情報をテーブル形式で記憶している。デバイス制御情報記憶部５１１には、起動する順序に従ってデバイス識別子６０１、デバイス状態６０２及びデバイス制御条件６０３が格納されている。
【００８１】
図１０では、デバイス制御情報は、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）ドライブを表すデバイス識別子６０１を含む。また、デバイス制御情報は、スピンアップ開始、スピンアップ完了、メディア識別完了及びリードアクセス許可などを表すデバイス状態６０２を含む。さらに、スピンアップ開始というデバイス状態には、電源ＯＮというデバイス制御条件が対応付けられている。これは、電源がＯＮされたことを条件として、スピンアップが開始されることを表している。また、スピンアップ完了というデバイス状態には、スピンアップ開始というデバイス制御条件が対応付けられており、メディア識別完了というデバイス状態には、スピンアップ完了というデバイス制御条件が対応付けられており、リードアクセス許可というデバイス状態には、メディア識別完了というデバイス制御条件が対応付けられている。
【００８２】
デバイス条件解析部５０３は、デバイス制御情報記憶部５１１に記憶されているデバイス制御情報に基づいて、周辺デバイスの制御条件及び依存関係を解析する。
【００８３】
デバイス履歴記憶部５１２は、デバイス制御の前後で変化するデバイス状態のログを含む履歴情報を記憶している。図１１は、本発明の実施の形態２におけるデバイス履歴記憶部に記憶されている履歴情報の一例を示す図である。周辺デバイスの履歴情報は、デバイス制御レコード７０１、デバイス状態７０２及び完了時間７０３などから構成されている。デバイス制御レコード７０１は、デバイス制御を識別するための識別子であり、デバイス状態７０２は、デバイス制御の前後で変化する周辺デバイスの状態であり、完了時間７０３は、該デバイス制御に要した時間である。
【００８４】
デバイス結果予測部５０４は、現在実行中又は実行予定の周辺デバイスの制御結果を、履歴を用いて予測し、予測した制御結果をデバイス制御管理部５０２に通知する。デバイス結果予測部５０４は、デバイス条件解析部５０３によって解析された周辺デバイスの制御条件及び依存関係と、デバイス履歴記憶部５１２に記憶されている履歴情報とを用いて、現在実行中又は実行予定の周辺デバイスの制御結果を予測する。
【００８５】
デバイス制御管理部５０２は、周辺デバイスの制御状態を監視し、デバイス結果予測部５０４によって予測された制御結果をジョブ実行管理部５０１へ通知する。なお、デバイス制御管理部５０２は、ジョブ実行管理部５０１からの問い合わせに応じて、各周辺デバイスの制御条件又は依存関係によりタスク待機状態（アイドル状態）への遷移を検出した際に、デバイス結果予測部５０４によって予測された制御結果をジョブ実行管理部５０１へ通知する。さらに、デバイス制御管理部５０２は、デバイス制御情報記憶部５１１に記憶されているデバイス制御情報に、仮想タスクによるデバイス制御が発生する旨の制御情報を追記する。
【００８６】
デバイス制御管理部５０２は、実行中の周辺デバイスの状態を監視し、デバイス制御情報記憶部５１１に記憶されている制御条件に基づいて、周辺デバイスの状態が、周辺デバイスを制御するデバイス制御が実行されている実行状態から、他の周辺デバイスからの応答があるまで待機する処理待ち状態に遷移するデバイス制御を検出する。また、デバイス制御管理部５０２は、処理待ち状態に遷移するデバイス制御を検出した際に、当該デバイス制御に関する情報をジョブ実行管理部５０１に通知する。
【００８７】
デバイス履歴処理部５０５は、デバイス制御管理部５０２から通知された周辺デバイスの状態を用いて、デバイス制御の前後で変化するデバイス状態のログを周辺デバイスの履歴情報としてデバイス履歴記憶部５１２へ追記する。
【００８８】
ジョブ実行管理部５０１は、デバイス制御管理部５０２より制御結果を受け取り、受け取った制御結果が正常終了の場合、当該デバイス制御の実行結果として正常終了を返し、タスクを実行状態のまま維持し、当該ジョブの処理を継続させる。続いて、ジョブ実行管理部５０１は、周辺デバイスの制御条件の仮成立によりスキップされるデバイス処理、又は依存関係の解消によりスキップされるデバイス処理を実行する該タスクを複製した仮想タスクの起動を、仮想タスク管理部１２０に指示する。
【００８９】
ジョブ実行管理部５０１は、デバイス制御管理部５０２からデバイス制御に関する情報を受け取り、受け取ったデバイス制御に関する情報に基づいて、他のデバイス制御を実行する要求を処理待ち状態に遷移するデバイス制御から受け付けた際に、処理待ち状態に遷移するデバイス制御からの要求に対して応答する。
【００９０】
また、実施の形態１のジョブ実行管理部１０２と同様に、ジョブ実行管理部５０１は、ジョブ及びタスクの状態を監視して、ジョブ及びタスクの状態をジョブ履歴処理部１０５に通知する。また、ジョブ実行管理部５０１は、ジョブ及びタスクの実行条件又は依存関係に基づいて、ジョブ及びタスクの状態が実行状態からタスク待機状態（アイドル状態）へ遷移することを検出する。ジョブ実行管理部５０１は、アイドル状態への遷移を検出すると、ジョブ結果予測部１０４から予測された実行結果を受け取る。
【００９１】
ジョブ結果予測部１０４によって予測された実行結果が正常終了である場合、ジョブ実行管理部５０１は、当該タスクの実行結果として正常終了を返し、タスクを実行状態のまま維持し、当該ジョブの処理を継続させる。一方、ジョブ結果予測部１０４によって予測された実行結果が異常終了である場合、ジョブ実行管理部５０１は、当該タスクの実行結果として異常終了を返し、エラー処理を行うよう指示する。
【００９２】
続いて、ジョブ実行管理部５０１は、ジョブ及びタスクの実行条件の仮成立によりスキップされる処理、又は依存関係の解消によりスキップされる処理を実行する該タスクを複製した仮想タスクの起動を、仮想タスク管理部１２０に指示する。さらに、ジョブ実行管理部５０１は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に、当該ジョブが仮想タスクを起動する旨の制御情報を追記する。
【００９３】
仮想タスク管理部１２０は、デバイス制御管理部５０２によって検出された処理待ち状態に遷移するデバイス制御を複製したデバイス制御を仮想タスクとして生成する。また、仮想タスク管理部１２０は、生成した仮想タスクを、処理待ち状態に遷移するデバイス制御と並行して実行させるために、仮想タスクをジョブ制御情報記憶部１１１の実行順序に追加する。
【００９４】
仮想タスク生成部１２１は、実施の形態１と同様に、ジョブ実行管理部５０１からの指示を受け取り、仮想タスクを生成する。ただし、ジョブ実行管理部５０１からの指示対象は、ジョブ又はタスクが本来実行しなければいけなかった処理だけでなく、ジョブ又はタスクが本来実行しなければならなかった周辺デバイスの処理を含む。これにより、仮想タスク生成部１２１は、周辺デバイスの制御条件又は依存関係が修正されたジョブ又はタスクの複製を仮想タスクとして生成する。すなわち、仮想タスク生成部１２１は、ジョブ又はタスクらが本来実行しなければならなかった周辺デバイスの処理を実行するための仮想タスクを生成する。
【００９５】
さらに、仮想タスク登録部１２２は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に、当該ジョブが仮想タスクを起動する旨の制御情報を追記する。
【００９６】
なお、本実施の形態において、デバイス制御情報記憶部５１１がデバイス制御情報記憶部の一例に相当し、デバイス制御管理部５０２がデバイス制御管理部の一例に相当し、ジョブ実行管理部５０１がタスク実行管理部の一例に相当する。
【００９７】
かかる構成によれば、デバイス制御管理部５０２が、デバイス処理完了待ちのアイドル状態の発生を検出し、デバイス結果予測部５０４によって予測されたデバイス制御結果をジョブ実行管理部５０１に通知する。通知を受けたジョブ実行管理部５０１が、デバイス制御結果を、デバイス制御を要求したジョブ又はタスクに対するデバイスＩ／Ｏ結果とすることにより、ジョブ又はタスクによるデバイスアクセスを仮想的に成立させ、後続処理を即時に実行することとができる。これにより、計算機システムの設計時又は計算機システムの初期化時には予測不可能だったアイドル時間の発生を回避することが可能となる。つまり、計算機システム全体のジョブ及びタスクを効率的にスケジュールすることができ、ジョブ実行時間を短縮することができる。
【００９８】
また、ジョブ実行時における実行条件の成立又は不成立の結果と、実行条件の判断時に参照したデータとを履歴情報として保持し、ジョブ及びタスク間の依存関係に基づいて、処理完了待ちに起因するアイドル状態を検出することができる。この処理完了待ちとは、ジョブ及びタスクの処理完了待ち、又は、デバイス処理の完了待ちのことである。アイドル状態検出時に、保持している履歴情報を用いて、ジョブ及びタスクの実行条件を本来の実行時間に先行して仮成立させる。これにより、当該ジョブ及びタスクの処理が処理待ちにより中断することなく、後続処理を即時に実行可能となる。
【００９９】
さらに、本来の実行時間に先行して仮成立させたタスクの実行条件を本来の実行条件で成立させるために、当該タスクを複製した仮想タスクを起床し、実行条件の成立処理を仮想タスクに移行する。当該仮想タスクの起床をジョブステップとして持つジョブをジョブ実行順序に追加し、仮成立させた実行条件をジョブ及びタスクの実行条件から除外する。これにより、シミュレーションの実行を必要とせずに、また、システム構成の予測不能な変更時にもジョブ及びタスクを効率的にスケジュールすることができる。
【０１００】
また、本発明の各機能ブロックは典型的にはソフトウェアとして実現されるが、集積回路であるＬＳＩとして実現しても良い。各機能ブロックは個別に１チップ化されても良いし、一部又はすべてを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ又はウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＬＳＩ内部の回路セルの接続又は設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。ＬＳＩに置き換わる集積回路化の技術としては、例えばバイオ技術の適応等が可能性としてありえる。
【０１０１】
なお、上述した具体的実施形態には以下の構成を有する発明が主に含まれている。
【０１０２】
本発明の一局面に係る実行順序決定装置は、並行して動作可能な複数のタスクの実行順序を決定する実行順序決定装置であって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部とを備え、前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加する。
【０１０３】
この構成によれば、タスク制御情報記憶部は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶しており、タスク実行部は、タスク制御情報記憶部に記憶されている実行順序に従ってタスクを実行する。タスク実行管理部は、実行中のタスクの状態を監視し、タスク制御情報記憶部に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。仮想タスク管理部は、タスク実行管理部によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。そして、タスク実行管理部は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。続いて、仮想タスク管理部は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをタスク制御情報記憶部の実行順序に追加する。
【０１０４】
したがって、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１０５】
また、上記の実行順序決定装置において、前記実行順序決定装置に接続される周辺デバイスの制御が開始されるための制御条件を記憶するデバイス制御情報記憶部と、実行中の周辺デバイスの状態を監視し、前記デバイス制御情報記憶部に記憶されている前記制御条件に基づいて、周辺デバイスの状態が、周辺デバイスを制御するデバイス制御が実行されている実行状態から、他の周辺デバイスからの応答があるまで待機する処理待ち状態に遷移するデバイス制御を検出するデバイス制御管理部とをさらに備え、前記仮想タスク管理部は、前記デバイス制御管理部によって検出された前記処理待ち状態に遷移するデバイス制御を複製したデバイス制御を仮想タスクとして生成し、前記デバイス制御管理部は、前記処理待ち状態に遷移するデバイス制御を検出した際に、当該デバイス制御に関する情報を前記タスク実行管理部に通知し、前記タスク実行管理部は、前記デバイス制御管理部から前記デバイス制御に関する情報を受け取り、受け取った前記デバイス制御に関する情報に基づいて、他のデバイス制御を実行する要求を前記処理待ち状態に遷移するデバイス制御から受け付けた際に、前記処理待ち状態に遷移するデバイス制御からの前記要求に対して応答し、前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するデバイス制御と並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加することが好ましい。
【０１０６】
この構成によれば、デバイス制御情報記憶部は、実行順序決定装置に接続される周辺デバイスの制御が開始されるための制御条件を記憶しており、デバイス制御管理部は、実行中の周辺デバイスの状態を監視し、デバイス制御情報記憶部に記憶されている制御条件に基づいて、周辺デバイスの状態が、周辺デバイスを制御するデバイス制御が実行されている実行状態から、他の周辺デバイスからの応答があるまで待機する処理待ち状態に遷移するデバイス制御を検出する。そして、仮想タスク管理部は、デバイス制御部によって検出された処理待ち状態に遷移するデバイス制御を複製したデバイス制御を仮想タスクとして生成する。デバイス制御管理部は、処理待ち状態に遷移するデバイス制御を検出した際に、当該デバイス制御に関する情報をタスク実行管理部に通知する。タスク実行管理部は、デバイス制御管理部からデバイス制御に関する情報を受け取り、受け取ったデバイス制御に関する情報に基づいて、他のデバイス制御を実行する要求を処理待ち状態に遷移するデバイス制御から受け付けた際に、処理待ち状態に遷移するデバイス制御からの要求に対して応答する。続いて、仮想タスク管理部は、生成した仮想タスクを、処理待ち状態に遷移するデバイス制御と並行して実行させるために、仮想タスクをタスク制御情報記憶部の実行順序に追加する。
【０１０７】
したがって、他のデバイス制御を実行する要求を処理待ち状態に遷移するデバイス制御から受け付けた際に、処理待ち状態に遷移するデバイス制御からの要求に対して応答することにより、処理待ち状態に遷移することなく当該デバイス制御が実行され、処理待ち状態に遷移するデバイス制御を複製したデバイス制御が仮想タスクとして当該デバイス制御の実行に並行して実行されるので、効率的に周辺デバイスの制御のスケジューリングを実施することができる。
【０１０８】
また、上記の実行順序決定装置において、各タスクを実行した実行結果と、各タスクの実行開始及び実行終了のログとを含む履歴情報を記憶するタスク履歴記憶部と、前記タスク実行管理部によって前記処理待ち状態に遷移するタスクが検出された際に、前記他のタスクの実行結果を、前記タスク制御情報記憶部に記憶されている実行条件と、前記タスク履歴記憶部に記憶されている履歴情報とに基づいて予測するタスク結果予測部とをさらに備え、前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記タスク結果予測部によって予測された前記実行結果を用いて、前記処理待ち状態に遷移するタスクからの前記要求に対して応答することが好ましい。
【０１０９】
この構成によれば、タスク履歴記憶部は、各タスクを実行した実行結果と、各タスクの実行開始及び実行終了のログとを含む履歴情報を記憶しており、タスク結果予測部は、タスク実行管理部によって処理待ち状態に遷移するタスクが検出された際に、他のタスクの実行結果を、タスク制御情報記憶部に記憶されている実行条件と、タスク履歴記憶部に記憶されている履歴情報とに基づいて予測する。そして、タスク実行管理部は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、タスク結果予測部によって予測された実行結果を用いて、処理待ち状態に遷移するタスクからの要求に対して応答する。
【０１１０】
したがって、処理待ち状態に遷移するタスクが検出された際に、他のタスクの実行結果が、実行条件と履歴情報とに基づいて予測されるので、システムの構成が変更された結果、処理待ち状態に遷移するタスクが発生した場合であっても、予測された実行結果を用いて、処理待ち状態に遷移するタスクに対して応答することができる。
【０１１１】
また、上記の実行順序決定装置において、前記仮想タスク管理部は、前記仮想タスクが受け取る前記他のタスクの実行結果が異常終了であった場合、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序から削除することが好ましい。
【０１１２】
この構成によれば、仮想タスクが受け取る他のタスクの実行結果が異常終了であった場合、仮想タスクがタスク制御情報記憶部の実行順序から削除される。したがって、処理待ち状態に遷移するタスクが再度検出された場合は、仮想タスクが実行されないので、不要なタスクの実行を防止することができ、処理時間を短縮することができる。
【０１１３】
本発明の他の局面に係る実行順序決定プログラムは、並行して動作可能な複数のタスクの実行順序を決定するための実行順序決定プログラムであって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部としてコンピュータを機能させ、前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加する。
【０１１４】
この構成によれば、タスク制御情報記憶部は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶しており、タスク実行部は、タスク制御情報記憶部に記憶されている実行順序に従ってタスクを実行する。タスク実行管理部は、実行中のタスクの状態を監視し、タスク制御情報記憶部に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。仮想タスク管理部は、タスク実行管理部によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。そして、タスク実行管理部は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。続いて、仮想タスク管理部は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをタスク制御情報記憶部の実行順序に追加する。
【０１１５】
したがって、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１１６】
本発明の他の局面に係る実行順序決定回路は、並行して動作可能な複数のタスクの実行順序を決定する実行順序決定回路であって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶回路と、前記タスク制御情報記憶回路に記憶されている前記実行順序に従って前記タスクを実行するタスク実行回路と、実行中のタスクの状態を監視し、前記タスク制御情報記憶回路に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理回路と、前記タスク実行管理回路によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理回路とを備え、前記タスク実行管理回路は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、前記仮想タスク管理回路は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶回路の前記実行順序に追加する。
【０１１７】
この構成によれば、タスク制御情報記憶回路は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶しており、タスク実行回路は、タスク制御情報記憶回路に記憶されている実行順序に従ってタスクを実行する。タスク実行管理回路は、実行中のタスクの状態を監視し、タスク制御情報記憶回路に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。仮想タスク管理回路は、タスク実行管理回路によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。そして、タスク実行管理回路は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。続いて、仮想タスク管理回路は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをタスク制御情報記憶回路の実行順序に追加する。
【０１１８】
したがって、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１１９】
本発明の他の局面に係る実行順序決定方法は、並行して動作可能な複数のタスクの実行順序を決定するための実行順序決定方法であって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行ステップと、実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する検出ステップと、前記検出ステップにおいて検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク生成ステップと、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答する応答ステップと、前記仮想タスク生成ステップにおいて生成された前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加する追加ステップとを含む。
【０１２０】
この構成によれば、タスク制御情報記憶部は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶している。タスク実行ステップにおいて、タスク制御情報記憶部に記憶されている実行順序に従ってタスクが実行される。検出ステップにおいて、実行中のタスクの状態が監視され、タスク制御情報記憶部に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクが検出される。仮想タスク生成ステップにおいて、検出ステップで検出された処理待ち状態に遷移するタスクを複製した仮想タスクが生成される。そして、応答ステップにおいて、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答が行われる。続いて、追加ステップにおいて、仮想タスク生成ステップで生成された仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクがタスク制御情報記憶部の実行順序に追加される。
【０１２１】
したがって、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１２２】
本発明の他の局面に係る情報処理装置は、上記の実行順序決定装置と、前記実行順序決定装置に接続される周辺デバイスとを備える。
【０１２３】
この構成によれば、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１２４】
なお、発明を実施するための形態の項においてなされた具体的な実施態様又は実施例は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例にのみ限定して狭義に解釈されるべきものではなく、本発明の精神と特許請求事項との範囲内で、種々変更して実施することができるものである。
【産業上の利用可能性】
【０１２５】
本発明にかかる実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置は、複数のジョブを並行して動作可能な計算機システムにおいて有用である。また、本発明にかかる実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置は、大型計算機又はパーソナルコンピュータのみならず、各種の家電機器、携帯電話のような通信機器、産業機器又は乗用機器などの用途でも利用可能である。
【図１】
2010001555.tif 000003
【図２】
2010001555.tif 000004
【図３】
2010001555.tif 000005
【図４】
2010001555.tif 000006
【図５】
2010001555.tif 000007
【図６】
2010001555.tif 000008
【図７】
2010001555.tif 000009
【図８】
2010001555.tif 000010
【図９】
2010001555.tif 000011
【図１０】
2010001555.tif 000012
【図１１】
2010001555.tif 000013
【手続補正書】
【提出日】平成22年2月19日(2010.2.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
並行して動作可能な複数のタスクの実行順序を決定する実行順序決定装置であって、
各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、
前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、
実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、
前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部とを備え、
前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、
前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加することを特徴とする実行順序決定装置。
【請求項２】
前記実行順序決定装置に接続される周辺デバイスの制御が開始されるための制御条件を記憶するデバイス制御情報記憶部と、
実行中の周辺デバイスの状態を監視し、前記デバイス制御情報記憶部に記憶されている前記制御条件に基づいて、周辺デバイスの状態が、周辺デバイスを制御するデバイス制御が実行されている実行状態から、他の周辺デバイスからの応答があるまで待機する処理待ち状態に遷移するデバイス制御を検出するデバイス制御管理部とをさらに備え、
前記仮想タスク管理部は、前記デバイス制御管理部によって検出された前記処理待ち状態に遷移するデバイス制御を複製したデバイス制御を仮想タスクとして生成し、
前記デバイス制御管理部は、前記処理待ち状態に遷移するデバイス制御を検出した際に、当該デバイス制御に関する情報を前記タスク実行管理部に通知し、
前記タスク実行管理部は、前記デバイス制御管理部から前記デバイス制御に関する情報を受け取り、受け取った前記デバイス制御に関する情報に基づいて、他のデバイス制御を実行する要求を前記処理待ち状態に遷移するデバイス制御から受け付けた際に、前記処理待ち状態に遷移するデバイス制御からの前記要求に対して応答し、
前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するデバイス制御と並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加することを特徴とする請求項１記載の実行順序決定装置。
【請求項３】
各タスクを実行した実行結果と、各タスクの実行開始及び実行終了のログとを含む履歴情報を記憶するタスク履歴記憶部と、
前記タスク実行管理部によって前記処理待ち状態に遷移するタスクが検出された際に、前記他のタスクの実行結果を、前記タスク制御情報記憶部に記憶されている実行条件と、前記タスク履歴記憶部に記憶されている履歴情報とに基づいて予測するタスク結果予測部とをさらに備え、
前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記タスク結果予測部によって予測された前記実行結果を用いて、前記処理待ち状態に遷移するタスクからの前記要求に対して応答することを特徴とする請求項１又は２記載の実行順序決定装置。
【請求項４】
前記仮想タスク管理部は、前記仮想タスクが受け取る前記他のタスクの実行結果が異常終了であった場合、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序から削除することを特徴とする請求項１〜３のいずれかに記載の実行順序決定装置。
【請求項５】
並行して動作可能な複数のタスクの実行順序を決定するための実行順序決定プログラムであって、
各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、
前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、
実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、
前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部としてコンピュータを機能させ、
前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、
前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加することを特徴とする実行順序決定プログラム。
【請求項６】
並行して動作可能な複数のタスクの実行順序を決定する実行順序決定回路であって、
各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶回路と、
前記タスク制御情報記憶回路に記憶されている前記実行順序に従って前記タスクを実行するタスク実行回路と、
実行中のタスクの状態を監視し、前記タスク制御情報記憶回路に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理回路と、
前記タスク実行管理回路によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理回路とを備え、
前記タスク実行管理回路は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、
前記仮想タスク管理回路は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶回路の前記実行順序に追加することを特徴とする実行順序決定回路。
【請求項７】
請求項１〜４のいずれかに記載の実行順序決定装置と、
前記実行順序決定装置に接続される周辺デバイスとを備えることを特徴とする情報処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並行して動作可能な複数のタスクの実行順序を決定する実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置に関し、特に、ハードウェア構成の変化に応じて効率的にタスクのスケジューリングを行う実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置に関するものである。
【背景技術】
【０００２】
従来、デジタル家電機器又は携帯電話機などに代表される情報処理機器は、多種多様な機能を実現するのに、計算機システム上に多数のタスクを常駐又は起動し、当該タスクを実行している。
【０００３】
近年、情報処理機器のネットワーク対応により、情報処理機器の提供するサービスが多様化し、ユーザ要件が高度化している。これに伴い、情報処理機器が実行するジョブ及びタスクの数及び処理量は増大し、ジョブ及びタスクの処理内容も複雑化する傾向にある。
【０００４】
ジョブ及びタスクの数及び処理量の増大化に対応するため、複数のＣＰＵ（中央演算処理装置）、又は複数の演算を並列実行できる単一のＣＰＵを用意した計算機システムの構築が行われている。計算機システム上で、複数のジョブ及びタスクが並列して実行される。
【０００５】
このような計算機システムにおいては、計算能力に見合った処理時間を得るのに、効率の良いジョブ及びタスクのスケジュールを編成する必要がある。特に、複数のタスクの並列実行が可能な計算機システムでは、複数のタスクが独立して動作するので、ジョブ間及びタスク間の同期設計又は実行順序の決定が処理待ち時間の削減に対して極めて重要な要素となる。
【０００６】
特に、システムの起動処理のような、システムで予め実行が定められている処理においては、ジョブ及びタスクの実行順序の効率的な決定は、システムの起動時間を短縮するのに必須である。ここでの、システムの起動処理のような予め実行が定められている処理とは、複数のジョブ及びタスクが互いに連携しながら毎回一定の処理を繰り返すことで、システムをあらかじめ定められた状態に遷移させるような処理のことである。
【０００７】
従来、複数のジョブを並列に実行可能な計算機システムにおけるジョブの実行順序決定方法としては、過去のジョブの実行履歴をもとに、シミュレーションを行い、システム全体の処理時間を短縮するものがあった（例えば、特許文献１参照）。一括データ処理であるバッチ処理を行うジョブは、決まった入力ファイルに対して一定の処理を行い、開始時間に依存しない性質を有しており、複数のジョブが定期的に繰り返される。このような形態のジョブに関して、過去の実行履歴をもとに、シミュレーションが実行される。これにより、対象となる計算機システムにおいてジョブが実行される前、又は、システム設計時に、ジョブのスケジューリングが行われることで、システム全体の処理時間の短縮が図られている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平８−２８６９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、前記従来の構成では、各ジョブが動作中に入出力操作を行ったファイルのアクセス履歴情報を用いて、各ジョブの実行開始条件を決定し、実行履歴情報から各ジョブの実行時間を求めている。つまり、過去のジョブの実行結果に基づいてジョブの実行開始時間を求めている。そのため、従来は、これらのジョブにより処理を実施する計算機システムから見た場合、取得済みの履歴情報を用いた静的解析によりジョブの実行順序を決定している。このような実行順序決定方法は、例えば、ハードディスクドライブを内蔵する計算機システムにおいて、ファイルシステムの検査処理など、処理対象のデータ量により処理時間が変化するジョブが含まれる場合に問題となる。つまり、システム設計時又は構築時に収集された、実行履歴情報の各ジョブの実行時間からは、計算機システムごとの最適なジョブの実行開始時間を求めることはできず、効率的なジョブの実行順序を決定できないという課題を有していた。
【００１０】
本発明は、上記の問題を解決するためになされたもので、効率的にタスクのスケジューリングを実施することができる実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置を提供することを目的とするものである。
【課題を解決するための手段】
【００１１】
本発明の一局面に係る実行順序決定装置は、並行して動作可能な複数のタスクの実行順序を決定する実行順序決定装置であって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部とを備え、前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加する。
【００１２】
この構成によれば、タスク制御情報記憶部は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶しており、タスク実行部は、タスク制御情報記憶部に記憶されている実行順序に従ってタスクを実行する。タスク実行管理部は、実行中のタスクの状態を監視し、タスク制御情報記憶部に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。仮想タスク管理部は、タスク実行管理部によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。そして、タスク実行管理部は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。続いて、仮想タスク管理部は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをタスク制御情報記憶部の実行順序に追加する。
【発明の効果】
【００１３】
本発明によれば、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態１における実行順序決定装置を備えた計算機のハードウェア構成を示す図である。
【図２】本発明の実施の形態１における実行順序決定装置の構成を示すブロック図である。
【図３】本発明の実施の形態１におけるジョブ制御情報記憶部に格納されているジョブ制御情報の一例を示す図である。
【図４】本発明の実施の形態１におけるジョブ履歴記憶部に格納されている履歴情報の一例を示す図である。
【図５】サーバの初期化に要する処理時間が、クライアントの起動に要する処理時間よりも短い場合の実行順序決定装置の動作を示す図である。
【図６】クライアントの起動に要する処理時間を大幅に短縮するようなハードウェア構成の変更が加えられた場合の実行順序決定装置の動作を示す図である。
【図７】本発明の実施の形態１における実行順序決定装置の動作について説明するための第１のフローチャートである。
【図８】本発明の実施の形態１における実行順序決定装置の動作について説明するための第２のフローチャートである。
【図９】本発明の実施の形態２における実行順序決定装置の構成を示すブロック図である。
【図１０】本発明の実施の形態２におけるデバイス制御情報記憶部に格納されているデバイス制御情報の一例を示す図である。
【図１１】本発明の実施の形態２におけるデバイス履歴記憶部に格納されているデバイスの履歴情報の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下本発明の実施の形態について、図面を参照しながら説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
【００１６】
（実施の形態１）
図１は、本発明の実施の形態１における実行順序決定装置を備えた計算機のハードウェア構成を示す図である。この計算機（以下、情報処理装置とも言う）は、それ自体としてユーザの使用に供することもできるが、様々な電気機器に組み込まれてもよい。例えば、計算機は、代表的にはＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の汎用のコンピュータである。また、計算機は、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）あるいは携帯電話機等の携帯通信端末でもよく、ＢＤ等の光ディスクから情報を読み出すとともに、光ディスクへ情報を書き込む光ディスク装置でもよい。
【００１７】
計算機は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１、メモリ装置２、周辺デバイス３、タイマ回路４及び電源回路５を備えている。周辺デバイス３は、通信装置３１、入力装置３２、出力装置３３、ハードディスク装置３４及び読取書込装置３５を有している。これらの装置は、バスライン６を通じて互いに接続されている。ハードディスク装置３４、読取書込装置３５、入力装置３２及び出力装置３３は、それぞれ、インタフェース（Ｉ／Ｆ）３６、３７、３８及び３９を通じてバスライン６に接続される。
【００１８】
ＣＰＵ１は、単一のＣＰＵで構成されても良く、複数のＣＰＵで構成されてもよい。一例として、情報処理装置は、複数のＣＰＵ１１，１２，１３を有する。メモリ装置２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２を備えている。
【００１９】
ＲＯＭ２１は、ＣＰＵ１の動作を規定するコンピュータプログラム及びデータを記憶している。コンピュータプログラム及びデータは、ハードディスク装置３４に記憶させることもできる。ＣＰＵ１は、ＲＯＭ２１又はハードディスク装置３４が格納するコンピュータプログラム及びデータを、必要に応じてＲＡＭ２２に書き込みつつ、コンピュータプログラムが規定する処理を実行する。ＲＡＭ２２は、ＣＰＵ１が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。ＲＯＭ２１には、フラッシュＲＯＭのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリ及び記憶媒体も含まれる。ＲＡＭ２２には、電源を切ると記憶内容が保持されない揮発性のメモリ及び記憶媒体が含まれる。
【００２０】
タイマ回路４は、一定の周期でタイマ割り込み信号を出力する。電源回路５は、計算機に供給される電力のＯＮ／ＯＦＦを制御する。電源回路５によって電力がＯＮされることで、計算機システムが起動することになる。
【００２１】
計算機が必要とする周辺デバイス３は、計算機が有する機能に基づいて決定される。ハードディスク装置３４は、内蔵する不図示のハードディスクへコンピュータプログラム又はデータを書き込み、かつハードディスクからコンピュータプログラム又はデータを読み出す。読取書込装置３５は、例えばＣＤ、ＤＶＤ又はメモリカードなどの記録媒体４１に記録されたコンピュータプログラム又はデータを読み取る。通信装置３１は、電話回線、ネットワーク線、無線又は赤外線通信等の通信回線４２を通じて、外部と自身との間で、コンピュータプログラム又はデータを交換する。入力装置３２は、例えば、ＰＤＡに配列されたキーボード、携帯電話機に配列された入力ボタン、あるいは着脱自在のマウス又はキーボードであり、ユーザの操作を受け付けることによりデータ等を入力する。出力装置３３は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ；液晶表示器）、ブラウン管又はスピーカであり、データ及び画像等を画面に表示したり、データ等を音声で出力したりする。
【００２２】
以上のように、ＲＯＭ２１、ハードディスク装置３４、又はフレキシブルディスク若しくはＣＤ−ＲＯＭ等の記録媒体４１を通じて、コンピュータプログラムが計算機に供給され、計算機は動作する。また、コンピュータプログラムは、通信回線４２等の伝送媒体を通じて供給することも可能である。例えば、記録媒体４１（ＣＤ−ＲＯＭ）に記録されたコンピュータプログラムは、読取書込装置３５を計算機へ接続することで、読み出すことができる。また、読み出したコンピュータプログラムは、ＲＡＭ２２又はハードディスク装置３４に格納することができる。
【００２３】
プログラム記録媒体としてＲＯＭ２１からコンピュータプログラムが供給される場合には、当該ＲＯＭ２１を計算機に搭載することにより、ＣＰＵ１は上記コンピュータプログラムに従った処理を実行可能となる。通信回線４２等の伝送媒体を通じて供給されるコンピュータプログラムは、通信装置３１を通じて受信され、例えば、ＲＡＭ２２又はハードディスク装置３４に格納される。伝送媒体は、有線の伝送媒体に限られず、無線の伝送媒体であってもよい。また、伝送媒体は通信線路のみでなく、例えばルータなどの通信線路を中継する中継装置も含む。
【００２４】
実行順序決定プログラムは、例えばメモリ装置２に格納され、ＣＰＵ１と協働して実行することにより実現している。
【００２５】
図２は、本発明の実施の形態１における実行順序決定装置の構成を示すブロック図である。
【００２６】
図２において、実行順序決定装置は、スケジューラ１００、ジョブ実行部１０１、ジョブ実行管理部１０２、ジョブ条件解析部１０３、ジョブ結果予測部１０４、ジョブ履歴処理部１０５、ジョブ制御情報記憶部１１１、ジョブ履歴記憶部１１２及び仮想タスク管理部１２０を備えている。
【００２７】
なお、本明細書におけるジョブとは、コンピュータに実行させる一連の処理を表す単位であり、タスクとは、ジョブにおける一連の処理をさらに細分化した処理を表す単位である。すなわち、ジョブは、複数のタスクで構成される。また、特許請求の範囲におけるタスクは、上記のジョブの概念とタスクの概念とを含む。すなわち、特許請求の範囲におけるタスクは、複数の処理のまとまりを表すと共に、複数の処理のうちの１つの処理を表す。
【００２８】
ジョブ制御情報記憶部１１１は、ジョブの実行を予約するために、実行するプログラム又は必要なファイル情報を指示するためのジョブ制御情報を保持している。ジョブ制御情報は、実行するプログラムの起動順序、及び起動条件の解析に必要な情報を含む。ジョブ制御情報は、計算機が実行するタスクを識別する識別子と、起動条件となるタスクの実行条件と、タスクの起動順序とを含めば良く、記述形式は任意のものが利用可能である。
【００２９】
図３は、本発明実施の形態１におけるジョブ制御情報記憶部に格納されているジョブ制御情報の一例を示す図である。
【００３０】
ジョブ制御情報記憶部１１１は、ジョブ制御情報として、起動順序２０１、タスク名２０２及びタスク実行条件２０３を組にして管理している。ここでは、アプリケーションＡを起動する際に、初期化開始とＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）受付開始との２つのタスクを順に実行することを示している。また、アプリケーションＢを起動する際に、初期化開始とディスプレイ設定との２つのタスクを順に実行することを示している。さらに、ディスプレイ設定は、アプリケーションＡのＲＰＣ受付開始処理が既に実行されていることが実行条件として設定されている。
【００３１】
ジョブ制御情報記憶部１１１は、起動順序２０１、タスク名２０２及びタスク実行条件２０３を対応付けたジョブ制御情報をテーブル形式で記憶している。ジョブ制御情報記憶部１１１には、起動する順序に従ってタスク名２０２及びタスク実行条件２０３が格納されている。ジョブ制御情報記憶部１１１は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶する。
【００３２】
スケジューラ１００は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に従って、次に実行するタスクを決定する。スケジューラ１００は、ジョブ制御情報に含まれる起動順序に従って、次に実行するタスクを決定する。スケジューラ１００は、決定したタスクの開始をジョブ実行部１０１に指示する。
【００３３】
ジョブ実行部１０１は、スケジューラ１００からの指示に従い、対象のジョブ及びタスクを実行する。ジョブ実行部１０１は、スケジューラ１００によって決定されたタスクを実行する。すなわち、ジョブ実行部１０１は、ジョブ制御情報記憶部１１１に記憶されている実行順序に従ってタスクを実行する。
【００３４】
ジョブ条件解析部１０３は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に基づいて、ジョブ及びタスクの実行条件及び依存関係を解析する。
【００３５】
ジョブ履歴記憶部１１２は、各タスク及び各ジョブを実行した実行結果と、各タスク及び各ジョブの実行開始及び実行終了のログとを含む履歴情報を記憶している。
【００３６】
図４は、本発明実施の形態１におけるジョブ履歴記憶部に格納されている履歴情報の一例を示す図である。履歴情報は、ジョブ開始レコード３１１、タスク開始レコード３１２、タスク終了レコード３１３及びジョブ終了レコード３１４などから構成されている。これら各レコードは、ジョブの実行開始、タスクの実行開始、タスクの実行終了及びジョブの実行終了などの事象により発生する。各レコードは、対象のジョブ又はタスクを識別する識別子と、開始又は終了のいずれかを示す情報とを含む。さらに、ジョブ開始レコード３１１及びタスク開始レコード３１２は、実行時の開始条件を判断するための開始時入力情報３０１を含む。タスク終了レコード３１３及びジョブ終了レコード３１４は、ジョブ又はタスクの実行終了が正常終了であったか異常終了であったかを示す終了状態３０２を含む。
【００３７】
ジョブ結果予測部１０４は、現在実行中又は実行予定のジョブ及びタスクの実行結果を、履歴を用いて予測し、予測した実行結果をジョブ実行管理部１０２に通知する。ジョブ結果予測部１０４は、ジョブ条件解析部１０３から、解析されたジョブ及びジョブステップ（タスク）の実行条件及び依存関係を受け取る。ジョブ結果予測部１０４は、ジョブ条件解析部１０３によって解析されたジョブ及びジョブステップの実行条件及び依存関係と、ジョブ履歴記憶部１１２に記憶されている履歴情報とを用いて、現在実行中又は実行予定のジョブ及びタスクの実行結果を予測する。
【００３８】
ジョブ実行管理部１０２は、実行中のタスクの状態を監視し、ジョブ制御情報記憶部１１１に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。また、ジョブ結果予測部１０４は、ジョブ実行管理部１０２によって処理待ち状態に遷移するタスクが検出された際に、他のタスクの実行結果を、ジョブ制御情報記憶部１１１に記憶されている実行条件と、ジョブ履歴記憶部１１２に記憶されている履歴情報とに基づいて予測する。
【００３９】
ジョブ実行管理部１０２は、ジョブ及びタスクの状態を監視して、ジョブ及びタスクの状態をジョブ履歴処理部１０５に通知する。また、ジョブ実行管理部１０２は、ジョブ及びタスクの実行条件又は依存関係に基づいて、ジョブ及びタスクの状態がタスク待機状態（アイドル状態）へ遷移することを検出する。ジョブ実行管理部１０２は、アイドル状態への遷移を検出すると、ジョブ結果予測部１０４から予測された実行結果を受け取る。
【００４０】
ジョブ結果予測部１０４によって予測された実行結果が正常終了である場合、ジョブ実行管理部１０２は、当該タスクの実行結果として正常終了を返し、タスクを実行状態のまま維持し、当該ジョブの処理を継続させる。一方、ジョブ結果予測部１０４によって予測された実行結果が異常終了である場合、ジョブ実行管理部１０２は、当該タスクの実行結果として異常終了を返し、エラー処理を行うよう指示する。
【００４１】
続いて、ジョブ実行管理部１０２は、ジョブ及びタスクの実行条件の仮成立によりスキップされる処理、又は依存関係の解消によりスキップされる処理を実行する該タスクを複製した仮想タスクの起動を、仮想タスク管理部１２０に指示する。
【００４２】
また、ジョブ実行管理部１０２は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。このとき、ジョブ実行管理部１０２は、ジョブ結果予測部１０４によって予測された実行結果を用いて、処理待ち状態に遷移するタスクからの要求に対して応答する。
【００４３】
ジョブ履歴処理部１０５は、ジョブ実行管理部１０２から通知されたジョブ及びタスクの状態を用いて、タスク及びジョブの実行開始及び実行終了のログをジョブ履歴記憶部１１２へ追記する。
【００４４】
仮想タスク管理部１２０は、仮想タスク生成部１２１及び仮想タスク登録部１２２を含む。仮想タスク管理部１２０は、ジョブ実行管理部１０２によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。また、仮想タスク管理部１２０は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをジョブ制御情報記憶部１１１の実行順序に追加する。さらに、仮想タスク管理部１２０は、仮想タスクが受け取る他のタスクの実行結果が異常終了であった場合、仮想タスクをジョブ制御情報記憶部１１１の実行順序から削除する。
【００４５】
仮想タスク生成部１２１は、ジョブ実行管理部１０２からの指示を受け取り、実行条件又は依存関係が修正されたジョブ又はタスクの複製を仮想タスクとして生成する。すなわち、仮想タスク生成部１２１は、ジョブ又はタスクが本来実行しなければならなかった処理を実行するための仮想タスクを生成する。
【００４６】
仮想タスク登録部１２２は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に、当該ジョブが仮想タスクを起動する旨の制御情報を追記する。すなわち、仮想タスク登録部１２２は、仮想タスク生成部１２１によって生成された仮想タスクの制御情報をジョブ制御情報記憶部１１１に登録する。また、仮想タスク登録部１２２は、仮想タスク生成部１２１が生成した仮想タスクが異常終了した際に、該仮想タスクに対応するジョブ制御情報をジョブ制御情報記憶部１１１から削除する。
【００４７】
以上により、本実施の形態１の実行順序決定装置は、ジョブ実行時の実行条件の成立又は不成立の結果と実行条件を判断する時に参照されたデータとを、履歴情報として保持することで、システム構成が変更された場合でも、効率的なジョブスケジューリング計画を実施することができる。これにより、複数のジョブが並列して動作可能な計算機システムにおいて、システム構成が変更された場合にも、即時に効率的なジョブスケジューリングを実施することが可能となり、実行時間を短縮することができる。
【００４８】
なお、本実施の形態において、ジョブ制御情報記憶部１１１がタスク制御情報記憶部の一例に相当し、ジョブ実行部１０１がタスク実行部の一例に相当し、ジョブ実行管理部１０２がタスク実行管理部の一例に相当し、仮想タスク管理部１２０が仮想タスク管理部の一例に相当し、ジョブ履歴記憶部１１２がタスク履歴記憶部の一例に相当し、ジョブ結果予測部１０４がタスク結果予測部の一例に相当する。
【００４９】
次に、図５及び図６を用いて、クライアントサーバシステムを含む情報処理機器における、クライアントのサーバの初期化完了待ちを原因として発生するクライアントのアイドル時間を短縮する短縮方法の一例について説明する。図５及び図６の計算機システムは、実行順序決定装置を備える。また、計算機システムにおいて実行されるジョブとして、サーバ４０１、クライアント４０２、及びクライアント４０２により起動されるアプリケーション４０３がある。
【００５０】
なお、サーバ４０１は、周辺デバイスを一括して管理する。例えば、サーバ４０１は、周辺デバイスの画面表示の設定を変更したり、デコーダの初期化を要求したりする。また、クライアント４０２は、サーバ４０１と連携して、種々のアプリケーションを起動する。例えば、クライアント４０２は、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）を再生するためのアプリケーション及びＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を統括するアプリケーションなどを起動する。
【００５１】
図５は、サーバ４０１の初期化４１１に要する処理時間が、クライアント４０２の起動４１５に要する処理時間よりも短い場合の実行順序決定装置の動作を示す図である。なお、図５に示す計算機システムは、初期設計時におけるシステム構成である。
【００５２】
図５において、クライアント４０２は、起動４１５及び初期化が終了した後、ジョブ実行管理部１０２へリクエスト４２２を発行する。サーバ４０１の初期化４１１に要する処理時間が、クライアント４０２の起動４１５に要する処理時間よりも短いので、クライアント４０２からジョブ実行管理部１０２へのリクエスト４２２の発行時には、サーバ４０１はサービス実行４１２を既に開始している。そのため、サーバ４０１は、初期化４１１の終了を待つことなく、ジョブ実行管理部１０２からのリクエスト４２４に対する処理を実行し、ジョブ実行管理部１０２へ応答４２６を返すことができる。また、クライアント４０２は、ジョブ実行管理部１０２からの結果４２７を受け取ると、アプリケーション４０３の起動要求４２５を遅滞なく実行することができる。
【００５３】
図６は、クライアント４０２の起動４１５に要する処理時間を大幅に短縮するようなハードウェア構成の変更が加えられた場合の実行順序決定装置の動作を示す図である。図６では、サーバ４０１の初期化４１１に要する処理時間が、クライアント４０２の起動４１５に要する処理時間よりも長いので、クライアント４０２からジョブ実行管理部１０２へのリクエスト４２２の発行時には、サーバ４０１は初期化４１１を終了していない。そのため、サーバ４０１がジョブ実行管理部１０２からのリクエストを受信してから初期化４１１が完了するまでの初期化完了待ち４１３に要するアイドル時間が発生する。
【００５４】
この場合、ジョブ実行管理部１０２は、クライアント４０２が発行したリクエスト４２２をフックし、リクエストの発行先であるサーバ４０１の実行状態を検査する。このとき、ジョブ実行管理部１０２は、ジョブ制御情報記憶部１１１に格納されているジョブ制御情報より、リクエスト４２２の実行条件が、初期化４１１の完了であることを知ることができる。これにより、ジョブ結果予測部１０４は、サーバ４０１の初期化４１１が完了するまでの間、クライアント４０２が初期化完了待ち状態になることを予測することができる。
【００５５】
そこで、ジョブ実行管理部１０２は、ジョブ結果予測部１０４から通知された実行結果に基づき、リクエスト４２２に対する応答４２３をクライアント４０２に発行する。さらに、ジョブ実行管理部１０２は、サーバ４０１のサービス実行４１２開始後にリクエスト４２４を発行するための仮想タスク４１４を起動する。
【００５６】
仮想タスク４１４は、サービス実行４１２の開始後、リクエスト４２４をサーバ４０１に発行し、サーバ４０１からの応答４２６を待つ。クライアント４０２は、リクエスト４２２の発行後、即時に応答４２３を受け取ることができるので、後続のクライアント処理４１６を実行することが可能となる。これにより、クライアント４０２は、アプリケーション４０３の起動要求４２５を遅滞なく実行することが可能となる。
【００５７】
一方、仮想タスク４１４は、サーバ４０１からの応答４２６を受け取ると、ジョブ実行管理部１０２が先行して発行した応答４２３の内容を検査する。仮想タスク４１４は、結果４２７をクライアント４０２に返し、後処理を実行してもよい。また、仮想タスク４１４は、結果４２７をクライアント４０２に返すことなく、処理を完了してもよい。また、仮想タスク４１４は、応答４２６の内容と応答４２３の内容とが不一致であった場合についても、エラー処理を実施しても良い。また、仮想タスク４１４は、エラーの発生を非同期にクライアント４０２に通知し、エラー処理をクライアント４０２に実施させてもよい。
【００５８】
次に、本実施の形態１における実行順序決定装置の動作について説明する。図７及び図８は、本発明の実施の形態１における実行順序決定装置の動作について説明するためのフローチャートである。
【００５９】
なお、図７及び図８では、図６と同様に、サーバクライアントシステムにおける実行順序決定装置の動作について説明する。すなわち、第１のＣＰＵで実行されるクライアントジョブは、第１のＣＰＵとは異なる第２のＣＰＵで実行されるサーバジョブに対して、リクエストを送信する。サーバジョブは、リクエストに基づいた処理を実行し、実行結果をクライアントジョブへ返信する。クライアントジョブは、サーバジョブからの実行結果を受信すると、アプリケーションを実行するよう指示する。
【００６０】
まず、図７のステップＳ１において、スケジューラ１００は、ジョブ制御情報記憶部１１１に記憶されているタスクに基づいて、次に実行するタスクを決定する。次に、ステップＳ２において、ジョブ実行部１０１は、スケジューラ１００によって決定されたタスクを実行する。
【００６１】
次に、ステップＳ３において、ジョブ実行管理部１０２は、実行中及び次に実行するタスクの状態を監視する。次に、ステップＳ４において、ジョブ実行管理部１０２は、ジョブ制御情報記憶部１１１に記憶されているタスクの実行条件又は依存関係に基づいて、タスクの状態が実行状態からアイドル状態へ遷移するか否かを判断する。ここで、タスクの状態が実行状態からアイドル状態へ遷移しないと判断された場合（ステップＳ４でＮＯ）、ステップＳ１の処理へ戻る。
【００６２】
一方、タスクの状態が実行状態からアイドル状態へ遷移すると判断された場合（ステップＳ４でＹＥＳ）、ステップＳ５において、ジョブ条件解析部１０３は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に基づいて、タスクの実行条件及び依存関係を解析する。例えば、初期化処理のタスクを実行している場合、ジョブ条件解析部１０３は、初期化処理が終了しなければ、次のサービス実行処理のタスクを実行することができないことを判断する。また、例えば、サービス実行処理のタスクを実行している場合、実行中のサービス実行処理が他のサービス実行処理と依存関係を有する可能性がある。そのため、サービス実行処理のタスクを実行している場合、ジョブ条件解析部１０３は、実行中のサービス実行処理と他のサービス実行処理との依存関係を解析する。
【００６３】
次に、ステップＳ６において、ジョブ結果予測部１０４は、ジョブ条件解析部１０３によって解析されたタスクの実行条件及び依存関係と、ジョブ履歴記憶部１１２に記憶されている履歴情報とに基づいて、現在実行中又は実行予定のタスクの実行結果を予測する。
【００６４】
次に、ステップＳ７において、ジョブ実行管理部１０２は、ジョブ結果予測部１０４によって予測された実行結果が正常終了であるか否かを判断する。ここで、予測された実行結果が正常終了でないと判断された場合（ステップＳ７でＮＯ）、図８のステップＳ１４の処理へ移行する。
【００６５】
一方、予測された実行結果が正常終了であると判断された場合（ステップＳ７でＹＥＳ）、ステップＳ８において、ジョブ実行管理部１０２は、ジョブ結果予測部１０４によって予測された実行結果を、タスクの状態が実行状態からアイドル状態へ遷移すると判断されたタスクへ送信する。そして、ジョブ実行管理部１０２は、仮想タスクを生成するように仮想タスク生成部１２１へ指示する。
【００６６】
なお、本実施の形態では、ジョブ結果予測部１０４は、ジョブ条件解析部１０３によって解析されたタスクの実行条件及び依存関係と、ジョブ履歴記憶部１１２に記憶されている履歴情報とに基づいて、現在実行中又は実行予定のタスクの実行結果を予測しているが、本発明は特にこれに限定されない。例えば、ジョブ制御情報記憶部１１１にタスクの依存関係と実行結果とを対応付けて予め記憶しておき、ジョブ実行管理部１０２は、ジョブ制御情報記憶部１１１に記憶されているタスクの依存関係を参照し、実行結果を決定してもよい。
【００６７】
次に、ステップＳ９において、仮想タスク生成部１２１は、タスクの状態が実行状態からアイドル状態へ遷移すると判断されたタスクを複製した仮想タスクを生成する。例えば、図６の場合、クライアント４０２のクライアント処理４１６を複製したタスクが仮想タスクとして生成される。
【００６８】
次に、ステップＳ１０において、仮想タスク登録部１２２は、生成した仮想タスクをジョブ制御情報記憶部１１１に追加する。このとき、仮想タスク登録部１２２は、仮想タスクの実行順序と、仮想タスクが実行される実行条件と、ジョブ結果予測部１０４によって予測された実行結果とを対応付けてジョブ制御情報記憶部１１１に記憶する。生成された仮想タスクがジョブ制御情報記憶部１１１に追加されることにより、今回アイドリング状態へ遷移すると判断されたタスクと同じタスクが実行される際に、タスクの解析及びタスクの実行結果の予測を行うことなく、ジョブ制御情報に登録されている仮想タスクを実行することが可能となる。
【００６９】
次に、図８のステップＳ１１において、ジョブ実行部１０１は、仮想タスクを実行する。このとき、スケジューラ１００は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に基づいて、仮想タスクを次に実行するタスクとして決定する。ジョブ実行部１０１は、仮想タスクを実行する。ジョブ実行部１０１は、スケジューラ１００によって決定された仮想タスクを実行する。
【００７０】
次に、ステップＳ１２において、ジョブ実行管理部１０２は、仮想タスクが正常に終了したか否かを判断する。具体的には、ジョブ実行管理部１０２は、ジョブ結果予測部１０４によって予測された実行結果と、実際にタスクが実行されることにより通知される実行結果とが一致するか否かを判断し、２つの実行結果が一致する場合、仮想タスクが正常に終了したと判断する。一方、ジョブ実行管理部１０２は、２つの実行結果が一致しない場合、仮想タスクが正常に終了しなかったと判断する。
【００７１】
ここで、仮想タスクが正常に終了したと判断された場合（ステップＳ１２でＹＥＳ）、ステップＳ１の処理へ戻る。なお、ジョブ実行管理部１０２は、実際にタスクが実行されることにより通知される実行結果を、タスクの状態が実行状態からアイドル状態へ遷移すると判断されたタスクへ送信してもよい。
【００７２】
一方、仮想タスクが正常に終了しなかったと判断された場合（ステップＳ１２でＮＯ）、又は、予測された実行結果が正常終了でないと判断された場合（ステップＳ７でＮＯ）、ステップＳ１３において、ジョブ実行管理部１０２は、タスクの状態が実行状態からアイドル状態へ遷移すると判断されたタスクへエラーの発生を通知する。エラーの発生を受信したタスクは、エラー処理を実行する。
【００７３】
次に、ステップＳ１４において、仮想タスク登録部１２２は、ジョブ制御情報記憶部１１１に記憶されている仮想タスクに関するジョブ制御情報を削除し、ステップＳ１の処理へ戻る。
【００７４】
かかる構成によれば、ジョブ実行管理部１０２が、ジョブ又はタスクの実行時に、ジョブ又はタスク処理完了待ちのアイドル状態の発生を検出し、ジョブ結果予測部１０４によって予測された実行結果を用いることにより、ジョブ及びタスクの実行条件を仮想的に成立させ、後続処理を即時に実行することができる。これにより、計算機システムの設計時又は計算機システムの初期化時には予測不可能だったアイドル時間の発生を回避することが可能となる。つまり、計算機システム全体のジョブ及びタスクを効率的にスケジュールすることができ、ジョブ実行時間を短縮することができる。
【００７５】
（実施の形態２）
図９は、本発明の実施の形態２における実行順序決定装置の構成を示すブロック図である。
【００７６】
図９において、実施の形態１と同じ符号で表す、スケジューラ１００、ジョブ実行部１０１、ジョブ条件解析部１０３、ジョブ結果予測部１０４、ジョブ履歴処理部１０５、ジョブ制御情報記憶部１１１、ジョブ履歴記憶部１１２及び仮想タスク管理部１２０は、前述した図２の構成要素と同一である。
【００７７】
図９では、図９に示す実行順序決定装置は、図２の構成に加え、デバイス制御管理部５０２、デバイス条件解析部５０３、デバイス結果予測部５０４、デバイス履歴処理部５０５、デバイス制御情報記憶部５１１及びデバイス履歴記憶部５１２を備える。また、図９に示す実行順序決定装置は、ジョブ実行管理部１０２の替わりにジョブ実行管理部５０１を備えている。
【００７８】
デバイス制御情報記憶部５１１は、周辺デバイスの制御を予約するために、対象となるデバイスファイルの情報又は周辺デバイスを制御するためのパラメータなどを指示するためのデバイス制御情報を保持している。デバイス制御情報は、実行する周辺デバイスの制御順序、及び制御条件の解析に必要な情報を含む。デバイス制御情報は、計算機が周辺デバイスを識別するための識別子と、周辺デバイスの状態と、周辺デバイスの制御順序とを含めば良く、記述形式は任意のものが利用可能である。図１０は、本発明実施の形態２におけるデバイス制御情報記憶部に格納されているデバイス制御情報の一例を示す図である。デバイス制御情報記憶部５１１は、デバイス識別子６０１、デバイス状態６０２及びデバイス制御条件６０３を組にして管理している。
【００７９】
デバイス制御情報記憶部５１１は、実行順序決定装置に接続される周辺デバイスの制御が開始されるための制御条件を記憶する。デバイス制御情報記憶部５１１は、デバイス識別子６０１、デバイス状態６０２及びデバイス制御条件６０３を対応付けたデバイス制御情報をテーブル形式で記憶している。デバイス制御情報記憶部５１１には、起動する順序に従ってデバイス識別子６０１、デバイス状態６０２及びデバイス制御条件６０３が格納されている。
【００８０】
図１０では、デバイス制御情報は、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）ドライブを表すデバイス識別子６０１を含む。また、デバイス制御情報は、スピンアップ開始、スピンアップ完了、メディア識別完了及びリードアクセス許可などを表すデバイス状態６０２を含む。さらに、スピンアップ開始というデバイス状態には、電源ＯＮというデバイス制御条件が対応付けられている。これは、電源がＯＮされたことを条件として、スピンアップが開始されることを表している。また、スピンアップ完了というデバイス状態には、スピンアップ開始というデバイス制御条件が対応付けられており、メディア識別完了というデバイス状態には、スピンアップ完了というデバイス制御条件が対応付けられており、リードアクセス許可というデバイス状態には、メディア識別完了というデバイス制御条件が対応付けられている。
【００８１】
デバイス条件解析部５０３は、デバイス制御情報記憶部５１１に記憶されているデバイス制御情報に基づいて、周辺デバイスの制御条件及び依存関係を解析する。
【００８２】
デバイス履歴記憶部５１２は、デバイス制御の前後で変化するデバイス状態のログを含む履歴情報を記憶している。図１１は、本発明の実施の形態２におけるデバイス履歴記憶部に記憶されている履歴情報の一例を示す図である。周辺デバイスの履歴情報は、デバイス制御レコード７０１、デバイス状態７０２及び完了時間７０３などから構成されている。デバイス制御レコード７０１は、デバイス制御を識別するための識別子であり、デバイス状態７０２は、デバイス制御の前後で変化する周辺デバイスの状態であり、完了時間７０３は、該デバイス制御に要した時間である。
【００８３】
デバイス結果予測部５０４は、現在実行中又は実行予定の周辺デバイスの制御結果を、履歴を用いて予測し、予測した制御結果をデバイス制御管理部５０２に通知する。デバイス結果予測部５０４は、デバイス条件解析部５０３によって解析された周辺デバイスの制御条件及び依存関係と、デバイス履歴記憶部５１２に記憶されている履歴情報とを用いて、現在実行中又は実行予定の周辺デバイスの制御結果を予測する。
【００８４】
デバイス制御管理部５０２は、周辺デバイスの制御状態を監視し、デバイス結果予測部５０４によって予測された制御結果をジョブ実行管理部５０１へ通知する。なお、デバイス制御管理部５０２は、ジョブ実行管理部５０１からの問い合わせに応じて、各周辺デバイスの制御条件又は依存関係によりタスク待機状態（アイドル状態）への遷移を検出した際に、デバイス結果予測部５０４によって予測された制御結果をジョブ実行管理部５０１へ通知する。さらに、デバイス制御管理部５０２は、デバイス制御情報記憶部５１１に記憶されているデバイス制御情報に、仮想タスクによるデバイス制御が発生する旨の制御情報を追記する。
【００８５】
デバイス制御管理部５０２は、実行中の周辺デバイスの状態を監視し、デバイス制御情報記憶部５１１に記憶されている制御条件に基づいて、周辺デバイスの状態が、周辺デバイスを制御するデバイス制御が実行されている実行状態から、他の周辺デバイスからの応答があるまで待機する処理待ち状態に遷移するデバイス制御を検出する。また、デバイス制御管理部５０２は、処理待ち状態に遷移するデバイス制御を検出した際に、当該デバイス制御に関する情報をジョブ実行管理部５０１に通知する。
【００８６】
デバイス履歴処理部５０５は、デバイス制御管理部５０２から通知された周辺デバイスの状態を用いて、デバイス制御の前後で変化するデバイス状態のログを周辺デバイスの履歴情報としてデバイス履歴記憶部５１２へ追記する。
【００８７】
ジョブ実行管理部５０１は、デバイス制御管理部５０２より制御結果を受け取り、受け取った制御結果が正常終了の場合、当該デバイス制御の実行結果として正常終了を返し、タスクを実行状態のまま維持し、当該ジョブの処理を継続させる。続いて、ジョブ実行管理部５０１は、周辺デバイスの制御条件の仮成立によりスキップされるデバイス処理、又は依存関係の解消によりスキップされるデバイス処理を実行する該タスクを複製した仮想タスクの起動を、仮想タスク管理部１２０に指示する。
【００８８】
ジョブ実行管理部５０１は、デバイス制御管理部５０２からデバイス制御に関する情報を受け取り、受け取ったデバイス制御に関する情報に基づいて、他のデバイス制御を実行する要求を処理待ち状態に遷移するデバイス制御から受け付けた際に、処理待ち状態に遷移するデバイス制御からの要求に対して応答する。
【００８９】
また、実施の形態１のジョブ実行管理部１０２と同様に、ジョブ実行管理部５０１は、ジョブ及びタスクの状態を監視して、ジョブ及びタスクの状態をジョブ履歴処理部１０５に通知する。また、ジョブ実行管理部５０１は、ジョブ及びタスクの実行条件又は依存関係に基づいて、ジョブ及びタスクの状態が実行状態からタスク待機状態（アイドル状態）へ遷移することを検出する。ジョブ実行管理部５０１は、アイドル状態への遷移を検出すると、ジョブ結果予測部１０４から予測された実行結果を受け取る。
【００９０】
ジョブ結果予測部１０４によって予測された実行結果が正常終了である場合、ジョブ実行管理部５０１は、当該タスクの実行結果として正常終了を返し、タスクを実行状態のまま維持し、当該ジョブの処理を継続させる。一方、ジョブ結果予測部１０４によって予測された実行結果が異常終了である場合、ジョブ実行管理部５０１は、当該タスクの実行結果として異常終了を返し、エラー処理を行うよう指示する。
【００９１】
続いて、ジョブ実行管理部５０１は、ジョブ及びタスクの実行条件の仮成立によりスキップされる処理、又は依存関係の解消によりスキップされる処理を実行する該タスクを複製した仮想タスクの起動を、仮想タスク管理部１２０に指示する。さらに、ジョブ実行管理部５０１は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に、当該ジョブが仮想タスクを起動する旨の制御情報を追記する。
【００９２】
仮想タスク管理部１２０は、デバイス制御管理部５０２によって検出された処理待ち状態に遷移するデバイス制御を複製したデバイス制御を仮想タスクとして生成する。また、仮想タスク管理部１２０は、生成した仮想タスクを、処理待ち状態に遷移するデバイス制御と並行して実行させるために、仮想タスクをジョブ制御情報記憶部１１１の実行順序に追加する。
【００９３】
仮想タスク生成部１２１は、実施の形態１と同様に、ジョブ実行管理部５０１からの指示を受け取り、仮想タスクを生成する。ただし、ジョブ実行管理部５０１からの指示対象は、ジョブ又はタスクが本来実行しなければいけなかった処理だけでなく、ジョブ又はタスクが本来実行しなければならなかった周辺デバイスの処理を含む。これにより、仮想タスク生成部１２１は、周辺デバイスの制御条件又は依存関係が修正されたジョブ又はタスクの複製を仮想タスクとして生成する。すなわち、仮想タスク生成部１２１は、ジョブ又はタスクらが本来実行しなければならなかった周辺デバイスの処理を実行するための仮想タスクを生成する。
【００９４】
さらに、仮想タスク登録部１２２は、ジョブ制御情報記憶部１１１に記憶されているジョブ制御情報に、当該ジョブが仮想タスクを起動する旨の制御情報を追記する。
【００９５】
なお、本実施の形態において、デバイス制御情報記憶部５１１がデバイス制御情報記憶部の一例に相当し、デバイス制御管理部５０２がデバイス制御管理部の一例に相当し、ジョブ実行管理部５０１がタスク実行管理部の一例に相当する。
【００９６】
かかる構成によれば、デバイス制御管理部５０２が、デバイス処理完了待ちのアイドル状態の発生を検出し、デバイス結果予測部５０４によって予測されたデバイス制御結果をジョブ実行管理部５０１に通知する。通知を受けたジョブ実行管理部５０１が、デバイス制御結果を、デバイス制御を要求したジョブ又はタスクに対するデバイスＩ／Ｏ結果とすることにより、ジョブ又はタスクによるデバイスアクセスを仮想的に成立させ、後続処理を即時に実行することとができる。これにより、計算機システムの設計時又は計算機システムの初期化時には予測不可能だったアイドル時間の発生を回避することが可能となる。つまり、計算機システム全体のジョブ及びタスクを効率的にスケジュールすることができ、ジョブ実行時間を短縮することができる。
【００９７】
また、ジョブ実行時における実行条件の成立又は不成立の結果と、実行条件の判断時に参照したデータとを履歴情報として保持し、ジョブ及びタスク間の依存関係に基づいて、処理完了待ちに起因するアイドル状態を検出することができる。この処理完了待ちとは、ジョブ及びタスクの処理完了待ち、又は、デバイス処理の完了待ちのことである。アイドル状態検出時に、保持している履歴情報を用いて、ジョブ及びタスクの実行条件を本来の実行時間に先行して仮成立させる。これにより、当該ジョブ及びタスクの処理が処理待ちにより中断することなく、後続処理を即時に実行可能となる。
【００９８】
さらに、本来の実行時間に先行して仮成立させたタスクの実行条件を本来の実行条件で成立させるために、当該タスクを複製した仮想タスクを起床し、実行条件の成立処理を仮想タスクに移行する。当該仮想タスクの起床をジョブステップとして持つジョブをジョブ実行順序に追加し、仮成立させた実行条件をジョブ及びタスクの実行条件から除外する。これにより、シミュレーションの実行を必要とせずに、また、システム構成の予測不能な変更時にもジョブ及びタスクを効率的にスケジュールすることができる。
【００９９】
また、本発明の各機能ブロックは典型的にはソフトウェアとして実現されるが、集積回路であるＬＳＩとして実現しても良い。各機能ブロックは個別に１チップ化されても良いし、一部又はすべてを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ又はウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＬＳＩ内部の回路セルの接続又は設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。ＬＳＩに置き換わる集積回路化の技術としては、例えばバイオ技術の適応等が可能性としてありえる。
【０１００】
なお、上述した具体的実施形態には以下の構成を有する発明が主に含まれている。
【０１０１】
本発明の一局面に係る実行順序決定装置は、並行して動作可能な複数のタスクの実行順序を決定する実行順序決定装置であって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部とを備え、前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加する。
【０１０２】
この構成によれば、タスク制御情報記憶部は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶しており、タスク実行部は、タスク制御情報記憶部に記憶されている実行順序に従ってタスクを実行する。タスク実行管理部は、実行中のタスクの状態を監視し、タスク制御情報記憶部に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。仮想タスク管理部は、タスク実行管理部によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。そして、タスク実行管理部は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。続いて、仮想タスク管理部は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをタスク制御情報記憶部の実行順序に追加する。
【０１０３】
したがって、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１０４】
また、上記の実行順序決定装置において、前記実行順序決定装置に接続される周辺デバイスの制御が開始されるための制御条件を記憶するデバイス制御情報記憶部と、実行中の周辺デバイスの状態を監視し、前記デバイス制御情報記憶部に記憶されている前記制御条件に基づいて、周辺デバイスの状態が、周辺デバイスを制御するデバイス制御が実行されている実行状態から、他の周辺デバイスからの応答があるまで待機する処理待ち状態に遷移するデバイス制御を検出するデバイス制御管理部とをさらに備え、前記仮想タスク管理部は、前記デバイス制御管理部によって検出された前記処理待ち状態に遷移するデバイス制御を複製したデバイス制御を仮想タスクとして生成し、前記デバイス制御管理部は、前記処理待ち状態に遷移するデバイス制御を検出した際に、当該デバイス制御に関する情報を前記タスク実行管理部に通知し、前記タスク実行管理部は、前記デバイス制御管理部から前記デバイス制御に関する情報を受け取り、受け取った前記デバイス制御に関する情報に基づいて、他のデバイス制御を実行する要求を前記処理待ち状態に遷移するデバイス制御から受け付けた際に、前記処理待ち状態に遷移するデバイス制御からの前記要求に対して応答し、前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するデバイス制御と並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加することが好ましい。
【０１０５】
この構成によれば、デバイス制御情報記憶部は、実行順序決定装置に接続される周辺デバイスの制御が開始されるための制御条件を記憶しており、デバイス制御管理部は、実行中の周辺デバイスの状態を監視し、デバイス制御情報記憶部に記憶されている制御条件に基づいて、周辺デバイスの状態が、周辺デバイスを制御するデバイス制御が実行されている実行状態から、他の周辺デバイスからの応答があるまで待機する処理待ち状態に遷移するデバイス制御を検出する。そして、仮想タスク管理部は、デバイス制御管理部によって検出された処理待ち状態に遷移するデバイス制御を複製したデバイス制御を仮想タスクとして生成する。デバイス制御管理部は、処理待ち状態に遷移するデバイス制御を検出した際に、当該デバイス制御に関する情報をタスク実行管理部に通知する。タスク実行管理部は、デバイス制御管理部からデバイス制御に関する情報を受け取り、受け取ったデバイス制御に関する情報に基づいて、他のデバイス制御を実行する要求を処理待ち状態に遷移するデバイス制御から受け付けた際に、処理待ち状態に遷移するデバイス制御からの要求に対して応答する。続いて、仮想タスク管理部は、生成した仮想タスクを、処理待ち状態に遷移するデバイス制御と並行して実行させるために、仮想タスクをタスク制御情報記憶部の実行順序に追加する。
【０１０６】
したがって、他のデバイス制御を実行する要求を処理待ち状態に遷移するデバイス制御から受け付けた際に、処理待ち状態に遷移するデバイス制御からの要求に対して応答することにより、処理待ち状態に遷移することなく当該デバイス制御が実行され、処理待ち状態に遷移するデバイス制御を複製したデバイス制御が仮想タスクとして当該デバイス制御の実行に並行して実行されるので、効率的に周辺デバイスの制御のスケジューリングを実施することができる。
【０１０７】
また、上記の実行順序決定装置において、各タスクを実行した実行結果と、各タスクの実行開始及び実行終了のログとを含む履歴情報を記憶するタスク履歴記憶部と、前記タスク実行管理部によって前記処理待ち状態に遷移するタスクが検出された際に、前記他のタスクの実行結果を、前記タスク制御情報記憶部に記憶されている実行条件と、前記タスク履歴記憶部に記憶されている履歴情報とに基づいて予測するタスク結果予測部とをさらに備え、前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記タスク結果予測部によって予測された前記実行結果を用いて、前記処理待ち状態に遷移するタスクからの前記要求に対して応答することが好ましい。
【０１０８】
この構成によれば、タスク履歴記憶部は、各タスクを実行した実行結果と、各タスクの実行開始及び実行終了のログとを含む履歴情報を記憶しており、タスク結果予測部は、タスク実行管理部によって処理待ち状態に遷移するタスクが検出された際に、他のタスクの実行結果を、タスク制御情報記憶部に記憶されている実行条件と、タスク履歴記憶部に記憶されている履歴情報とに基づいて予測する。そして、タスク実行管理部は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、タスク結果予測部によって予測された実行結果を用いて、処理待ち状態に遷移するタスクからの要求に対して応答する。
【０１０９】
したがって、処理待ち状態に遷移するタスクが検出された際に、他のタスクの実行結果が、実行条件と履歴情報とに基づいて予測されるので、システムの構成が変更された結果、処理待ち状態に遷移するタスクが発生した場合であっても、予測された実行結果を用いて、処理待ち状態に遷移するタスクに対して応答することができる。
【０１１０】
また、上記の実行順序決定装置において、前記仮想タスク管理部は、前記仮想タスクが受け取る前記他のタスクの実行結果が異常終了であった場合、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序から削除することが好ましい。
【０１１１】
この構成によれば、仮想タスクが受け取る他のタスクの実行結果が異常終了であった場合、仮想タスクがタスク制御情報記憶部の実行順序から削除される。したがって、処理待ち状態に遷移するタスクが再度検出された場合は、仮想タスクが実行されないので、不要なタスクの実行を防止することができ、処理時間を短縮することができる。
【０１１２】
本発明の他の局面に係る実行順序決定プログラムは、並行して動作可能な複数のタスクの実行順序を決定するための実行順序決定プログラムであって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部と、前記タスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行部と、実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理部と、前記タスク実行管理部によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理部としてコンピュータを機能させ、前記タスク実行管理部は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、前記仮想タスク管理部は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加する。
【０１１３】
この構成によれば、タスク制御情報記憶部は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶しており、タスク実行部は、タスク制御情報記憶部に記憶されている実行順序に従ってタスクを実行する。タスク実行管理部は、実行中のタスクの状態を監視し、タスク制御情報記憶部に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。仮想タスク管理部は、タスク実行管理部によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。そして、タスク実行管理部は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。続いて、仮想タスク管理部は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをタスク制御情報記憶部の実行順序に追加する。
【０１１４】
したがって、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１１５】
本発明の他の局面に係る実行順序決定回路は、並行して動作可能な複数のタスクの実行順序を決定する実行順序決定回路であって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶回路と、前記タスク制御情報記憶回路に記憶されている前記実行順序に従って前記タスクを実行するタスク実行回路と、実行中のタスクの状態を監視し、前記タスク制御情報記憶回路に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出するタスク実行管理回路と、前記タスク実行管理回路によって検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク管理回路とを備え、前記タスク実行管理回路は、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答し、前記仮想タスク管理回路は、生成した前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶回路の前記実行順序に追加する。
【０１１６】
この構成によれば、タスク制御情報記憶回路は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶しており、タスク実行回路は、タスク制御情報記憶回路に記憶されている実行順序に従ってタスクを実行する。タスク実行管理回路は、実行中のタスクの状態を監視し、タスク制御情報記憶回路に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する。仮想タスク管理回路は、タスク実行管理回路によって検出された処理待ち状態に遷移するタスクを複製した仮想タスクを生成する。そして、タスク実行管理回路は、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答する。続いて、仮想タスク管理回路は、生成した仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクをタスク制御情報記憶回路の実行順序に追加する。
【０１１７】
したがって、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１１８】
本発明の他の局面に係る実行順序決定方法は、並行して動作可能な複数のタスクの実行順序を決定するための実行順序決定方法であって、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶するタスク制御情報記憶部に記憶されている前記実行順序に従って前記タスクを実行するタスク実行ステップと、実行中のタスクの状態を監視し、前記タスク制御情報記憶部に記憶されている前記実行条件に基づいて、前記タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクを検出する検出ステップと、前記検出ステップにおいて検出された前記処理待ち状態に遷移するタスクを複製した仮想タスクを生成する仮想タスク生成ステップと、他のタスクを実行する要求を前記処理待ち状態に遷移するタスクから受け付けた際に、前記処理待ち状態に遷移するタスクからの前記要求に対して応答する応答ステップと、前記仮想タスク生成ステップにおいて生成された前記仮想タスクを、前記処理待ち状態に遷移するタスクと並行して実行させるために、前記仮想タスクを前記タスク制御情報記憶部の前記実行順序に追加する追加ステップとを含む。
【０１１９】
この構成によれば、タスク制御情報記憶部は、各タスクの実行が開始されるための実行条件と、複数のタスクの実行順序とを記憶している。タスク実行ステップにおいて、タスク制御情報記憶部に記憶されている実行順序に従ってタスクが実行される。検出ステップにおいて、実行中のタスクの状態が監視され、タスク制御情報記憶部に記憶されている実行条件に基づいて、タスクの状態が、タスクを実行している実行状態から、他のタスクからの応答があるまで待機する処理待ち状態に遷移するタスクが検出される。仮想タスク生成ステップにおいて、検出ステップで検出された処理待ち状態に遷移するタスクを複製した仮想タスクが生成される。そして、応答ステップにおいて、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答が行われる。続いて、追加ステップにおいて、仮想タスク生成ステップで生成された仮想タスクを、処理待ち状態に遷移するタスクと並行して実行させるために、仮想タスクがタスク制御情報記憶部の実行順序に追加される。
【０１２０】
したがって、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１２１】
本発明の他の局面に係る情報処理装置は、上記の実行順序決定装置と、前記実行順序決定装置に接続される周辺デバイスとを備える。
【０１２２】
この構成によれば、他のタスクを実行する要求を処理待ち状態に遷移するタスクから受け付けた際に、処理待ち状態に遷移するタスクからの要求に対して応答することにより、処理待ち状態に遷移することなく当該タスクが実行され、処理待ち状態に遷移するタスクを複製した仮想タスクが当該タスクの実行に並行して実行されるので、効率的にタスクのスケジューリングを実施することができる。
【０１２３】
なお、発明を実施するための形態の項においてなされた具体的な実施態様又は実施例は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例にのみ限定して狭義に解釈されるべきものではなく、本発明の精神と特許請求事項との範囲内で、種々変更して実施することができるものである。
【産業上の利用可能性】
【０１２４】
本発明にかかる実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置は、複数のジョブを並行して動作可能な計算機システムにおいて有用である。また、本発明にかかる実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置は、大型計算機又はパーソナルコンピュータのみならず、各種の家電機器、携帯電話のような通信機器、産業機器又は乗用機器などの用途でも利用可能である。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2010001555.tif 000014
【図２】
2010001555.tif 000015
【図３】
2010001555.tif 000016
【図４】
2010001555.tif 000017
【図５】
2010001555.tif 000018
【図６】
2010001555.tif 000019
【図７】
2010001555.tif 000020
【図８】
2010001555.tif 000021
【図９】
2010001555.tif 000022
【図１０】
2010001555.tif 000023
【図１１】
2010001555.tif 000024
【国際調査報告】
2010001555.tif 000025
2010001555.tif 000026
2010001555.tif 000027
2010001555.tif 000028