(57)【要約】【課題】ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことを可能とするジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置を提供する。【解決手段】試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、スレッドの状態が全て待機中である場合、スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する。【選択図】図６
2018005768.tif 000002
【特許請求の範囲】
【請求項１】
試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、
前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、
処理をコンピュータに実行させることを特徴とするジョブスケジューラ試験プログラム。
【請求項２】
請求項１において、
前記スレッドは、自スレッドの状態が待機中になった場合、自スレッドの状態が待機中であることを示す情報を記憶部に記憶し、自スレッドの状態が処理中になった場合、自スレッドの状態が処理中であることを示す情報を前記記憶部に記憶し、
前記スレッドの状態を判定する処理では、前記記憶部を参照し、前記スレッドの状態が全て待機中であるか否かの判定を行う、
ことを特徴とするジョブスケジューラ試験プログラム。
【請求項３】
請求項１において、
待機中である前記スレッドは、自スレッドの状態が次に処理中になる時間を記憶部し、
前記システムの時間を変更する処理では、前記記憶部を参照し、前記システムの時間を前記次に処理中になる時間のうちの最も早い時間に変更する、
ことを特徴とするジョブスケジューラ試験プログラム。
【請求項４】
請求項１において、
前記システムの時間を変更する処理では、前記スレッドの状態が全て待機中である状態が所定時間続いたと判定した場合に、前記システムの時間の変更を行う、
ことを特徴とするジョブスケジューラ試験プログラム。
【請求項５】
請求項１において、さらに、
前記システムの時間を変更する処理の後、変更された前記システムの時間を前記スレッドに参照させ、変更された前記システムの時間に応じた処理を実行させる、
処理をコンピュータに実行させることを特徴とするジョブスケジューラ試験プログラム。
【請求項６】
請求項５において、
前記システムの時間を変更する処理では、前記システムの時間を変更する処理が過去に行われている場合、過去に行われた前記システムの時間を変更する処理の後に行われる前記システムの時間を参照させる処理が行われた後に、前記システムの時間の変更を行う、
ことを特徴とするジョブスケジューラ試験プログラム。
【請求項７】
試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、
前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、
ことを特徴とするジョブスケジューラ試験方法。
【請求項８】
試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する時間変更部を有する、
ことを特徴とする並列処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置に関する。
【背景技術】
【０００２】
利用者に対してサービスを提供する事業者（以下、単に事業者とも呼ぶ）は、例えば、利用者に対して各種サービスの提供を行うために、用途に応じた業務システムを構成して稼働させる。このような業務システムにおいて、事業者は、例えば、各ジョブの処理を行う計算ノードや各ジョブの処理タイミングの決定を行うジョブスケジューラを動作させる。
【０００３】
具体的に、ジョブスケジューラは、例えば、各計算ノードにおける空き資源の状況を把握し、投入されたジョブを処理することができる計算ノードを決定し、決定した計算ノードに対してジョブの処理を指示する。これにより、事業者は、例えば、複数のジョブを処理する必要がある場合であっても、各ジョブの処理を効率的に行うことが可能になる（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２６７８８９号公報
【特許文献２】特開平４−２６８９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようなジョブスケジューラを用いる場合、事業者は、ジョブスケジューラの動作について予め試験を行う必要がある。しかしながら、例えば、大規模な並列計算機システム（以下、ＨＰＣ（Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ）システムとも呼ぶ）において動作するジョブスケジューラの場合、実際にＨＰＣシステムを稼働させて試験を行うことが困難である場合がある。
【０００６】
そこで、事業者は、ジョブスケジューラの試験を行う際に、例えば、ＨＰＣシステムを構成する計算ノードにおけるジョブの処理等の状況を再現するシミュレータを用いる。シミュレータは、例えば、計算ノードにおいて実際にジョブの処理を行うことなく、ジョブの処理が行われた後の状況の再現を行う。これにより、事業者は、計算ノードを実際に稼働させることなく、ジョブシミュレータの試験を行うことが可能になる（以下、シミュレータがジョブの処理を行われた後の状況の再現を行うことを処理の加速とも呼ぶ）。
【０００７】
上記のように処理の加速が行われた場合、事業者は、シミュレータが用いられていない場合と同じ状況においてジョブスケジューラの試験を行うために、ジョブスケジューラが参照するシステムの時間を、加速されたジョブの実際の処理に要する時間だけ先に進める必要がある。
【０００８】
しかしながら、この場合、事業者は、ジョブスケジューラにおける処理に影響が及ぶことを防止するため、処理の加速をジョブスケジューラが処理を行っていない間に行う必要がある。そのため、ジョブスケジューラが処理を行っているタイミングを特定することができない場合、事業者は、システムの時間を先に進めることができない。したがって、この場合、事業者は、処理の加速を行うことができず、ジョブスケジューラの試験を効率的に行うことができない。
【０００９】
そこで、一つの側面では、ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことを可能とするジョブスケジューラ試験プログラム、ジョブスケジューラ試験方法及び並列処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
実施の形態の一つの態様によれば、試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、処理をコンピュータに実行させる。
【発明の効果】
【００１１】
一つの側面によれば、ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことを可能とする。
【図面の簡単な説明】
【００１２】
【図１】図１は、情報処理システム１０の構成を示す図である。
【図２】図２は、情報処理装置１及び情報処理装置２の具体例を説明する図である。
【図３】図３は、ジョブシミュレータを用いた場合の情報処理装置１の具体例を説明する図である。
【図４】図４は、本実施の形態におけるジョブスケジューラ試験処理の概略を説明する図である。
【図５】図５は、情報処理装置１のハードウエア構成を説明する図である。
【図６】図６は、第１の実施の形態におけるジョブスケジューラ試験処理の概略を説明するフローチャート図である。
【図７】図７は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。
【図８】図８は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。
【図９】図９は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。
【図１０】図１０は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。
【図１１】図１１は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。
【図１２】図１２は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。
【図１３】図１３は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。
【図１４】図１４は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。
【図１５】図１５は、次回処理時間情報１３１の具体例を説明する図である。
【図１６】図１６は、セマフォ情報１３４の具体例である。
【図１７】図１７は、処理回数情報１３３の具体例である。
【図１８】図１８は、加速時間情報１３２の具体例を説明する図である。
【図１９】図１９は、セマフォ情報１３４の具体例である。
【図２０】図２０は、セマフォ情報１３４の具体例である。
【図２１】図２１は、セマフォ情報１３４の具体例である。
【図２２】図２２は、セマフォ情報１３４の具体例である。
【図２３】図２３は、セマフォ情報１３４の具体例である。
【図２４】図２４は、セマフォ情報１３４の具体例である。
【図２５】図２５は、セマフォ情報１３４の具体例である。
【図２６】図２６は、セマフォ情報１３４の具体例である。
【発明を実施するための形態】
【００１３】
［情報処理システムの構成］
図１は、情報処理システム１０の構成を示す図である。図１に示す情報処理システム１０は、情報処理装置１（以下、ジョブスケジューラ試験装置１または並列処理装置１とも呼ぶ）と、情報処理装置２と、記憶装置１ａとを有する。情報処理装置１は、例えば、インターネットやイントラネット等からなるネットワークＮＷを介して事業者端末１１にアクセスすることが可能な物理マシンである。
【００１４】
情報処理装置１は、例えば、ジョブスケジューラが動作する管理ノードとして機能する物理マシンである。そして、情報処理装置１は、ジョブスケジューラの動作を試験する処理（以下、ジョブスケジューラ試験処理）を行う。なお、ジョブスケジューラが動作する物理マシンは、ジョブスケジューラ試験処理を行う物理マシンと異なる物理マシンであってもよい。
【００１５】
情報処理装置２は、例えば、複数台の物理マシンからなり、それぞれＨＰＣシステムの一部を構成する計算ノードである。
【００１６】
記憶装置１ａは、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等からなる外部ディスク装置である。具体的に、記憶装置１ａは、例えば、ジョブスケジューラ試験処理が行われる際に参照される各種情報を格納する。なお、記憶装置１ａは、情報処理装置１の内部に設けられたディスク装置であってもよい。
【００１７】
事業者端末１１は、例えば、事業者が必要な情報の入力を行う端末である。そして、事業者端末１１は、事業者による情報の入力があった場合、例えば、入力された情報を情報処理装置１に送信する。
【００１８】
［情報処理装置の具体例］
次に、情報処理装置１及び情報処理装置２の具体例について説明を行う。図２は、情報処理装置１及び情報処理装置２の具体例を説明する図である。
【００１９】
図２に示す情報処理装置１では、ジョブスケジューラを管理するジョブマネージャとして動作するジョブマネージャプロセスＰ１（以下、単にジョブマネージャＰ１とも呼ぶ）と、ジョブスケジューラとして動作するジョブスケジューラプロセスＰ２（以下、単にジョブスケジューラＰ２とも呼ぶ）とが動作する。また、図２に示す情報処理装置１では、計算ノード（図２に示す例では、情報処理装置２ａ及び情報処理装置２ｂ等）におけるジョブの処理を制御する資源管理プロセスＰ３（以下、単に資源管理Ｐ３とも呼ぶ）と、計算ノードにおけるジョブの処理を行う実行管理プロセスＰ４（以下、単に実行管理Ｐ４とも呼ぶ）とが動作する。図２に示す例において、各ジョブスケジューラＰ２は、実行管理Ｐ４のいずれかにそれぞれ対応する。
【００２０】
そして、図２に示すジョブマネージャＰ１では、投入されたジョブの制御を行うジョブ投入スレッド、投入されたジョブの削除を行うジョブ削除スレッド及び資源管理Ｐ３に対してジョブの実行依頼を行うジョブ実行依頼スレッド等が動作する。また、図２に示すジョブスケジューラＰ２では、実行管理Ｐ４のジョブ実行スレッドからジョブを実行させるスレッドを選択する資源選択スレッド及びジョブマネージャＰ１に対してジョブの実行依頼を行うジョブ実行依頼スレッド等が動作する。また、図２に示す資源管理Ｐ３では、ジョブの実行に必要な情報を実行管理Ｐ４のジョブ実行スレッドに通知するジョブ実行スレッド等が動作する。さらに、図２に示す実行管理Ｐ４では、ジョブ実行を行うジョブ実行スレッド等が動作する。
【００２１】
図２に示す情報処理装置１において、例えば、ジョブマネージャＰ１及びジョブスケジューラＰ２の試験を行う場合、事業者は、資源管理Ｐ３及び実行管理Ｐ４に代えて、ジョブシミュレータを動作させる。以下、ジョブシミュレータを用いた場合の情報処理装置１の具体例について説明を行う。なお、以下、プロセスとスレッドとを総称して単にスレッドとも呼ぶ。
【００２２】
［ジョブシミュレータを用いた場合の情報処理装置の具体例］
図３は、ジョブシミュレータを用いた場合の情報処理装置１の具体例を説明する図である。図３に示す情報処理装置１は、例えば、ジョブスケジューラＰ２等の試験を行う場合、図２で説明した資源管理Ｐ３及び実行管理Ｐ４に代えて、ジョブシミュレータプロセスＰ５（以下、単にジョブシミュレータＰ５とも呼ぶ）を動作させる。ジョブシミュレータＰ５は、例えば、計算ノードにおいてジョブの処理等が行われた後の状況を再現することが可能なプロセスである。そのため、事業者は、情報処理装置１においてジョブシミュレータＰ５を動作させることにより、計算ノードを実際に稼働させることなく、ジョブスケジューラの動作に関する試験を行うことが可能になる。
【００２３】
ここで、情報処理装置１において処理の加速が行われた場合、事業者は、シミュレータＰ５が用いられていない場合と同じ状況においてジョブスケジューラＰ２の試験を行うために、ジョブスケジューラＰ２が参照するシステムの時間を、加速されたジョブの実際の処理に要する時間だけ先に進める必要がある。
【００２４】
しかしながら、この場合、ジョブスケジューラＰ２における処理に影響が及ぶことを防止するため、事業者は、処理の加速をジョブスケジューラＰ２が処理を行っていない間に行う必要がある。そのため、ジョブスケジューラＰ２が処理を行っているタイミングを特定することができない場合、事業者は、システムの時間を先に進めることができない。したがって、この場合、事業者は、処理の加速を行うことができず、ジョブスケジューラＰ２の試験を効率的に行うことができない。
【００２５】
そこで、本実施の形態において、情報処理装置１は、ジョブスケジューラＰ２（以下、試験対象のジョブスケジューラＰ２とも呼ぶ）のスレッドの状態が全て待機中であるか否かを判定する。そして、情報処理装置１は、ジョブスケジューラＰ２のスレッドの状態が全て待機中である場合、各スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する。以下、本実施の形態におけるジョブスケジューラ試験処理の概略について説明を行う。
【００２６】
［ジョブスケジューラ試験処理の概略］
図４は、本実施の形態におけるジョブスケジューラ試験処理の概略を説明する図である。図４に示す例において、情報処理装置１では、加速制御マネージャプロセスＰ６（以下、単に加速制御マネージャＰ６とも呼ぶ）が動作する。また、図４に示す例において、ジョブマネージャＰ１、ジョブスケジューラＰ２及びシミュレータＰ５では、それぞれ加速制御スレッドが動作する。
【００２７】
具体的に、情報処理装置１において動作する各スレッドは、自スレッドが処理中であるか否か（待機中であるか否か）を示す情報（以下、セマフォ情報１３４とも呼ぶ）を記憶装置１ａに記憶する。そして、加速制御マネージャＰ６は、セマフォ情報１３４が情報処理装置１の全スレッドが待機中であることを示す場合に、処理の加速が行われた時間の累計を示す情報（以下、加速時間情報１３２とも呼ぶ）に基づき、情報処理装置１において動作する各スレッドが参照する時間を先に進める。その後、加速制御スレッドは、加速された時間を各プロセスに参照させる。
【００２８】
すなわち、ジョブシミュレータＰ５を用いてジョブスケジューラＰ２の試験を行う場合において、ジョブスケジューラＰ２の全てのスレッドが待機中である場合、情報処理装置１は、処理の加速を行ってもジョブスケジューラＰ２の試験に影響を及ぼすことはない。そのため、情報処理装置１は、ジョブスケジューラＰ２の全てのスレッドが待機中である場合に限り、処理の加速を行う。これにより、情報処理装置１は、ジョブシミュレータＰ５を用いたジョブスケジューラＰ２の試験を効率的に行うことが可能になる。
【００２９】
［情報処理装置のハードウエア構成］
次に、情報処理装置１のハードウエア構成について説明する。図５は、情報処理装置１のハードウエア構成を説明する図である。
【００３０】
情報処理装置１は、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体（ストレージ）１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００３１】
記憶媒体１０４は、記憶媒体１０４内のプログラム格納領域（図示しない）に、ジョブスケジューラ試験処理を行うためのプログラム１１０を記憶する。
【００３２】
ＣＰＵ１０１は、図５に示すように、プログラム１１０の実行時に、プログラム１１０を記憶媒体１０４からメモリ１０２にロードし、プログラム１１０と協働してジョブスケジューラ試験処理を行う。すなわち、ＣＰＵ１０１は、プログラム１１０と協働することにより、後述する加速制御スレッドや加速制御マネージャＰ６として動作する。
【００３３】
記憶媒体１０４は、例えば、ジョブスケジューラ試験処理を行う際に参照される情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）を有する。具体的に、情報格納領域１３０は、例えば、待機中の各スレッドが次に処理を行う時間を示す情報(以下、次回処理時間情報１３１とも呼ぶ)と、加速時間情報１３２とを記憶する。また、情報格納領域１３０は、例えば、各スレッドの状態が待機中から処理中に変わった回数を示す情報（以下、処理回数情報１３３とも呼ぶ）と、セマフォ情報１３４とを記憶する。
【００３４】
また、外部インターフェース１０３は、事業者端末１１等と通信を行う。なお、図１で説明した記憶装置１ａは、記憶媒体１０４に対応するものであってよい。
【００３５】
[第１の実施の形態の概略のフローチャート図］
次に、第１の実施の形態の概略のフローチャート図について説明する。図６は、第１の実施の形態におけるジョブスケジューラ試験処理の概略を説明するフローチャート図である。
【００３６】
情報処理装置１は、試験開始タイミングまで待機する（Ｓ１のＮＯ）。試験開始タイミングは、例えば、事業者が情報処理装置１に対してジョブスケジューラＰ２の試験を行う旨の入力を行ったタイミングであってよい。
【００３７】
そして、試験開始タイミングになった場合（Ｓ１のＹＥＳ）、情報処理装置１は、試験対象のジョブスケジューラＰ２のスレッドの状態が全て待機中であるか否かを判定する（Ｓ２）。情報処理装置１は、例えば、情報格納領域１３０に記憶されたセマフォ情報１３４を参照することにより、試験対象のジョブスケジューラＰ２のスレッドの状態が全て待機中であるか否かを判定する。セマフォ情報１３４の具体例については後述する。
【００３８】
その結果、試験対象のジョブスケジューラＰ２のスレッドの状態が全て待機中であると判定された場合（Ｓ３のＹＥＳ）、情報処理装置１は、スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する（Ｓ４）。一方、試験対象のジョブスケジューラＰ２のスレッドの状態に待機中でないものが存在すると判定された場合（Ｓ３のＮＯ）、情報処理装置１は、Ｓ４の処理を行わない。
【００３９】
すなわち、ジョブシミュレータＰ５を用いてジョブスケジューラＰ２の試験を行う場合において、ジョブスケジューラＰ２の全てのスレッドが待機中である場合、情報処理装置１は、処理の加速を行ってもジョブスケジューラＰ２の試験に影響を及ぼすことはない。そのため、情報処理装置１は、ジョブスケジューラＰ２の全てのスレッドが待機中である場合に限り、処理の加速を行う。
【００４０】
このように、本実施の形態における情報処理装置１は、試験対象のジョブスケジューラＰ２のスレッドの状態が全て待機中であるか否かを判定する。そして、情報処理装置１は、ジョブスケジューラＰ２のスレッドの状態が全て待機中である場合、各スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する。
【００４１】
これにより、情報処理装置１は、ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことが可能になる。
【００４２】
[第１の実施の形態の詳細］
次に、第１の実施の形態の詳細について説明する。図７から図１４は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明するフローチャート図である。図１５から図２６は、第１の実施の形態におけるジョブスケジューラ試験処理の詳細を説明する図である。図１５から図２６を参照しながら、図７から図１４のフローチャート図について説明を行う。なお、以下、試験対象がジョブマネージャＰ１及びジョブスケジューラＰ２である場合について説明を行う。
【００４３】
[ジョブマネージャの通常処理］
初めに、情報処理装置１のジョブマネージャＰ１において通常行われる処理（以下、通常処理とも呼ぶ）について説明を行う。
【００４４】
ジョブマネージャＰ１は、図７に示すように、処理開始タイミングまで待機する（Ｓ１１のＮＯ）。処理開始タイミングは、例えば、ジョブマネージャＰ１がジョブスケジューラＰ２を起動するタイミング（事象者によって予め定められたタイミング）であってよい。
【００４５】
そして、処理開始タイミングになった場合（Ｓ１１のＹＥＳ）、ジョブマネージャＰ１は、ジョブスケジューラＰ２の起動を行う（Ｓ１２）。なお、事業者は、処理開始タイミングになる前に、ジョブシミュレータＰ５の起動を行うものであってよい。
【００４６】
続いて、ジョブマネージャＰ１は、自プロセス内の各スレッドの起動を行う（Ｓ１３）。具体的に、ジョブマネージャＰ１は、例えば、ジョブ投入スレッド、ジョブ削除スレッド及びジョブ実行依頼スレッド等を起動する。
【００４７】
その後、ジョブマネージャＰ１は、所定のイベント及び所定の時間を指定し、待機処理の呼び出しを行う（Ｓ１４）。待機処理は、例えば、指定された所定のイベントを受信するまで、または、指定された所定の時間が経過するまで待機する処理である。すなわち、ジョブマネージャＰ１は、Ｓ１３の処理までを行った後、次に処理を行うべきタイミングになるまで待機する。以下、待機処理について説明を行う。
【００４８】
[待機処理］
図１４は、待機処理を説明するフローチャート図である。待機処理の呼び出しを行うスレッド（以下、単にスレッドとも呼ぶ）は、自スレッドが含まれるプロセスにおいて、加速制御スレッドが起動しているか否かを判定する（Ｓ１０１）。そして、加速制御スレッドが起動していない場合（Ｓ１０１のＮＯ）、スレッドは、加速制御スレッドの起動を行う（Ｓ１０２）。一方、加速制御スレッドが起動している場合（Ｓ１０１のＹＥＳ）、スレッドは、Ｓ１０２の処理を行わない。
【００４９】
すなわち、本実施の形態における情報処理装置１は、最初に呼び出された待機処理において加速制御スレッドの起動を行う。これにより、事業者は、試験対象であるジョブマネージャＰ１やジョブスケジューラＰ２に、加速制御スレッドを起動するための処理（通常は行われない処理）を行わせる必要がなくなる。そのため、事業者は、ジョブマネージャＰ１やジョブスケジューラＰ２に対する試験の信頼性を高めることが可能になる。
【００５０】
その後、スレッドは、自スレッドが次に処理を実行する時間を、次回処理時間情報１３１の一部として情報格納領域１３０に記憶する（Ｓ１０３）。具体的に、プロセスは、Ｓ１４の処理で指定された所定の時間を、次回処理時間情報１３１の一部として情報格納領域１３０に記憶する。以下、次回処理時間情報１３１の具体例について説明を行う。
【００５１】
[次回処理時間情報の具体例］
図１５は、次回処理時間情報１３１の具体例を説明する図である。以下、情報処理装置１において、２スレッドのジョブマネージャＰ１が１プロセスと、２スレッドのジョブスケジューラが２プロセスと、２スレッドのジョブシミュレータＰ５が１プロセスとが動作しているものとして説明を行う。
【００５２】
図１５に示す次回処理時間情報１３１は、ジョブマネージャＰ１のスレッドにそれぞれ対応する時間が設定される「マネージャ（１）」及び「マネージャ（２）」を項目として有する。また、図１５に示す次回処理時間情報１３１は、各ジョブスケジューラＰ２のスレッドにそれぞれ対応する時間が設定される「スケジューラ（１）」、「スケジューラ（２）」、「スケジューラ（３）」及び「スケジューラ（４）」を項目として有する。さらに、図１５に示す次回処理時間情報１３１は、ジョブシミュレータＰ５のスレッドにそれぞれ対応する時間が設定される「シミュレータ（１）」及び「シミュレータ（２）」を項目として有する。
【００５３】
具体的に、図１５に示す次回処理時間情報１３１において、「マネージャ（１）」には、「１２：１５」が設定され、「マネージャ（２）」には、「１２：１０」が設定されている。すなわち、図１５に示す次回処理時間情報１３１は、ジョブマネージャＰ１のスレッドの次の処理時間が、それぞれ１２時１５分及び１２時１０分であることを示している。
【００５４】
一方、図１５に示す次回処理時間情報１３１において、「シミュレータ（１）」及び「シミュレータ（２）」には、情報が設定されていないことを示す「−」が設定されている。すなわち、図１５に示す次回処理時間情報１３１は、シミュレータＰ５に含まれる各スレッドにおいて待機処理がまだ行われていないことを示している。図１５に含まれる他の情報については説明を省略する。
【００５５】
図１４に戻り、スレッドは、自スレッドに対応するセマフォ情報１３４が示す値（以下、セマフォ値とも呼ぶ）に１を加算する（Ｓ１０４）。そして、スレッドは、所定のイベントを受信するまで、所定の時間が経過するまで、または、加速制御スレッドから通知があるまで待機する（Ｓ１０５のＮＯ）。所定のイベントは、例えば、待機処理を行うスレッドのそれぞれに対応して予め定められたイベントである。また、所定の時間は、例えば、待機処理を行うスレッドのそれぞれに対応して予め定められた時間である。具体的に、所定のイベントは、例えば、事業者端末１１において新たなジョブを投入するためのコマンドが入力されたことに伴って、事業者端末１１が送信するジョブ投入イベントを受信したことであってよい。以下、セマフォ情報１３４の具体例について説明を行う。
【００５６】
[セマフォ情報の具体例］
図１６及び図１９から図２６は、セマフォ情報１３４の具体例である。図１６等に示すセマフォ情報１３４は、図１５で説明した次回処理時間情報１３１と同じ項目を有している。具体的に、図１６に示すセマフォ情報１３４では、全ての項目に「１」が設定されている。
【００５７】
図１４に戻り、所定のイベントの受信等が行われた場合（Ｓ１０５のＹＥＳ）、スレッドは、自スレッドに対応するセマフォ値から１を減算する（Ｓ１０６）。すなわち、スレッドは、自スレッドが待機している間、自スレッドに対応するセマフォ値が１だけ増えるようにセマフォ値の制御を行う。これにより、情報処理装置１は、後述するように、情報処理装置１の全スレッドが待機中であるか否かの判定を行うことが可能になる。
【００５８】
そして、スレッドは、自スレッドに対応する処理回数情報１３３に１を加算する（Ｓ１０７）。その後、スレッドは、待機処理を終了する。以下、処理回数情報１３３の具体例について説明を行う。
【００５９】
[処理回数情報の具体例］
図１７は、処理回数情報１３３の具体例である。図１７に示す処理回数情報１３３は、図１５で説明した次回処理時間情報１３１と同じ項目を有している。具体的に、図１７に示す処理回数情報１３３において、「マネージャ（１）」には、「２」が設定され、「マネージャ（２）」には、「４」が設定されている。すなわち、図１７に示す処理回数情報１３３は、所定のイベントの受信等が行われたことに伴ってジョブマネージャＰ１のスレッドが待機中から処理中に変わった回数が、それぞれ２回と４回であることを示している。図１７に含まれる他の情報については説明を省略する。
【００６０】
これにより、情報処理装置１は、後述するように、予め定められた比較対象時間の前後における処理回数情報１３３を比較することで、比較対象時間において状態が処理中になったスレッドが存在するか否かを判定することが可能になる。
【００６１】
図７に戻り、例えば、Ｓ１４の待機処理において終了イベントを受信していた場合（Ｓ１５のＹＥＳ）、ジョブマネージャＰ１は、通常処理を終了する。一方、Ｓ１４の待機処理において終了イベントを受信していない場合（Ｓ１５のＮＯ）、ジョブマネージャＰ１は、Ｓ１４以降の処理を再度行う。
【００６２】
すなわち、ジョブマネージャＰ１は、例えば、Ｓ１４の待機処理において終了イベントを受信していた場合に限り、通常処理を終了する。そのため、例えば、所定の時間が経過したことに伴って待機処理が終了していた場合、ジョブマネージャＰ１は、ジョブスケジューラ試験処理を終了せずに継続する。
【００６３】
[ジョブスケジューラの通常処理］
次に、情報処理装置１のジョブスケジューラＰ２における通常処理について説明を行う。ジョブスケジューラＰ２は、図８に示すように、ジョブマネージャＰ１によって起動された後、自プロセス内の各スレッドの起動を行う（Ｓ２１）。具体的に、ジョブスケジューラＰ２は、例えば、資源選択スレッド及びジョブ実行依頼スレッド等を起動する。
【００６４】
その後、ジョブスケジューラＰ２は、図７で説明した待機処理の呼び出しを行う（Ｓ２２）。そして、例えば、Ｓ２２の処理で呼び出した待機処理が終了イベントの受信に伴って終了した場合（Ｓ２３のＹＥＳ）、ジョブスケジューラＰ２は、図７で説明した場合と同様に、通常処理を終了する。一方、Ｓ２２の処理で呼び出した待機処理が終了イベントを受信せずに終了した場合（Ｓ２３のＮＯ）、ジョブマネージャＰ１は、Ｓ２２以降の処理を再度行う。
【００６５】
[ジョブ投入スレッドの通常処理］
次に、情報処理装置１のジョブマネージャＰ１に含まれるジョブ投入スレッドにおける通常処理について説明を行う。ジョブ投入スレッドは、図９に示すように、ジョブマネージャＰ１によって起動された後、所定のイベント及び所定の時間を指定し、図７で説明した待機処理の呼び出しを行う（Ｓ３１）。
【００６６】
そして、Ｓ３１の待機処理においてジョブ投入イベントを受信していた場合（Ｓ３２のＹＥＳ）、ジョブ投入スレッドは、通常処理を終了する。一方、Ｓ３１の待機処理においてジョブ投入イベントを受信していない場合（Ｓ３２のＮＯ）、ジョブ投入スレッドは、Ｓ３１以降の処理を再度行う。
【００６７】
[ジョブ実行スレッドの通常処理］
次に、情報処理装置１のジョブシミュレータＰ５に含まれるジョブ実行スレッドにおいて行われる処理、すなわち、資源管理Ｐ３及び実行管理Ｐ４の代わりにジョブシミュレータＰ５が実行する処理（以下、通常処理とも呼ぶ）について説明を行う。ジョブ実行スレッドは、図１０に示すように、ジョブマネージャＰ１によって起動された後、所定のイベント及び所定の時間を指定し、図７で説明した待機処理の呼び出しを行う（Ｓ４１）。
【００６８】
そして、例えば、Ｓ４１の待機処理においてジョブ実行イベントを受信していた場合（Ｓ４２のＹＥＳ）、ジョブ実行スレッドは、通常処理を終了する。一方、Ｓ４１の待機処理においてジョブ実行イベントを受信していない場合（Ｓ４２のＮＯ）、ジョブ実行スレッドは、Ｓ４１以降の処理を再度行う。
【００６９】
[加速制御スレッドのジョブスケジューラ試験処理］
次に、情報処理装置１の加速制御スレッドにおけるジョブスケジューラ試験処理について説明を行う。加速制御スレッドは、情報処理装置１において動作する各プロセスに含まれるスレッドである。そのため、加速制御スレッドのジョブスケジューラ試験処理は、情報処理装置１において動作する各プロセスにおいて行われる。
【００７０】
加速制御スレッドは、図１１に示すように、各プロセスによって起動された後、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値に０を設定する(Ｓ５１)。そして、加速制御スレッドは、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値に１を加算する（Ｓ５２）。その後、加速制御スレッドは、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値が０になるまで待機する（Ｓ５３のＮＯ）。
【００７１】
すなわち、加速制御マネージャＰ６は、後述するように、情報処理装置１において動作する全てのスレッドの状態が待機中になった場合、情報処理装置１において動作する全てのスレッドに対応するセマフォ値を０に更新する。そのため、加速制御スレッドは、Ｓ５３の処理において、加速制御マネージャＰ６が情報処理装置１において動作する全てのスレッドに対応するセマフォ値を０にするまで待機する。
【００７２】
そして、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値が０になった場合（Ｓ５３のＹＥＳ）、加速制御スレッドは、全てのセマフォ値に１を加算する（Ｓ５４）。
【００７３】
なお、加速制御スレッドは、Ｓ５４の処理において全てのセマフォ値に１を設定する場合、全てのセマフォ値に対する設定を同時に行う。これにより、セマフォ値に対する設定が行われている途中にスレッドの状態が変わることを防止することが可能になる。
【００７４】
その後、加速制御スレッドは、情報格納領域に記憶された加速時間情報１３２を、各プロセス内の全スレッドに参照させる（Ｓ５５）。そして、Ｓ５５の処理の後、加速制御スレッドは、Ｓ５２以降の処理を再度行う。
【００７５】
すなわち、加速制御スレッドは、処理の加速を行っても試験対象のスレッドそれぞれの処理に影響を及ぼさないタイミングになった場合（Ｓ５３のＹＥＳ）、自スレッドと同じプロセスに含まれる各スレッドに加速時間情報１３２を参照させる。これにより、加速制御スレッドは、自スレッドと同じプロセスに含まれる各スレッドが処理を行う際に参照する時間を、加速時間情報１３２が示す時間だけ進めることが可能になる。
【００７６】
ここで、情報処理装置１において動作する全スレッドに対応するセマフォ値が０になったタイミングにおいて待機しているスレッドが存在する場合、そのスレッドは、自スレッドの状態が処理中になるまで加速時間情報１３２の参照を行わない。そのため、加速制御スレッドは、情報処理装置１において動作する全てのスレッドに対応するセマフォ値が０になった場合、例えば、自スレッドと同じプロセスに含まれる各スレッドに対して状態を処理中に変えるための通知を送信する。
【００７７】
これにより、加速制御スレッドは、情報処理装置１において動作する全てのスレッドに対応するセマフォ値が０になったタイミングにおいて待機しているスレッドが存在する場合であっても、その存在したスレッドに加速時間情報１３２を参照させることが可能になる。以下、加速時間情報１３２の具体例について説明を行う。
【００７８】
[加速時間情報の具体例］
図１８は、加速時間情報１３２の具体例を説明する図である。図１８に示す加速時間情報１３２は、処理の加速によって現在の時間よりも先に進められた時間の累計が設定される「加速時間」を項目として有する。
【００７９】
具体的に、図１８に示す加速時間情報１３２には、「加速時間」として「２０：３０：００」が設定されている。すなわち、図１８に示す加速時間情報１３２は、処理の加速によって現在の時間よりも先に進められた時間が２０時間３０分であることを示している。
【００８０】
[加速制御マネージャのジョブスケジューラ試験処理］
次に、情報処理装置１の加速制御マネージャＰ６におけるジョブスケジューラ試験処理について説明を行う。加速制御マネージャＰ６は、例えば、事業者が加速制御コマンドを入力したことに伴って情報処理装置１において動作するプロセスである。
【００８１】
加速制御マネージャＰ６は、図１２に示すように、事業者端末１１において加速制御マネージャＰ６を起動するためのコマンド（以下、加速制御コマンドとも呼ぶ）が入力されるまで待機する（Ｓ６１のＮＯ）。そして、加速制御コマンドが入力された場合（Ｓ６１のＹＥＳ）、加速制御マネージャＰ６は、ジョブの投入タイミングの時間を制御するスレッド（以下、加速ジョブ投入スレッドとも呼ぶ）を起動する（Ｓ６２）。以下、加速ジョブ投入スレッドにおけるジョブスケジューラ試験処理について説明を行う。
【００８２】
[加速ジョブ投入スレッドのジョブスケジューラ試験処理］
加速ジョブ投入スレッドは、図１３に示すように、加速制御マネージャＰ６によって起動された後、情報格納領域１３０を参照し、ジョブ投入情報（図示しない）を取得する（Ｓ７１）。ジョブ投入情報は、ジョブスケジューラ試験を行う際に投入されるジョブの識別情報や投入時間等を含む情報である。ジョブ投入情報は、例えば、事業者が予め情報格納領域１３０に記憶しておくものであってよい。
【００８３】
そして、加速ジョブ投入スレッドは、Ｓ７１の処理で取得したジョブ投入情報を参照し、例えば、次にジョブを投入する時間を変数ｓｌｅｅｐｔｉｍｅに設定する（Ｓ７２）。その後、加速ジョブ投入スレッドは、変数ｓｌｅｅｐｔｉｍｅに設定された時間が経過するまで待機する（Ｓ７３のＮＯ）。
【００８４】
その後、変数ｓｌｅｅｐｔｉｍｅに設定された時間が経過した場合（Ｓ７３のＹＥＳ）、加速ジョブ投入スレッドは、次のジョブをジョブマネージャＰ１に対して投入する（Ｓ７４）。そして、加速ジョブ投入スレッドは、ジョブ投入情報に情報が含まれる全てのジョブの投入が完了した場合（Ｓ７５のＹＥＳ）、加速ジョブ投入スレッドにおけるジョブスケジューラ試験処理を終了する。一方、ジョブ投入情報に情報が含まれる全てのジョブの投入が完了していない場合（Ｓ７５のＮＯ）、Ｓ７２以降の処理を再度行う。
【００８５】
図１２に戻り、Ｓ６２の処理の後、加速制御マネージャＰ６は、次回処理時間情報１３１を参照し、各スレッドに対応する時間のうち、最も早い時間を算出する（Ｓ６３）。そして、加速制御マネージャＰ６は、Ｓ６３で算出した時間を、情報格納領域１３０に記憶された加速時間情報１３２が示す時間に加算する（Ｓ６４）。
【００８６】
図１２に戻り、加速制御マネージャＰ６は、全てのセマフォ値が２である場合（Ｓ６５のＹＥＳ）、加速制御マネージャＰ６は、全てのセマフォ値に０を設定する（Ｓ６６）。
【００８７】
この場合、加速制御マネージャＰ６は、例えば、間隔を空けて処理回数情報１３３を複数回参照し、処理回数情報１３３に含まれる内容が変化しなかった場合に、全てのセマフォ値に０を設定するものであってよい。すなわち、加速制御マネージャＰ６は、全てのセマフォ値が２である状態が所定時間続いた場合に、全てのセマフォ値に０を設定するものであってよい。これにより、加速制御マネージャＰ６は、情報処理装置１において動作する全てのスレッドの状態が安定的に待機中である場合に限り、セマフォ値の変更を行うことが可能になる。
【００８８】
一方、全てのセマフォ値が２でない場合（Ｓ６５のＮＯ）、加速制御マネージャＰ６は、Ｓ６３以降の処理を再度行う。
【００８９】
また、加速制御マネージャＰ６は、ジョブスケジューラ試験処理を終了する旨の入力があった場合（Ｓ６７のＹＥＳ）、ジョブスケジューラ試験処理を終了し、ジョブスケジューラ試験処理を終了する旨の入力がない場合（Ｓ６７のＮＯ）、Ｓ６３以降の処理を再度行う。
【００９０】
すなわち、ジョブスケジューラ試験処理が開始される場合、各セマフォ値には、セマフォ値の初期化処理によって１が設定される（Ｓ５１、Ｓ５２）。そして、各セマフォ値は、対応するスレッドが待機中になったことに応じて１が加算される（Ｓ１０４）。そのため、加速制御マネージャＰ６は、情報処理装置１において動作する全てのセマフォ値が２になった場合に、各スレッドが参照する時間を変更するタイミングであると判定することが可能になる。
【００９１】
また、各スレッドが参照する時間の変更が既に行われている場合（Ｓ５３のＹＥＳ）、各セマフォ値には、各スレッドが参照する時間が変更する処理が行われたことに伴って２が設定される（Ｓ５２、Ｓ５４）。さらに、情報処理装置１において動作する全てのスレッドが待機中である場合、各セマフォ値は２から変化しない。そのため、加速制御マネージャＰ６は、この場合についても、情報処理装置１において動作する全てのセマフォ値が２になった場合に、各スレッドが参照する時間を変更すべきタイミングであると判定することが可能になる。
【００９２】
したがって、加速制御マネージャＰ６は、Ｓ６５の処理において、全てのセマフォ値が２である場合、各スレッドが参照する時間を変更すべきタイミングであると判定する。
【００９３】
なお、加速制御マネージャＰ６は、Ｓ６６の処理において全てのセマフォ値に０を設定する場合、全てのセマフォ値に対する設定を同時に行う。これにより、セマフォ値に対する設定が行われている途中にスレッドの状態が変わることを防止することが可能になる。
【００９４】
[ジョブスケジューラ試験処理の具体例］
次に、ジョブスケジューラ試験処理の具体例について説明を行う。各プロセスに含まれる加速制御スレッドのそれぞれは、各プロセスによって起動された後、自スレッドと同じプロセスに含まれる全てのスレッドに対応するセマフォ値に１を設定する（Ｓ５１、Ｓ５２）。すなわち、各加速制御スレッドは、図１６で説明したように、情報処理装置１において動作する全てのスレッドに対応するセマフォ値として１を設定する。
【００９５】
その後、情報処理装置１において動作する各スレッドは、自スレッドの状態が待機中になったことに応じて、自スレッドに対応するセマフォ値に１を加算する。また、情報処理装置１において動作する各スレッドは、自スレッドの状態が待機中から処理中になったことに応じて、自スレッドに対応するセマフォ値から１を減算する。具体的に、図１６に示す状態の後、ジョブマネージャＰ１及びジョブシミュレータＰ５に含まれる全てのスレッドが待機中になった場合、加速制御スレッドは、図１９に示すように、「マネージャ（１）」、「マネージャ（２）」、「シミュレータ（１）」及び「シミュレータ（２）」に対応するセマフォ値に２を設定する。
【００９６】
そして、図２０に示すように、全てのスレッドに対応するセマフォ値に２が設定された場合、加速制御マネージャＰ６は、図２１に示すように、全てのスレッドに対応するセマフォ値に０を設定する（Ｓ６５のＹＥＳ、Ｓ６６）。
【００９７】
続いて、各加速制御スレッドは、自スレッドと同じプロセスに含まれる各スレッドに対応するセマフォ値に１を加算する（Ｓ５４）。具体的に、ジョブマネージャＰ１に含まれる加速制御スレッドは、Ｓ５４の処理において、図２２に示すように、「マネージャ（１）」及び「マネージャ（２）」に対応するセマフォ値に１を設定する。
【００９８】
そして、図２２に示す状態の後、「マネージャ（１）」に対応するスレッドの状態が待機中から処理中に変わった場合、加速制御スレッドは、図２３に示すように、「マネージャ（１）」に対応するセマフォ値に０を設定する。
【００９９】
さらに、図２３に示す状態の後、「マネージャ（１）」に対応するスレッドの状態が処理中から待機中に変わった場合、ジョブマネージャＰ１に含まれる加速制御スレッドは、図２４に示すように、「マネージャ（１）」に対応するセマフォ値に１を設定する。また、図２３に示す状態の後、「マネージャ（２）」に対応するスレッドの状態が待機中から処理中に変わった場合、ジョブマネージャＰ１に含まれる加速制御スレッドは、図２４に示すように、「マネージャ（２）」に対応するセマフォ値に０を設定する。
【０１００】
その後、ジョブマネージャＰ１に含まれる加速制御スレッドが、自スレッドと同じプロセスに含まれる各スレッドに変更された時間を参照させた場合、加速制御スレッドは、図２５に示すように、「マネージャ（１）」及び「マネージャ（２）」に対応するセマフォ値のそれぞれに１を加算する（Ｓ５５、Ｓ５２）。そして、図２５に示す状態の後、「マネージャ（２）」に対応するスレッドの状態が処理中から待機中に変わった場合、ジョブマネージャＰ１に含まれる加速制御スレッドは、図２６に示すように、「マネージャ（２）」に対応するセマフォ値に２を設定する。
【０１０１】
このように、本実施の形態における情報処理装置１は、試験対象のジョブスケジューラＰ２のスレッドの状態が全て待機中であるか否かを判定する。そして、情報処理装置１は、ジョブスケジューラＰ２のスレッドの状態が全て待機中である場合、各スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する。
【０１０２】
これにより、情報処理装置１は、ジョブシミュレータを用いたジョブスケジューラの試験を効率的に行うことが可能になる。
【０１０３】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１０４】
（付記１）
試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、
前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、
処理をコンピュータに実行させることを特徴とするジョブスケジューラ試験プログラム。
【０１０５】
（付記２）
付記１において、
前記スレッドは、自スレッドの状態が待機中になった場合、自スレッドの状態が待機中であることを示す情報を記憶部に記憶し、自スレッドの状態が処理中になった場合、自スレッドの状態が処理中であることを示す情報を前記記憶部に記憶し、
前記スレッドの状態を判定する処理では、前記記憶部を参照し、前記スレッドの状態が全て待機中であるか否かの判定を行う、
ことを特徴とするジョブスケジューラ試験プログラム。
【０１０６】
（付記３）
付記１において、
待機中である前記スレッドは、自スレッドの状態が次に処理中になる時間を記憶部し、
前記システムの時間を変更する処理では、前記記憶部を参照し、前記システムの時間を前記次に処理中になる時間のうちの最も早い時間に変更する、
ことを特徴とするジョブスケジューラ試験プログラム。
【０１０７】
（付記４）
付記１において、
前記システムの時間を変更する処理では、前記スレッドの状態が全て待機中である状態が所定時間続いたと判定した場合に、前記システムの時間の変更を行う、
ことを特徴とするジョブスケジューラ試験プログラム。
【０１０８】
（付記５）
付記１において、さらに、
前記システムの時間を変更する処理の後、変更された前記システムの時間を前記スレッドに参照させ、変更された前記システムの時間に応じた処理を実行させる、
処理をコンピュータに実行させることを特徴とするジョブスケジューラ試験プログラム。
【０１０９】
（付記６）
付記５において、
前記システムの時間を変更する処理では、前記システムの時間を変更する処理が過去に行われている場合、過去に行われた前記システムの時間を変更する処理の後に行われる前記システムの時間を参照させる処理が行われた後に、前記システムの時間の変更を行う、
ことを特徴とするジョブスケジューラ試験プログラム。
【０１１０】
（付記７）
試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、
前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する、
ことを特徴とするジョブスケジューラ試験方法。
【０１１１】
（付記８）
付記７において、
前記スレッドは、自スレッドの状態が待機中になった場合、自スレッドの状態が待機中であることを示す情報を記憶部に記憶し、自スレッドの状態が処理中になった場合、自スレッドの状態が処理中であることを示す情報を前記記憶部に記憶し、
前記スレッドの状態を判定する工程では、前記記憶部を参照し、前記スレッドの状態が全て待機中であるか否かの判定を行う、
ことを特徴とするジョブスケジューラ試験方法。
【０１１２】
（付記９）
付記７において、
待機中である前記スレッドは、自スレッドの状態が次に処理中になる時間を記憶部し、
前記システムの時間を変更する工程では、前記記憶部を参照し、前記システムの時間を前記次に処理中になる時間のうちの最も早い時間に変更する、
ことを特徴とするジョブスケジューラ試験方法。
【０１１３】
（付記１０）
試験対象のジョブスケジューラのスレッドの状態が全て待機中であるか否かを判定し、前記スレッドの状態が全て待機中である場合、前記スレッドが処理を実行する際に参照するシステムの時間を先の時間に変更する時間変更部を有する、
ことを特徴とする並列処理装置。
【０１１４】
（付記１１）
付記１０において、
前記スレッドは、自スレッドの状態が待機中になった場合、自スレッドの状態が待機中であることを示す情報を記憶部に記憶し、自スレッドの状態が処理中になった場合、自スレッドの状態が処理中であることを示す情報を前記記憶部に記憶し、
前記時間変更部は、前記記憶部を参照し、前記スレッドの状態が全て待機中であるか否かの判定を行う、
ことを特徴とする並列処理装置。
【０１１５】
（付記１２）
付記１０において、
待機中である前記スレッドは、自スレッドの状態が次に処理中になる時間を記憶部し、
前記時間変更部は、前記記憶部を参照し、前記システムの時間を前記次に処理中になる時間のうちの最も早い時間に変更する、
ことを特徴とする並列処理装置。
【符号の説明】
【０１１６】
１：情報処理装置              １ａ：記憶装置
１１：事業者端末              ＮＷ：ネットワーク
【図１】
2018005768.tif 000003
【図２】
2018005768.tif 000004
【図３】
2018005768.tif 000005
【図４】
2018005768.tif 000006
【図５】
2018005768.tif 000007
【図６】
2018005768.tif 000008
【図７】
2018005768.tif 000009
【図８】
2018005768.tif 000010
【図９】
2018005768.tif 000011
【図１０】
2018005768.tif 000012
【図１１】
2018005768.tif 000013
【図１２】
2018005768.tif 000014
【図１３】
2018005768.tif 000015
【図１４】
2018005768.tif 000016
【図１５】
2018005768.tif 000017
【図１６】
2018005768.tif 000018
【図１７】
2018005768.tif 000019
【図１８】
2018005768.tif 000020
【図１９】
2018005768.tif 000021
【図２０】
2018005768.tif 000022
【図２１】
2018005768.tif 000023
【図２２】
2018005768.tif 000024
【図２３】
2018005768.tif 000025
【図２４】
2018005768.tif 000026
【図２５】
2018005768.tif 000027
【図２６】
2018005768.tif 000028