(57)【特許請求の範囲】
【請求項１】
コンピュータが、第１の情報処理装置が複数の情報処理を実行したときに、前記それぞれの情報処理において使用された資源と前記資源の使用時間とをタスク情報として前記情報処理において使用される資源の切り替えごとに使用された資源の切り替え順に記録したそれぞれの実行情報を取得するステップと、
前記第１の情報処理装置の資源の能力値情報と第２の情報処理装置の資源の能力値情報とにしたがって、前記それぞれの実行情報中の使用時間を前記第２の情報処理装置における使用時間に換算するステップと、
前記実行された複数の情報処理について、第１の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第１の情報処理装置の資源に対応する前記第２の情報処理装置の資源を前記第１の情報処理に割り当てるとともに、第２の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第１の情報処理に割り当てられていない空き時間に前記第２の情報処理装置の資源を前記第２の情報処理に割り当て、前記割り当てた資源の仮想走行時間を累積する資源割り当て処理を前記複数の情報処理に対応する実行情報にしたがって実行する実行ステップと、
前記複数の情報処理に対応する実行情報のそれぞれに含まれる末尾のタスク情報まで前記割り当てられた資源の前記仮想走行時間を累積した累積値によって、前記複数の情報処理を前記第２の情報処理装置で実行したときの実行時間を推定するステップと、を実行する情報処理方法。
【請求項２】
前記実行ステップは、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第２の情報処理装置の資源を割り当てたときに、前記仮想走行時間の累積値とともに、前記タスク情報にしたがった資源の割り当て順を資源ごとに記録するステップを有する請求項１に記載の情報処理方法。
【請求項３】
前記実行ステップは、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第２の情報処理装置の資源を前記複数の情報処理に割り当てたときに、情報処理が未割り当ての資源に、前記それぞれのタスク情報にしたがって割り当てた資源の使用終了時刻が最も早い資源の使用終了時刻まで未使用時間を割り当てるとともに、それぞれの資源ごとの未使用時間を累積するステップを有し、
前記コンピュータは、前記第２の情報処理装置の資源ごとに、前記仮想走行時間の累積値と前記未使用時間の累積値とから、前記資源ごとの使用率を算出するステップと、をさらに実行する請求項２に記載の情報処理方法。
【請求項４】
コンピュータに、第１の情報処理装置が複数の情報処理を実行したときに、前記それぞれの情報処理において使用された資源と前記資源の使用時間とをタスク情報として前記情報処理において使用される資源の切り替えごとに使用された資源の切り替え順に記録したそれぞれの実行情報を取得するステップと、
前記第１の情報処理装置の資源の能力値情報と第２の情報処理装置の資源の能力値情報とにしたがって、前記それぞれの実行情報中の使用時間を前記第２の情報処理装置における使用時間に換算するステップと、
前記実行された複数の情報処理について、第１の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第１の情報処理装置の資源に対応する前記第２の情報処理装置の資源を前記第１の情報処理に割り当てるとともに、第２の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第１の情報処理に割り当てられていない空き時間に前記第２の情報処理装置の資源を前記第２の情報処理に割り当て、前記割り当てた資源の仮想走行時間を累積する資源割り当て処理を前記複数の情報処理に対応する実行情報にしたがって実行する実行ステップと、
前記複数の情報処理に対応する実行情報のそれぞれに含まれる末尾のタスク情報まで前記割り当てられた資源の前記仮想走行時間を累積した累積値によって、前記複数の情報処理を前記第２の情報処理装置で実行したときの実行時間を推定するステップと、を実行させるためのプログラム。
【請求項５】
前記実行ステップは、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第２の情報処理装置の資源を割り当てたときに、前記仮想走行時間の累積値とともに、前記タスク情報にしたがった資源の割り当て順を資源ごとに記録するステップを有する請求項４に記載のプログラム。
【請求項６】
前記実行ステップは、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第２の情報処理装置の資源を前記複数の情報処理に割り当てたときに、情報処理が未割り当ての資源に、前記それぞれのタスク情報にしたがって割り当てた資源の使用終了時刻が最も早い資源の使用終了時刻まで未使用時間を割り当てるとともに、それぞれの資源ごとの未使用時間を累積するステップを有し、
前記コンピュータに、前記第２の情報処理装置の資源ごとに、前記仮想走行時間の累積値と前記未使用時間の累積値とから、前記資源ごとの使用率を算出するステップをさらに実行させるための請求項５に記載のプログラム。
【請求項７】
第１の情報処理装置が複数の情報処理を実行したときに、前記それぞれの情報処理において使用された資源と前記資源の使用時間とをタスク情報として前記情報処理において使用される資源の切り替えごとに使用された資源の切り替え順に記録したそれぞれの実行情報を取得する手段と、
前記第１の情報処理装置の資源の能力値情報と第２の情報処理装置の資源の能力値情報とにしたがって、前記それぞれの実行情報中の使用時間を前記第２の情報処理装置における使用時間に換算する手段と、
前記実行された複数の情報処理について、第１の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第１の情報処理装置の資源に対応する前記第２の情報処理装置の資源を前記第１の情報処理に割り当てるとともに、第２の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第１の情報処理に割り当てられていない空き時間に前記第２の情報処理装置の資源を前記第２の情報処理に割り当て、前記割り当てた資源の仮想走行時間を累積する資源割り当て処理を前記複数の情報処理に対応する実行情報にしたがって実行する実行手段と、
前記複数の情報処理に対応する実行情報のそれぞれに含まれる末尾のタスク情報まで前記割り当てられた資源の前記仮想走行時間を累積した累積値によって、前記複数の情報処理を前記第２の情報処理装置で実行したときの実行時間を推定する手段と、を備える情報処理装置。
【請求項８】
前記実行手段は、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第２の情報処理装置の資源を割り当てたときに、前記仮想走行時間の累積値とともに、前記タスク情報にしたがった資源の割り当て順を資源ごとに記録する手段を含む請求項７に記載の情報処理装置。
【請求項９】
前記実行手段は、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第２の情報処理装置の資源を前記複数の情報処理に割り当てたときに、情報処理が未割り当ての資源に、前記それぞれのタスク情報にしたがって割り当てた資源の使用終了時刻が最も早い資源の使用終了時刻まで未使用時間を割り当てるとともに、それぞれの資源ごとの未使用時間を累積する手段を有し、
前記情報処理装置は、前記第２の情報処理装置の資源ごとに、前記仮想走行時間の累積値と前記未使用時間の累積値とから、前記資源ごとの使用率を算出する手段と、をさらに備える請求項８に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置の性能予測に関するものである。
【背景技術】
【０００２】
新しいコンピュータを導入する場合、性能の異なる複数機種から導入機種を選択することになる。導入機種の選択基準の１つに、所望の処理性能を達成できるか否か、あるいは所望の業務を所望の処理時間で処理できるか否かの予測に基づく選択基準がある。【０００３】
上記のような処理性能、あるいは処理時間を予測する方法として、従来は、例えば、現在稼働中のコンピュータで実測した処理性能情報から、人がメーカ公表のＣＰＵ能力値やＤＩＳＫ能力値を基にして、上記処理性能、例えば、目的の処理を実行するときの処理時間の予測を行う場合がある。【０００４】
図１は、コンピュータの処理性能予測を行う場合の手順を例示する図である。図１の例では、現在稼働中のコンピュータが業務プログラムＡ、業務プログラムＢ等、ユーザ所望の業務プログラムを実行する。業務プログラムＡ等の実行により、コンピュータの資源であるCentral processing Unit（ＣＰＵ）あるいは外部記憶装置（例えば、ＤＩＳＫ）等がオペレーティングシステム（ＯＳ）の管理下で順次使用される。ＯＳは、業務プログラムＡ等の実行に伴い、処理性能情報を採取することができる。処理性能情報は、例えば、業務プログラムＡ実行時のＣＰＵ時間、およびＤＩＳＫ時間を含む。ＤＩＳＫ時間は、入出力時間（Ｉ／Ｏ時間）とも呼ばれる。図１の例では、業務プログラムＡとともに実行された業務プログラムＢ実行時のＣＰＵ時間、およびＤＩＳＫ時間も採取されている。【０００５】
一方、通常、コンピュータのメーカからは、現在稼働中のコンピュータ、および導入候補の機種の両方について、相対能力値が公表されている。したがって、上記採取された処理性能情報を公表されたコンピュータの相対能力値で換算して、それぞれの導入候補の機種における処理性能情報を見積もることも行われる。【０００６】
一方、システム構成の変化によって生じる処理性能の変化を予測する処理性能予測として、以下の技術も知られている。すなわち、コンピュータのジョブにおいて、ジョブが各資源を使用した時間とその回数を基に、１回当たりの平均の使用時間を求める。そして、ハードウェアの処理能力情報格納部を参照して、各資源の使用時間を変更する。そして、シミュレーションを行って各資源の使用時間と各資源の待ち時間を求める。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平８−１３７７２５号公報
【特許文献２】特開平７−２９５８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記従来の技術におけるシミュレーションは、各資源を使用した時間とその回数とを基に求めた１回当たりの各使用時間の平均値を基に行われる。したがって、そのような平均値に基づくシミュレーションでは、複数の処理の実行順は、実際のコンピュータ上の実行順とは異なるものとなり、処理性能の予測精度が十分でないおそれがある。【０００９】
そこで、本発明の実施形態の課題の一側面は、一のコンピュータでの処理性能の測定情報を基に、他のコンピュータでの処理性能を予測するときの予測精度を向上させることにある。
【課題を解決するための手段】
【００１０】
本実施形態の一側面は、コンピュータが実行する情報処理方法として例示できる。この方法では、コンピュータが、第１の情報処理装置が複数の情報処理を実行したときに、それぞれの情報処理において使用された資源と資源の使用時間とをタスク情報として情報処理において使用される資源の切り替えごとに使用された資源の切り替え順に記録したそれぞれの実行情報を取得するステップと、第１の情報処理装置の資源の能力値情報と第２の情報処理装置の資源の能力値情報とにしたがって、それぞれの実行情報中の使用時間を第２の情報処理装置における使用時間に換算するステップと、実行された複数の情報処理について、第１の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に換算された使用時間の間、第１の情報処理装置の資源に対応する第２の情報処理装置の資源を第１の情報処理に割り当てるとともに、第２の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に換算された使用時間の間、第１の情報処理に割り当てられていない空き時間に第２の情報処理装置の資源を第２の情報処理に割り当て、割り当てた資源の使用時間として換算された使用時間を累積する資源割り当て処理を複数の情報処理に対応する実行情報にしたがって実行する実行ステップと、複数の情報処理に対応する実行情報のそれぞれに含まれる末尾のタスク情報まで割り当てられた資源の使用時間を累積した累積値によって、複数の情報処理を第２の情報処理装置で実行したときの実行時間を推定するステップと、を実行する。
【発明の効果】
【００１１】
本情報処理装置によれば、一のコンピュータでの処理性能の測定情報を基に、他のコンピュータでの処理性能を予測するときの予測精度を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、コンピュータの処理性能予測を行う場合の手順を例示する図である。
【図２】図２は、実施例１に係る情報処理装置の機能を例示する図である。
【図３】図３は、情報処理装置のハードウェア構成を例示する図である。
【図４】図４は、性能測定部と業務プログラムとの関係を例示する図である。
【図５】図５は、性能測定部３０２の処理を例示する図である。
【図６】図６は、性能測定部３０２が記録する性能情報のフォーマットを例示する図である。
【図７】図７は、業務性能予測機構の構造を例示する図である。
【図８】図８は、業務タスクの生成から仮想走行までの処理を例示する図である。
【図９】図９は、情報処理装置が実行する業務タスクキューの生成から仮想走行までの処理フローを例示する図である。
【図１０】図１０は、管理情報を例示する図である。
【図１１】図１１は、ＮＥＸＴタスクアドレスでリンクされ、かつ、処理時間が換算されたタスクの管理情報の構造を例示する図である。
【図１２】図１２は、仮想走行用ＮＥＸＴタスクアドレスで接続された装置タスクキューの管理情報を例示する図である。
【図１３】図１３は、未処理タスクの管理情報を例示する図である。
【図１４】図１４は、コンピュータで測定した性能情報を時間順に例示する図である。
【図１５】図１５は、図１４の性能情報を基に作成された業務タスクキューを例示する図である。
【図１６】図１６は、処理時間の換算前後の業務タスクキューをそれぞれ例示する図である。
【図１７】図１７は、装置へのタスクの割り当て処理を例示する図である。
【図１８】図１８は、装置へのタスクの割り当て処理を例示する図である。
【図１９】図１９は、業務処理の選択、タスクの読み出し、装置への割り当て処理を繰り返した結果を例示する図である。
【図２０】図２０は、仮想走行時の各タスクの装置への割り当て状態を未処理タスクとともに時間軸上に例示する図である。
【図２１】図２１は、業務タスクキューのすべてのタスクが終了したときの、各業務処理の処理時間の累積値の変化を例示する図である。
【図２２】図２２は、情報処理装置が業務タスクキューを各装置に割り当て、業務タスクキューを仮想走行する処理を例示する図である。
【図２３】図２３は、情報処理装置が業務タスクキューを各装置に割り当て、業務タスクキューを仮想走行する処理を例示する図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して開示の技術の一側面を実施するための形態（以下、実施形態という）を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【実施例１】
【００１４】
以下、図２から図１３の図面を参照して、実施例１に係る情報処理装置１０について説明する。
＜情報処理装置の構成＞
図２に、実施例１に係る情報処理装置１０の機能を例示する。図２のように、情報処理装置１０は、一のコンピュータで測定された性能情報から、性能情報予測対象の他のコンピュータの処理性能を予測する。ここで、一のコンピュータは、例えば、現在稼働中のコンピュータであり、他のコンピュータは、導入候補となっているコンピュータである。【００１５】
図２の例では、情報処理装置１０は、まず、現在稼働中のコンピュータ３０１が業務プログラムによる業務処理を実行中に測定した性能情報と、導入候補となっているコンピュータ（Ａ、Ｂ、Ｃ等）の公開されている相対能力値とを取得する。以下、コンピュータが業務プログラムを実行することによって実現する処理を単に業務処理という。【００１６】
現在稼働中のコンピュータ３０１は、業務プログラムを実行したときの性能情報を測定する性能測定部３０２を有する。性能測定部３０２は、例えば、業務プログラムを実行したときのＣＰＵ時間、ＤＩＳＫ時間等の処理時間を測定し、測定した処理時間を含む性能情報を出力する。コンピュータ３０１のＣＰＵは、例えば、主記憶装置に実行可能に展開されたコンピュータプログラムを実行し、性能測定部３０２として機能する。【００１７】
また、情報処理装置１０は、業務性能予測機構２０を有する。情報処理装置１０のＣＰＵは、例えば、主記憶装置に実行可能に展開されたコンピュータプログラムを実行し、業務性能予測機構２０として機能する。なお、業務性能予測機構２０として機能する情報処理装置１０は、コンピュータ３０１であってもよいし、他コンピュータであってもよい。【００１８】
業務性能予測機構２０は、現在稼働中のコンピュータ３０１で測定した性能情報と、公開されているコンピュータ３０１の相対能力値と、公開されている他のコンピュータＡ、Ｂ、Ｃ等の相対能力値とを基に他のコンピュータの処理性能、例えば、所定の業務処理を実行するときの処理時間を自動計算する。【００１９】
ここで、各コンピュータの相対能力値の入力方法について限定はない。例えば、情報処理装置１０は、インターネット上の公開ウェブサイトから、それぞれのコンピュータの相対能力値を取得してもよい。また、情報処理装置１０を操作するオペレータが公開情報を基にした相対能力値を情報処理装置１０に入力してもよい。また、現在稼働中のコンピュータ３０１の相対能力値はコンピュータ３０１自体に組み込まれた情報でもよい。【００２０】
本実施形態では、相対能力値とは、過去のある時点の装置の能力値を１．０として、これ以降に提供する別の装置の能力値を相対比較した値をいう。相対能力値が２．０の場合、相対能力値が１．０のコンピュータに対して処理性能が２倍向上するということを意味する。例えば、ＣＰＵの場合、SPECint2000#rateに基づいた相対能力値や、メーカ独自の評価結果の相対能力値が公開されている。したがって、本実施形態では、相対能力値と表現するが、相対能力値に代えて、所定のルールで測定される性能値、ＣＰＵにおける単位時間当たりの整数演算回数、浮動小数点演算回数、ハードディスク等へのデータ転送速度等を用いてもよい。【００２１】
業務性能予測機構２０は、コンピュータ３０１で業務処理実行時に測定した性能情報から、各業務処理中のＣＰＵ処理とＤＩＳＫ処理を細分化して、タスクという管理単位の情報を生成する。言い換えると、コンピュータ３０１が業務処理のための業務プログラムを実行するときに、ＣＰＵ処理やＤＩＳＫ処理、その他ＩＯ処理などの処理が処理単位に分割されて、コンピュータ３０１上で管理される。コンピュータ３０１は、分割された処理単位ごとに、ＣＰＵ、あるいはＤＩＳＫを使用し、業務プログラムを実行する。この分割されたコンピュータ３０１上の処理単位を実施例１ではタスクと呼ぶ。業務性能予測機構２０は、分割されたタスクを順次接続して、業務タスクキューと呼ばれる一連の処理を形成する。したがって、コンピュータ３０１上での１つの業務プログラムの実行状況は、業務タスクキューに、実行順につながった複数のタスクによって表される。【００２２】
次に、業務性能予測機構２０は、業務タスクキューに実行順につながったタスクをＣＰＵとＤＩＳＫの能力や数の異なる他のコンピュータＡ等に割り当て、仮想走行させる。ここで、仮想走行とは、業務タスクキューにつながったそれぞれのタスクで指定される資源と使用時間とを業務タスクキューにつながった順に、他のコンピュータＡ等が有する資源に割り当て直すことをいう。この仮想走行では、元のコンピュータ３０１と、他のコンピュータＡ等の資源の性能の相違から、タスクのつながり方が変化することがある。例えば、ＣＰＵ処理のタスクと、ＤＩＳＫ処理のタスクとの間で、空き時間が発生、消滅、あるいは空き時間の長さが変動することがある。なお、実施例１の仮想走行では、同一の業務タスクキューに接続される複数のタスクが並列実行されないものと仮定する。例えば、１つの業務処理に含まれるＣＰＵ処理のタスクとＤＩＳＫ処理のタスクとは逐次実行されるものとして説明する。【００２３】
業務性能予測機構２０は、仮想走行させながら、タスク単位に現在利用しているコンピュータ３０１の業務処理の処理時間、現在利用しているコンピュータ３０１の相対能力値、および他のコンピュータＡ等の相対能力値から、仮想走行での処理時間を計算し、かつ累積する。このような仮想走行は、他のコンピュータＡ等の実際のタスクの切り替え、あるいは資源の管理を反映した処理を模擬したものとなるため、業務性能予測機構２０は、他のコンピュータＡ等の業務処理の処理時間を精度のよく算出できる。【００２４】
また、業務性能予測機構２０は、複数の処理を実行するためのそれぞれの業務プログラムに対応する複数の業務タスクキューにつながったタスクを仮想走行させるときに、各業務プログラムに指定される実行優先度を基にして、各業務プログラムのタスクに優先度を付与し、仮想走行させるようにしてもよい。【００２５】
さらに、業務性能予測機構２０は、仮想走行させるときに、各資源において一のタスクの終了後、次のタスク開始まで、タスクを実行できない時間を示すための未処理タスクを作成する。業務性能予測機構２０は、各資源において一のタスクの実行と、次のタスクの実行との間で、未処理タスクを埋め込むことで、それぞれの資源の使用時間と、未使用時間とに関する情報を収集し、実行状況、例えば、資源の使用率（占有率ともいう）等を判断する。【００２６】
なお、本実施形態では、入出力装置として、ＤＩＳＫ装置を用いるが、業務性能予測機構２０が解析する入出力装置は、ＤＩＳＫ装置に限定される訳ではなく、業務プログラムの実行に係わる他の入出力装置、例えば、ネットワークにアクセスする通信装置、可搬型の記憶装置等を使用する場合も、本実施形態と同様な方式で解析可能である。【００２７】
図３に、情報処理装置１０のハードウェア構成を例示する。情報処理装置１０は、Central Processing Unit（ＣＰＵ）１１、主記憶装置１２、インターフェース１８を通じて接続される外部機器を有し、プログラムにより情報処理を実行する。外部機器としては、外部記憶装置１３および通信インターフェース１４を例示できる。ＣＰＵ１１は、主記憶装置１２に実行可能に展開されたコンピュータプログラムを実行し、情報処理装置１０の機能を提供する。主記憶装置１２は、ＣＰＵ１１が実行するコンピュータプログラム、ＣＰＵ１１が処理するデータ等を記憶する。主記憶装置１２は、Dynamic Random Access Memory（ＤＲＡＭ）、Static Random Access Memory（ＳＲＡＭ）、Read Only Memory（ＲＯＭ）等である。さらに、外部記憶装置１３は、例えば、主記憶装置１２を補助する記憶領域として使用され、ＣＰＵ１１が実行するコンピュータプログラム、ＣＰＵ１１が処理するデータ等を記憶する。外部記憶装置１３は、ハードディスクドライブ、Solid State Disk（ＳＳＤ）等である。【００２８】
また、情報処理装置１０は、入力装置１５、表示装置１６等によるユーザインターフェースを有するようにしてもよい。入力装置１５は、例えば、キーボード、ポインティングデバイス等である。また、表示装置１６は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。さらに、情報処理装置１０は、着脱可能記憶媒体駆動装置１７を設けてもよい。着脱可能記憶媒体は、例えば、ブルーレイディスク、Digital Versatile Disk（ＤＶＤ）、Compact Disc（ＣＤ）、フラッシュメモリカード等である。なお、図３の例では、単一のインターフェース１８が例示されているが、インターフェース１８として複数種類のものが複数設けられてもよい。
＜性能測定部＞
図４に、性能測定部３０２と業務プログラムとの関係を例示する。図４は、性能測定部３０２によるＣＰＵ時間の測定例である。ＤＩＳＫ装置が処理を行うときのＤＩＳＫ時間、入出力装置が処理を行うときの入出力時間等についても、図４と同様の構造、および手順で測定できる。図４のように、ＣＰＵ時間が測定される稼働中のコンピュータ３０１上では、業務プログラム、オペレーティングシステム（ＯＳ）、および性能測定部３０２としてＣＰＵを機能させる性能測定プログラム３０２Ａが実行される。以下、ＣＰＵ１１が性能測定プログラム３０２Ａを実行することによって提供する処理を、単に、性能測定部３０２が実行する処理として説明する。【００２９】
業務プログラムは、ＣＰＵ処理の処理単位、例えば、割り込みが発行される時間間隔でＣＰＵを割り当てられ、実行される。割り込みは、例えば、業務プログラム実行中に外部記憶装置、通信装置、その他の周辺装置への入出力命令（割り込み命令）が実行される場合に発行される。また、割り込みは、タイマがタイムアウトしたときにも発行される。さらに、割り込みは、ＷＡＩＴ等、他の装置と同期を取るための待ち合わせ命令実行時に、待ち合わせ対象のイベントが発生したときにも発行される。【００３０】
割り込みが発行されると、レジスタの内容等、コンテキストがメモリに待避され、業務プログラムのＣＰＵ処理は一旦中断される。そして、業務プログラムは、次のタスク実行待ちとなる。【００３１】
ＯＳは、業務プログラムの走行を制御するディパッチ処理部を有する。以下、ＯＳのディパッチ処理部を単にＯＳと呼ぶ。ここで、制御とは、例えば、実行中の業務プログラムＡのタスクが中断すると、実行待ちの業務プログラムＢのタスクに、ＣＰＵを割り当てて、ＣＰＵを起動する処理をいう。このとき、ＯＳは、まず、性能測定部３０２、すなわち、性能測定プログラム３０２Ａを呼び出す。図４では、”ＣＡＬＬ  性能測定部”と示されている。そして、ＯＳは、業務プログラムＢの主記憶装置上の実行アドレスをＣＰＵ（プログラムカウンタ）に設定し、タスクを起動する。図４では、”ＬＯＡＤ  実行アドレス”と示されている。【００３２】
性能測定部３０２は、起動されると、性能測定処理を実行し、性能情報を測定する。性能測定部３０２は、測定した性能情報を主記憶装置（メモリ）、ＤＩＳＫファイル等に記録する。【００３３】
図５に、性能測定部３０２の処理を例示する。この処理では、性能測定部３０２は、まず、現在の時間を求める（Ｓ１０１）。ここで、現在の時間は、所定の基準時からの経過時間であり、現在の時刻と呼ぶこともできる。現在の時間は、例えば、ＯＳから取得できる。そして、性能測定部３０２は、処理単位の時間＝現在の時間−前回の時間によって求める（Ｓ１０２）。なお、前回の時間は、例えば、前回の時間を記憶する主記憶装置の領域（プロセス制御領域と呼ぶ）に保存されている。プロセス制御領域は、性能測定部３０２の実行時に確保される動的作業領域以外の領域、例えば、ＯＳの管理情報を格納する領域に確保すればよい。なお、処理単位の時間は、処理単位であるタスクの実行時間を表すが、以下、単に処理時間と呼ぶ。【００３４】
そして、性能測定部３０２は、性能情報として、処理時間を含む情報をプロセス制御領域に記録する（Ｓ１０３）。より具体的には、性能情報は、例えば、業務プログラム名、装置名（ＣＰＵ、ＤＩＳＫ等の資源の名称）、および処理時間を含む。業務プログラム名、装置名は、例えば、性能測定部３０２の起動時に、ＯＳから取得すればよい。なお、装置名で示されるＣＰＵ、ＤＩＳＫ等の装置は資源の一例である。また、実施例１では、コンピュータの資源を装置ともいう。【００３５】
さらに、性能測定部３０２は、Ｓ１０１で取得した現在の時間をプロセス制御領域のＬＯＡＤ時間に該当するアドレスに記録する（Ｓ１０４）。以上の処理によって、性能測定部３０２は、呼び出される度に、前回からの処理時間を記録する。【００３６】
図６に、性能測定部３０２が記録する性能情報のフォーマットを例示する。性能測定部３０２は、起動の度に、測定した性能情報を測定した順に、処理単位、すなわち、タスク単位で記録する。図６のように、性能情報は、業務プログラム名、装置名、処理時間を組みにして記録すればよい。【００３７】
性能情報の記録先は、主記憶装置上でよい。ただし、性能情報が測定されるコンピュータは、性能情報を一時的に主記憶装置に保持した後、外部記憶装置、例えば、最終的に、ＤＩＳＫ上のファイルに格納するようにしてもよい。記録された性能情報は、業務性能予測機構２０の入力情報となる。【００３８】
なお、ＤＩＳＫ時間を測定する場合には、性能測定部３０２に類似したＤＩＳＫ性能測定部を外部記憶装置１３への入出力処理の開始時と、外部記憶装置１３からの入出力処理の実行完了を示す割り込み時とで、対にして起動すればよい。そして、ＤＩＳＫ性能測定部は、第１回目の起動時の時間（入出力処理の開始時）から第２回目の起動時の時間（実行完了を示す割り込み時）までの時間の差分値をＤＩＳＫ時間とし、装置名（ＤＩＳＫ）と、業務プログラム名とともに、性能情報として記録すればよい。また、ＤＩＳＫ以外の入出力装置の入出力時間についても、ＤＩＳＫ時間と同様に測定できる。
＜業務性能予測機構＞
図７に、業務性能予測機構２０の構造を例示する。業務性能予測機構２０は、業務タスク作成部２１、業務タスクキューイング部２２、および仮想走行部２３を有する。情報処理装置１０のＣＰＵ１１は、例えば、業務タスク作成部２１、業務タスクキューイング部２２、仮想走行部２３の順に処理を起動する。【００３９】
（業務タスク作成部２１）
業務タスク作成部２１は、稼働中のコンピュータ３０１で性能測定部３０２が記録した性能情報を入力情報として処理する。そして、業務タスク作成部２１は、各業務プログラムの実行時に測定された性能情報から、例えば、１タスクあたりのＣＰＵ処理またはＤＩＳＫ処理を示す管理情報を作成する。管理情報がタスク情報の一例である。【００４０】
図１０に、管理情報を例示する。管理情報は、主記憶装置１２上のデータ構造として例示される。管理情報は、少なくとも業務プログラム名、装置名、処理時間を含む。業務プログラム名、装置名、処理時間は、性能情報から取得する。【００４１】
すなわち、業務プログラム名は、タスクがどの業務プログラムの実行によるものかを判断するための情報である。装置名は、１または複数のＣＰＵをそれぞれ識別する情報、１または複数のＤＩＳＫをそれぞれ識別する情報などである。装置名は、タスクがどのＣＰＵまたはＤＩＳＫで実行されたものかを判断するための情報である。なお、装置名に代えて、装置をユニークに識別する番号、例えば、装置機番等を記録してもよい。処理時間は、各タスクが処理した時間である。【００４２】
図１０の例では、管理情報は、さらに、ＮＥＸＴタスクアドレス、仮想走行用累積処理時間、仮想走行用未処理タスク累積処理時間、仮想走行用ＮＥＸＴタスクアドレスを含む。【００４３】
ＮＥＸＴタスクアドレスには、実行順に各タスクを連結するために、次のタスクの管理情報の先頭アドレスを記録する。すなわち、ＮＥＸＴタスクアドレスは、性能測定部３０２が記録したタスクの順を保存するための情報である。【００４４】
仮想走行用累積処理時間、仮想走行用未処理タスク累積処理時間、仮想走行用ＮＥＸＴタスクアドレスは、稼働中のコンピュータで記録された性能情報に基づき連結された各タスクを情報処理装置１０で仮想的に走行させたときに、上記装置ごとに性能情報を記録するための情報である。【００４５】
各タスクを情報処理装置１０で仮想的に走行させるとは、稼働中のコンピュータで記録された性能情報に基づき作成された各タスクを性能予測対象のコンピュータの資源と相対能力値とにしたがって、走行させることをいう。仮想走行では、稼働中のコンピュータの相対能力値と、性能予測対象のコンピュータの相対能力値に基づき各タスクの実行時間が換算される。また、各タスクの実行時間が換算されることにより、仮想走行時のタスクの実行順は、性能情報が測定された稼働中のコンピュータでの実行順とは異なるものとなる可能性がある。したがって、仮想走行により、情報処理装置１０上で、性能予測対象のコンピュータ上の業務処理の実行時間、すなわち、業務処理実行時のコンピュータの処理性能の予測値を算出できる。【００４６】
仮想走行用累積処理時間は、仮想的に走行させたときに積算される累積処理時間を記録する。仮想走行が完了したとき、最終タスク内の仮想走行用累積処理時間の値が業務処理の処理時間の予測値になる。仮想走行用累積処理時間が装置の使用時間の累積値の一例である。【００４７】
仮想走行用未処理タスク累積処理時間は、仮想に走行させたときの未処理タスクの累積処理時間を記録する。未処理タスクとは、性能予測対象のコンピュータの装置に業務プログラムが割り当てられない状態で経過した、装置の空き時間を管理するため便宜上発生させたタスクである。仮想走行が完了したとき、各装置タスクキューの最終タスク内の仮想走行用未処理タスク累積処理時間の値が、該当装置の未動作時間になり、ＣＰＵ負荷（使用率に相当）やＤＩＳＫ負荷が算出できる。仮想走行用未処理タスク累積処理時間が未使用時間の累積値の一例である。【００４８】
仮想走行用ＮＥＸＴタスクアドレスは、仮想的に走行させたときに、装置ごとにタスクを連結するために、次のタスクの管理情報の先頭アドレスを記録する。最終のタスクについては、仮想走行用ＮＥＸＴタスクアドレスの値を０にする。０は、最終を意味する。【００４９】
（業務タスクキューイング部２２）
図７に戻り、業務タスクキューイング部２２は、細分化したタスクの管理情報を業務ごとに分けてつなぎ合わせる。業務処理ごとに分けてつなぎ合わせた管理情報が実行情報の一例である。つなぎ合わせることを接続する、あるいは、キューイングするともいう。業務タスクキューイング部２２は、性能測定部３０２が測定した性能情報の順に、管理情報（図１０）のＮＥＸＴタスクアドレスとして、次のタスクの管理情報の先頭アドレスを設定すればよい。さらに、業務タスクキューイング部２２は、接続したタスクの処理時間を、性能情報を測定したコンピュータと性能予測対象のコンピュータとの相対能力値の比率を基に換算する。図１１に、ＮＥＸＴタスクアドレスでリンクされ、かつ、処理時間が換算されたタスクの管理情報の構造を例示する。【００５０】
業務作成部２１および業務タスクキューイング部２２が、取得する手段の一例である。また、業務タスクキューイング部２２は、換算する手段の一例でもある。したがって、業務作成部２１と業務タスクキューイング部２２とを一体のものとして作成してもよい。【００５１】
（仮想走行部２３）
仮想走行部２３は、処理性能予測対象のコンピュータの装置数（ＣＰＵ数、ＤＩＳＫ数）の装置タスクキューを用意する。そして、仮想走行部２３は、業務タスクキューイング部２２で作成した業務タスクの各タスクを順番に装置タスクキューに割り当てる。ここで、装置タスクキューは、業務タスクの各タスクの管理情報が装置ごとの列としてつなぎあわせられたものをいう。【００５２】
仮想走行部２３は、各タスクを装置に割り当て時に累積時間を求めてタスクに記録する。業務タスク中の各タスクの装置タスクキューへの割り当てが終わると、最終のタスク累積時間が該当業務の処理時間になる。仮想走行部２３は、タスク累積時間を導入されるコンピュータでの業務の処理時間として出力する。仮想走行部２３は、実行手段の一例である。【００５３】
図１２に、仮想走行用ＮＥＸＴタスクアドレスで接続された装置タスクキューの管理情報を例示する。各装置タスクキューの管理情報は、装置ごとに仮想走行用ＮＥＸＴタスク処理単位アドレスに次の業務タスクアドレスを設定することで接続できる。【００５４】
なお、仮想走行部２３は、業務タスクの各タスクを性能予測対象のコンピュータで仮想走行させるときに、時間の経過で装置が実行できないことを示すために未処理タスクを作成する。未処理タスクは、業務タスクに含まれる個々のタスクを装置（ＣＰＵ、ＤＩＳＫ）に割り当てできない期間に、仮想走行部２３の処理の便宜上割り当てるタスクである。未処理タスクが割り当てられた装置は、未処理タスクの期間、空き状態のままで時間が経過したことを示す。すなわち、未処理タスクは、装置タスクキューにおけるタスクとタスクの間の時間を示す。【００５５】
図１３に、未処理タスクの管理情報を例示する。仮想走行部２３は、未処理タスクも仮想走行用累積処理時間に累積する。そのため、仮想走行部２３は、各装置がタスクで占有されている時間と、空き時間とを判断し、例えば、装置の使用率等を算出できるようになる。例えば、装置タスクキューにおいて、各装置の未処理タスクだけの時間を累積して「仮想走行用未処理タスク累積処理時間」として累積することで、仮想走行部２３は、仮想走行が終わったときに該当装置の使用率を判断できる。
［数１］
該当装置の使用率＝１−（該当装置最終タスクの「仮想走行用未処理タスク累積処理時間」／該当装置最終タスクの「仮想走行用累積処理時間」）；
該当装置の使用率がわかることで、業務追加によるコンピュータシステムへの影響や、該当装置の負荷分散検討をすることができる。
【００５６】
さらに、仮想走行させるときに、実際のＯＳが行う実行優先度による処理の割り当て方式を組み込むようにしてもよい。実行優先度による処理の割り当て方式を組み込むことで、より精密な性能予測ができる。例えば業務Ａの方が業務Ｂよりも実行優先度が高い場合、割り当て順番を業務Ａに3回、その後業務Ｂを1回というように、ＯＳによる各タスクへの装置の割り当て方式と同一の割り当て方式を仮想走行部２３に組み込めばよい。【００５７】
図８に、業務タスクの生成から仮想走行までの処理を例示する。図８の例では、稼働中のコンピュータＳＶ１で測定した性能情報を基に、性能予測対象のコンピュータＳＶ２で業務プログラムを実行するときの性能予測がなされる。【００５８】
図８の例では、コンピュータＳＶ１は、１個のＣＰＵＺ１と２台のＤＩＳＫＺ１、ＤＩＳＫＺ２を有する。また、コンピュータＳＶ２は、２個のＣＰＵ１、ＣＰＵ２と２台のＤＩＳＫ１、ＤＩＳＫ２を有する。【００５９】
コンピュータＳＶ１では、業務プログラムＡ、および業務プログラムＢを実行し、性能情報が測定される。図８では、コンピュータＳＶ１、ＳＶ２等が業務プログラムＡ、業務プログラムＢ等を実行するときの１処理単位、すなわちタスクの管理情報は、それぞれ業務Ａ、業務Ｂという文字列で示されている。また、業務Ａ、業務Ｂで示されるそれぞれのタスクは、業務処理Ａ、業務処理Ｂごとに、時間の経過を示す矢印の方向に順次配置されている。業務処理Ａ、Ｂごとに実行順に並べられたタスクの列を業務タスクキューと呼ぶ。【００６０】
業務タスクキューは、業務タスクキューイング部２２により、コンピュータＳＶ１の装置の相対能力値とコンピュータＳＶ２の装置の相対能力値によって処理時間が換算される。そして、処理時間が換算された業務タスクキューの各タスクが、実行順に、性能予測対象のコンピュータＳＶ２の各装置（ＣＰＵ１、ＣＰＵ２、ＤＩＳＫ１、ＤＩＳＫ２）に投入され、各タスクが各装置を用いて仮想走行される。仮想走行は、各タスクの処理時間だけ、各タスクが各装置を占有することに相当する。仮想走行のタスクのうち、「未」で示された区間部分は、未処理タスクの走行区間である。
【００６１】
例えば、業務処理ＡのタスクがＣＰＵ１に割り当てられると、業務処理Ａのタスクは、他の装置（ＣＰＵ２、ＤＩＳＫ１、ＤＩＳＫ２）に割り当てることはできない。また、業務処理ＡのタスクがＣＰＵ１に割り当てられた状態で、業務処理ＢのタスクをＣＰＵ１に割り当てことはできないが、ＣＰＵ２に割り当てことができる。図８の例では、業務処理Ａ、Ｂ以外の業務は実行されていない。したがって、この状態では、ＤＩＳＫ１、ＤＩＳＫ２に割り当てるタスクがない。実施例１では、情報処理装置１０は、割り当てるタスクない装置に未処理タスクを割り当てる。図８のように、未処理タスクの処理時間は、最も早く処理が終了する割り当て済みのタスクの終了時点までである。【００６２】
そして、業務処理ＡのタスクのＣＰＵ１での処理が完了すると、業務処理ＡのタスクのＤＩＳＫ１への割り当てが可能となる。また、業務処理ＢのタスクのＣＰＵ２での処理が完了すると、業務処理ＢのタスクのＤＩＳＫ２への割り当てが可能となる。【００６３】
なお、図８では、業務処理Ａのタスクが主としてＣＰＵ１割り当てられ、業務処理Ｂのタスクが主としてＣＰＵ２割り当てられているが、業務処理Ａ、Ｂと装置（ＣＰＵ１、ＣＰＵ２）の間に、制限がある訳ではない。すなわち、仮想走行部２３は、コンピュータＳＶ２の空いている装置を適宜選択して、タスクを仮想走行させればよい。ただし、業務処理Ａ、Ｂ等のタスクがＤＩＳＫを占有するタスクの場合には、コンピュータＳＶ２の空いている装置を適宜選択できない場合があり得る。例えば、ユーザデータの格納用ＤＩＳＫが、ＤＩＳＫ１、ＤＩＳＫ２等のいずれかに固定される場合があるからである。タスクの使用する装置がタスクを実行するコンピュータ上で固定される場合には、タスクの管理情報にその旨が指定される。【００６４】
図９に、情報処理装置１０が実行する業務タスクキューの生成から仮想走行までの処理フローを例示する。以下の処理では、コンピュータＳＶ１において性能情報を測定し、コンピュータＳＶ２の処理性能の予測値を求める。図９のように、情報処理装置１０のＣＰＵ１１は、測定した性能情報を基に各業務の開始時間から終了までのＣＰＵ時間、ＤＩＳＫ時間を抽出して、１処理単位で管理情報を作成し、実行順に並べる（Ｓ１）。なお、Ｓ１の処理において、ＣＰＵ１１は、業務タスク生成部２１、業務タスクキューイング部２２として、主記憶装置１２上のコンピュータプログラムを実行する。【００６５】
実施例１では、図７、図１０で説明したように、時間の経過上、先に実行されたタスクの管理情報のＮＥＸＴタスクアドレスに、次に実行されたタスクの管理情報の先頭アドレスを設定することで、タスクの管理情報が実行順に接続され、一の業務プログラムによって実行される業務処理に対する業務タスクキューが作成される。【００６６】
次に、ＣＰＵ１１は、コンピュータＳＶ１とコンピュータＳＶ２のＣＰＵ相対能力値の比率と、ＤＩＳＫ相対能力値の比率を求める（Ｓ２）。【００６７】
ＣＰＵ相対能力値の比率＝コンピュータＳＶ１のＣＰＵ相対能力値／コンピュータＳＶ２のＣＰＵ相対能力値；
ＤＩＳＫ相対能力値の比率＝コンピュータＳＶ１のＤＩＳＫ相対能力値／コンピュータＳＶ２のＤＩＳＫ相対能力値；
次に、ＣＰＵ１１は、各業務処理のＣＰＵ時間、ＤＩＳＫ時間を１処理単位、すなわちタスクごとにコンピュータＳＶ２での予想時間に換算する（Ｓ２）。【００６８】
コンピュータＳＶ２のＣＰＵ時間＝コンピュータＳＶ１のＣＰＵ時間×ＣＰＵ能力相対比率；
コンピュータＳＶ２のＤＩＳＫ時間＝コンピュータＳＶ１のＤＩＳＫ時間×ＤＩＳＫ能力比率
そして、ＣＰＵ１１は、以上の換算結果を業務タスクキューのそれぞれのタスクの処理時間に設定し直す。なお、Ｓ２の処理において、ＣＰＵ１１は、タスクキューイング部２２として、主記憶装置１２上のコンピュータプログラムを実行する。【００６９】
また、コンピュータＳＶ１、ＳＶ２等において、タスクに割り当てられるＣＰＵが切り替わる際、多少システムのオーバーヘッド時間が発生する。上記Ｓ２の処理時間設定時に、ＣＰＵ切り替えに伴うオーバーヘッド時間を加味した時間を加えることができる。例えば、コンピュータＳＶ１とコンピュータＳＶ２とでオーバーヘッド時間の平均値が測定されている場合には、各タスクにオーバーヘッド時間の差分値を付加すればよい。ＤＩＳＫ切り替えのオーバーヘッドや、プログラムのメモリ展開のためのページング時間も、この処理時間設定のときに反映することができる。【００７０】
次に、ＣＰＵ１１は、コンピュータＳＶ２を想定した装置キューで業務タスクキューを仮想走行させる（Ｓ３）。ここで、仮想走行とは、業務プログラムがコンピュータＳＶ２で実行されるときのタスクの実行順で、処理単位であるタスクを順番にコンピュータＳＶ２の装置（ＣＰＵ、ＤＩＳＫ）に割り当てることをいう。より具体的には、仮想走行では、情報処理装置１０のＣＰＵ１１が、Ｓ２の処理で設定されたタスクの予測の処理時間を基に、業務タスクキューの順に、各タスクをコンピュータＳＶ２の装置に投入するシミュレーションを実行する。すなわち、ＣＰＵ１１は、業務タスクキューからタスクの出現順に、コンピュータＳＶ２の装置に（各ＣＰＵと各ＤＩＳＫ）に業務タスクキューのそれぞれのタスクを割り当てる。
【００７１】
複数の業務処理Ａ、Ｂ等の業務タスクキューを仮想走行させる場合には、タスクの割り当ての装置への割り当てにおいて、業務処理Ａ、Ｂ等の実行優先度にしたがい、コンピュータＳＶ２のＯＳの実行優先度の取り扱い手順と同一の手順でタスクを割り当てればよい。例えば、個々の業務タスク列に指定された実行優先度Ｑ１、Ｑ２の値に応じて、業務処理Ａ、Ｂ等の業務タスクキューに含まれる個々のタスクの装置への割り当て回数を制御すればよい。なお、業務タスクキューのタスク列は、業務処理を実現する業務プログラムの処理をタスク列で示したものであり、業務処理をコンピュータ上の資源管理処理の側面から表したものと考えてよい。そこで、以下では、業務処理Ａ、Ｂ等の業務タスクキューを単に業務タスクキューＡ、Ｂ等のように呼ぶ。【００７２】
このとき、各装置でのタスクの実行状況を示す管理情報は、業務タスクキューのタスク順（ＮＥＸＴタスクアドレスのリンク順）ではなく、装置ごとに仮想走行用ＮＥＸＴタスクアドレスによって、つなぎ合わせられる。さらに、タスクとタスクとの間に装置の空き時間が生じる場合には、タスクとタスクとの間に未処理タスクがつなぎ合わせられる。各タスクのコンピュータＳＶ２での予想時間と、コンピュータＳＶ２の装置（ＣＰＵ、ＤＩＳＫ）の構成に依存して、各タスクの実行順が変わることが予想されるからである。【００７３】
そして、ＣＰＵ１１は、タスクを各装置に割り当てるとともに管理情報を仮想走行用ＮＥＸＴタスクアドレスによってリンクしながら、各タスクに設定された換算された処理時間を管理情報の仮想走行用累積処理時間のフィールド（図１０参照）に、累積計算する。なお、Ｓ３の処理において、ＣＰＵ１１は、仮想走行部２３として、主記憶装置１２上のコンピュータプログラムを実行する。【００７４】
そして、すべての業務タスクキューの割り当てを終了すると、ＣＰＵ１１は、仮想走行によって得られた各業務の処理時間を出力する（Ｓ４）。仮想走行用ＮＥＸＴタスクアドレスによって、各タスクの管理情報は、装置ごとにつなぎ合わせられ、装置タスクキューが形成された。したがって、コンピュータＳＶ１で測定された性能情報に基づく業務タスクキューの各タスクの管理情報は、装置ごとにつなぎ合わせられる。例えば、業務処理Ａの業務タスクキュー含まれる各タスクは、装置別のキューにつながることになる。しかしながら、業務処理Ａのタスクで、装置タスクキューにつながれたタスクの末尾、つまり、最も終了時間が遅いタスクの管理情報に記録された仮想走行用累積処理時間は、業務処理Ａの処理時間を示している。そこで、情報処理装置１０のＣＰＵ１１は、各業務処理Ａ、Ｂ等について、管理情報の仮想走行用ＮＥＸＴタスクアドレスによってリンクされた装置タスクキューのうち末尾の、すなわち終了時刻が最も遅い管理情報に記録されている仮想走行用累積処理時間をコンピュータＳＶ２での業務処理Ａ、Ｂ等の処理時間として出力する。【００７５】
一方、装置タスクキューのそれぞれについて、末尾に接続されたタスクの管理情報の仮想走行用累積処理時間は、当該装置の処理時間を示す。また、装置タスクキューのそれぞれについて、末尾に接続されたタスクの管理情報の仮想走行用未処理タスク累積処理時間は、当該装置の空き時間の合計を示す。したがって、ＣＰＵ１１は、各装置の使用率（負荷）を上記［数１］にしたがって計算し、出力する（Ｓ５）。【００７６】
なお、Ｓ４の処理において、ＣＰＵ１１は、実行時間を推定する手段として、主記憶装置１２上のコンピュータプログラムを実行する。
＜実施例１の効果＞
以上述べたように、情報処理装置１０は、コンピュータＳＶ１で測定された性能情報を基に、業務プログラムＡ、Ｂ等の実行時の処理単位であるタスクをつなぎ合わせた業務タスクキューを作成する。そして、情報処理装置１０は、コンピュータＳＶ１の相対能力値と、他のコンピュータ、例えば、性能予測対象のコンピュータＳＶ２の相対能力値の比によって、業務タスクキューの各タスクの処理時間を換算する。そして、情報処理装置１０は、コンピュータＳＶ２の装置（ＣＰＵ、ＤＩＳＫ等）の構成に応じて、業務タスクキューのタスク実行順に各タスクをコンピュータＳＶ２の装置に順次投入し、仮想走行用ＮＥＸＴタスクアドレスによって、装置ごとにつなぎ合わせる。さらに、タスクの装置への投入に際し、コンピュータＳＶ２の装置で空き時間が生じる場合に、未処理タスクを設定する。【００７７】
したがって、情報処理装置１０は、性能予測対象のコンピュータＳＶ２の装置（ＣＰＵ、ＤＩＳＫ等）の構成に応じて、コンピュータＳＶ２の装置の相対能力値にしたがって、業務タスクキューに含まれる各タスクを仮想的に占有させることで、仮想走行を実現できる。したがって、情報処理装置１０は、性能予測対象のコンピュータＳＶ２でのタスクの切り替えをシミュレートしつつ、タスクを各装置上で仮想走行できる。したがって、性能情報を測定したコンピュータＳＶ１のタスクの切り替え処理を伴う実行時間から、性能予測対象のコンピュータＳＶ２のタスクの切り替え処理を伴う実行時間を精度よく予測できる。つまり、装置の構成と、業務タスクキューとの関係から生じる実行待ち時間等を実際のコンピュータＳＶ２上と同様の条件で再現できる。【００７８】
さらに、情報処理装置１０は、各業務タスクキューの各タスクを各装置に割り当てる際に、各業務タスクキューの実行優先度を反映することで、さらに精度を向上させて、性能予測対象のコンピュータＳＶ２の実行時間、あるいは性能を予測できる。【００７９】
さらに、情報処理装置１０は、仮想走行において、タスクの管理情報を仮想走行用ＮＥＸＴタスクアドレスによって、性能予測対象のコンピュータＳＶ２の資源ごと、すなわち、装置ごとに接続する。このような処理によって、装置ごとに作成される装置タスクキューの末尾の管理情報の仮想走行用累積処理時間により、装置の使用時間を算出できる。【００８０】
さらにまた、情報処理装置１０は、各装置でタスクの割り当てがなされていない時間に未処理タスクを割り当てることで、各装置の使用率（負荷）を算出できる。すなわち、情報処理装置１０は、仮想走行において、装置ごとに作成される装置タスクキューにおいて、未処理タスクの時間を積算し、仮想走行用未処理タスク累積処理時間として、資源ごと、すなわち、装置ごとの未使用時間を求めることができる。
【実施例２】
【００８１】
以下、図１４から図２２の図面を参照して、情報処理装置１０の実施例２に係る処理例を説明する。実施例２において、情報処理装置１０の構成は、実施例１と同様である。そこで、情報処理装置１０の構成については、説明を省略する。実施例２では、業務処理の性能予測の前提となる条件をさらに具体化して、情報処理装置１０の処理例を説明する。【００８２】
＜前提＞
処理性能が測定されるコンピュータＳＶ１はＣＰＵを１個、ＤＩＳＫを２台利用可能である。処理性能が予測されるコンピュータＳＶ２はＣＰＵを２個、ＤＩＳＫを２台で利用可能である。したがって、実施例２で利用可能な装置の数は、実施例１の場合と同一である。【００８３】
ただし、実施例２では、１個のＣＰＵの能力（相対能力値）はコンピュータＳＶ２の方がコンピュータＳＶ１の２倍高いと仮定する。また、ＤＩＳＫの能力（相対能力値）は、コンピュータＳＶ１とＳＶ２で同じとする。実施例２において、情報処理装置１０は、以上の前提でのコンピュータＳＶ２での業務処理の処理時間を予測する。【００８４】
以下、図１４−図２０中の矩形のブロックがタスクを示す。タスク内のＡ，Ｂは業務処理名を示す。また、コンピュータＳＶ１がＣＰＵＺ１、ＤＩＳＫＺ１、ＤＩＳＫＺ２を有するものとする。さらに、コンピュータＳＶ２がＣＰＵ１、ＣＰＵ２、ＤＩＳＫ１、ＤＩＳＫ２を有するものとする。また、図面では、ＣＰＵＺ１、ＣＰＵ１、ＣＰＵ２、ＤＩＳＫＺ１、ＤＩＳＫＺ２、ＤＩＳＫ１、ＤＩＳＫ２をそれぞれＣＺ１、Ｃ１、Ｃ２、ＤＺ１、ＤＺ２、Ｄ１、Ｄ２と省略して示す。
【００８５】
さらに、各矩形中の業務処理タスク名（Ａ、Ｂ等）と、装置名（ＣＺ１、Ｃ１、Ｃ２、ＤＺ１、ＤＺ２、Ｄ１、Ｄ２等）の次に記述された数字が各タスクの処理時間を示す。時間の単位は、相対値であり、限定はない。以下の時間の単位を単位時間と呼ぶ。【００８６】
＜処理例＞
図１４に、コンピュータＳＶ１で測定した性能情報を時間順に例示する。図１４の例では、まず、業務処理ＡのタスクがＣＰＵＺ１で３単位時間実行される。次に、業務処理ＢのタスクがＣＰＵＺ１で１単位時間実行される。したがって、業務処理Ｂの開始は、３単位時間が経過した時点となる。【００８７】
次に、ＣＰＵＺ１でのタスク終了後、業務処理ＡのタスクがＤＩＳＫＺ１で２単位時間実行される。さらに、業務処理ＢのタスクがＤＩＳＫＺ２で２単位時間実行される。【００８８】
また、例えば、業務処理ＡのＤＩＳＫＺ１での２つ目のタスク終了時、業務処理ＢがＣＰＵＺ１を占有している。したがって、次の業務処理ＡのＣＰＵＺ１での３つ目のタスクは、業務処理ＢのタスクのＣＰＵＺ１での２つ目のタスク終了まで待たされる結果となっている。【００８９】
以上のような性能情報によって、業務処理Ａの処理時間は、時間軸で０から１９までの１９単位時間となっている。また、業務処理Ｂの処理時間は、時間軸で３から２１までの１８単位時間となっている。【００９０】
図１５に、図１４の性能情報を基に作成された業務タスクキューを例示する。実施例２においても、各コンピュータが業務プログラムを実行するときの１処理単位をタスクと呼ぶ。情報処理装置１０は、各タスクの管理情報をＮＥＸＴタスクアドレス（図１０参照）によって接続し、業務タスクキューを作成する。このとき、情報処理装置１０は、各タスクの管理情報には業務プログラム名、装置名、処理時間、ＮＥＸＴタスクアドレスを記録する。【００９１】
次に、情報処理装置１０は、コンピュータＳＶ１とコンピュータＳＶ２の性能比率で処理時間を変更する。実施例２の前提では１つのＣＰＵ処理能力が２倍になるので、情報処理装置１０は、業務タスクキューの装置名としてＣＰＵが設定されている全タスクの処理時間を半分にする。【００９２】
図１６に、処理時間の換算前後の業務タスクキューをそれぞれ例示する。図１６の右側に、処理時間が換算された業務タスクキューを例示する。なお、図１６では、装置名がコンピュータＳＶ１のＣＺ１、ＤＺ１、ＤＺ２から、コンピュータＳＶ２の装置名Ｃ１、Ｄ１、Ｄ２に変換されている。このうち、装置がＣＰＵの場合には、各タスクはコンピュータＳＶ２のどのＣＰＵに割り当てられてもよい。したがって、コンピュータＳＶ１のＣＰＵＺ１で実行されたタスクは、コンピュータＳＶ２のＣＰＵ１、ＣＰＵ２のいずれで実行されてもよい。業務処理が特定のＣＰＵに限定されることはないからである。なお、実施例２においても、コンピュータの資源を装置とも呼ぶ。【００９３】
一方、装置がＤＩＳＫの場合には、タスクは管理情報で指定のＤＩＳＫ（Ｄ１、Ｄ２等）に割り当てられる。ＤＩＳＫと入出力されるデータは、特定のＤＩＳＫに割り当てられる場合があるからである。そこで、実施例２では、装置がＤＩＳＫの場合、コンピュータＳＶ１のＤＩＳＫＺ１、ＤＩＳＫＺ２を割り当てられて実行されたタスクは、それぞれコンピュータＳＶ２のＤＩＳＫ１、ＤＩＳＫ２を割り当てられて実行されるものとする。【００９４】
次に、情報処理装置１０は、業務タスクキューの先頭からタスクを取り出す。そして、情報処理装置１０は、取り出したタスクを装置に割り当てる。情報処理装置１０は、業務処理Ａ、Ｂ等、業務処理別に業務タスクキューの先頭から順次管理情報を読み出し、装置ごと、すなわちＣＰＵごと、ＤＩＳＫごとに接続する。【００９５】
実施例１で述べたように、業務処理Ａ、Ｂ等、業務処理間で、実行優先度を設定し、実行優先度順に装置を割り当ててもよい。また、業務処理Ａ、Ｂ等の間に実行優先度を設定しない場合には、タスクを切り替えるときに、業務処理Ａ、Ｂ等のうち、ランダムに業務処理を選択してもよい。また、タスクが割り当てられる装置のうち、ＣＰＵについては、他のタスクが割り当てられていないＣＰＵを選択すればよい。一方、タスクが割り当てられる装置のうち、ＤＩＳＫについては、タスクの管理情報で指定されるＤＩＳＫがそのまま使用される。【００９６】
図１７−図１９に、装置へのタスクの割り当て処理を例示する。図１７の場合、ＣＰＵ１に対して、業務処理Ａのタスクが１．５単位時間割り当てられ、ＣＰＵ２には、業務処理Ｂのタスクが０．５単位時間割り当てられる。そして、情報処理装置１０は、割り当てたタスクの管理情報の「仮想走行用累積処理時間」を割り当てた時間積算する。
【００９７】
以上の割り当ての結果、時間軸上で、業務処理Ａにより、ＣＰＵ１では、１．５単位時間が経過する。また、業務処理Ｂにより、ＣＰＵ２では、０．５単位時間が経過する。このとき、少なくもと、業務処理Ｂのタスクの処理時間、つまり、０．５単位時間は、ＤＩＳＫ１、ＤＩＳＫ２が使用されないので、未処理タスクがＤＩＳＫ１、ＤＩＳＫ２に割り当てられる。【００９８】
すなわち、コンピュータＳＶ２で実行されるすべての業務タスクキューがコンピュータＳＶ２の装置に割り当てられた後、コンピュータＳＶ２の装置で空き状態の装置に、未処理タスクが割り当てられる。未処理タスクの割り当てでは、情報処理装置１０は、すでに装置に割り当てられたタスクのうち、管理情報の「仮想走行用累積処理時間」が最も小さいタスクの業務処理を選択する。「仮想走行用累積処理時間」が最も小さいタスクとは、現在仮想走行中のタスクのうち、最も早く仮想走行が終了するタスクを意味する。例えば、図１７の例では、業務処理Ａのタスクの「仮想走行用累積処理時間」が１．５であり、一方、業務処理Ｂのタスクの「仮想走行用累積処理時間」が０．５である。そこで、業務処理Ｂが選択される。そして、情報処理装置１０は、空き状態の装置に、選択された「仮想走行用累積処理時間」が最も小さいタスクの実行完了時間まで未処理タスクを割り当てる。すなわち、図１７の例では、ＤＩＳＫ１、ＤＩＳＫ２に未処理タスクが０．５単位時間割り当てられる。以上のような手順によって、「仮想走行用累積処理時間」が最も小さいタスクの実行時間の末尾まで、すべての装置に、業務タスクキューから読み出されたタスクまたは未処理タスクが割り当てられる。なお、実行する業務タスクキューの数が、装置数より多い場合で、空き状態の装置が生じない場合には、未処理タスクが割り当てられない場合もあり得る。【００９９】
次に、情報処理装置１０は、選択した業務処理Ｂの次のタスクの管理情報を読み出す。上記で選択した「仮想走行用累積処理時間」が最も小さいタスクは、最初に処理が完了し、次のタスクの割り当てが行われることになる。そして、情報処理装置１０は、読み出した次のタスクの管理情報で指定される装置がタスクを割り当て可能か否かを判定する。
【０１００】
図１７の例では、業務処理Ｂの次のタスクは、ＤＩＳＫ２のタスクであり、業務処理Ｂの「仮想走行用累積処理時間」０．５に対して、ＤＩＳＫ２に、未処理タスクが０．５時間割り当てられており、ＤＩＳＫ２は割り当て可能である。そこで、図１８に示すように、情報処理装置１０は、業務処理Ｂの次のタスクをＤＩＳＫ２に割り当てる（図１８参照）。すると、業務処理Ｂの「仮想走行用累積処理時間」は、２．５単位時間となる。【０１０１】
なお、図１７で、ＤＩＳＫ２に割り当てられたタスクが「仮想走行用累積処理時間」が最も小さいタスクの実行時間の末尾（０．５単位時間の未処理タスクの末尾）よりも長くＤＩＳＫ２を占有する場合には、ＤＩＳＫ２に業務処理Ｂの次のタスクを割り当てることはできない。この場合、業務タスクキューＢのタスクは、ＤＩＳＫ２の装置タスクキューの末尾のタスク終了まで待たされることになる。【０１０２】
なお、次のタスクがＣＰＵに割り当てられるタスクの場合には、装置すなわち、ＣＰＵが限定されることはない。そこで、情報処理装置１０は、「仮想走行用累積処理時間」が最も小さいタスクの実行完了時点で空き状態のＣＰＵがあれば、その空き状態のＣＰＵにタスクを割り当てる。また、「仮想走行用累積処理時間」が最も小さいタスクの実行完了時点で空き状態のＣＰＵがない場合には、情報処理装置１０は、最も早く空き状態となるＣＰＵ、すなわち、待ち時間が最も短いＣＰＵに、タスクを割り当てる。【０１０３】
図１７の処理によって、業務処理Ｂの次のタスクにＤＩＳＫ２が割り当てられた結果、業務処理Ｂの「仮想走行用累積処理時間」は２．５単位時間となる。したがって、業務処理Ａの「仮想走行用累積処理時間」が１．５単位時間であり、業務処理Ｂの「仮想走行用累積処理時間」２．５単位時間より短くなる。そこで、次に、情報処理装置１０は、業務処理Ａの次のタスクの管理情報を業務タスクキューから読み出す。
【０１０４】
図１８の例では、まず、図１７と同様、「仮想走行用累積処理時間」が最も小さいタスクである、業務処理ＡのＣＰＵ１での実行時間の末尾まで空き状態の装置に未処理タスクが割り当てられる。その結果、ＣＰＵ２、ＤＩＳＫ１にそれぞれ１単位時間の未処理タスクが割り当てられる。【０１０５】
さらに、業務処理Ａの次のタスクは、ＤＩＳＫ１のタスクであり、処理時間は、２単位時間である。また、業務処理ＡのＣＰＵ１でのタスク終了時、ＤＩＳＫ１は空き状態（未処理タスクの末尾）となる。そこで、情報処理装置１０は、ＤＩＳＫ１の未処理タスクの次に、業務処理ＡのＤＩＳＫのタスク２単位時間を割り当てる。これの割り当てによって、業務処理Ａのタスクの管理情報の「仮想走行用累積処理時間」は３．５となる。【０１０６】
なお、図１８において、業務処理Ａのタスクの管理情報の「仮想走行用累積処理時間」は３．５であるとともに、ＤＩＳＫ１の処理時間も３．５となっている。つまり、タスクの管理情報の「仮想走行用累積処理時間」は、業務処理ごとの処理時間であるとともに、処理が終了した装置の現時点の処理時間を示している。
【０１０７】
図１９に、以上の業務処理の選択、タスクの読み出し、装置への割り当て処理を繰り返した結果を例示する。また、図２０に、仮想走行時の各タスクの装置への割り当て状態を未処理タスクとともに時間軸上に例示する。また、図２１に、業務タスクキューのすべてのタスクが終了したときの、各業務処理の処理時間の累積値の変化を例示する。【０１０８】
すでに述べたように、図１９の業務タスクキューでは、各タスクの管理情報は、ＮＥＸＴタスクアドレスによって、業務処理Ａ，Ｂ等ごとに接続される。一方、装置タスクキューでは、各タスクの管理情報は、仮想走行用ＮＥＸＴタスクアドレスによって、装置ごとに接続される。【０１０９】
図２０で、縦軸は、業務プログラムの実行開始からの経過時間を示す時間軸である。本実施例では、所定の基準時、例えば、業務プログラムの実行開始時からの経過時間を時刻とも呼ぶ。また、図２０で、横方向のフィールドには、装置の種別が示されている。そして、装置の種別として、ＣＰＵ１、ＣＰＵ２、ＤＩＳＫ１、ＤＩＳＫ２が例示されている。そして、図２０の縦軸と横方向のフィールドで区画される領域に、仮想走行されたタスクが示されている。【０１１０】
例えば、ＣＰＵ１では、業務処理ＡのＣＰＵタスクが１．５単位時間実行される。業務処理Ａの次のタスクは、ＤＩＳＫ１で２単位時間実行されるＤＩＳＫタスクである。業務処理Ａのさらに次のタスクは、ＣＰＵ２で１．５単位時間実行されるＣＰＵタスクである。業務処理Ａのさらにまた次のタスクは、ＤＩＳＫ１で２単位時間実行されるＤＩＳＫタスクである。ただし、図２０の仮想走行例では、ＤＩＳＫ１での２つ目のＤＩＳＫタスク実行時に、業務タスクＢの２単位時間のＤＩＳＫタスクが未完了のため、待ち時間が生じている。以上のような同一の業務タスクに含まれる各タスクの管理情報は、ＮＥＸＴタスクアドレスによって連結される。そして、各タスクには、それぞれの業務タスクの累積処理時間が記録される。この累積処理時間は、図２０の縦軸で示されている。そして、例えば、業務タスクＡは、ＤＩＳＫ２の３単位時間のＤＩＳＫタスクが時刻１３．５で終了する。このような業務処理Ａ，Ｂ等の処理時間の累積値の変化が図２１に例示されている。
【０１１１】
一方、図２０で装置ごとに着目すると、例えば、ＣＰＵ１で、業務処理Ａの１．５単位時間のＣＰＵタスク、次に、１．０単位時間の未処理タスク、さらに業務処理Ｂの２単位時間のＣＰＵタスクのように順次タスクが配置される。このような装置ごとのタスクの並びは、仮想走行用ＮＥＸＴタスクアドレスで接続される（図１２参照）。
【０１１２】
以上のように、タスクごとの管理情報は、業務処理ごとには、ＮＥＸＴタスクアドレスで接続され、装置ごとには、仮想走行用ＮＥＸＴタスクアドレスで接続される。一方、仮想走行時の各業務処理Ａ、Ｂ等における累積処理時間は、各管理情報の仮想走行用累積処理時間に記録される（図１２参照）。ところで、図２０の縦軸から明らかなように、各タスクの終了時刻は、業務処理ごとのタスクの終了時刻を示すとともに、当該装置の処理終了時刻となっている。
【０１１３】
例えば、ＣＰＵ１については、時刻１０．５で終了する業務処理Ａの２単位時間のＣＰＵタスクで処理が終了する。同様に、ＤＩＳＫ２については、時刻１３．５で終了する３単位時間のＤＩＳＫタスクで処理が終了する。ただし、業務処理Ａは、この時刻１３．５で終了する３単位時間のＤＩＳＫタスクで処理が終了する。【０１１４】
したがって、ＮＥＸＴタスクアドレスで接続される最後の管理情報の仮想走行用累積処理時間を読み出せば、業務ごとの処理時間の予測値が取得できる。一方、装置ごとに、仮想走行用ＮＥＸＴタスクアドレスで接続される末尾の管理情報の仮想走行用累積処理時間を読み出せば、装置ごとの処理時間を取得できる。さらに、装置ごとに、仮想走行用ＮＥＸＴタスクアドレスで接続される末尾の管理情報の仮想走行用未処理タスク累積処理時間を読み出せば、装置ごとの空き時間の合計を取得できる。【０１１５】
そして、情報処理装置１０は、各業務の処理時間を出力する。最終に割り当てた各タスクの「仮想走行用累積処理時間」が業務処理の処理時間である。【０１１６】
また、情報処理装置１０は、各装置の使用率を次の計算で出力する。【０１１７】
該当装置の使用率＝１−（該当装置最終タスクの「仮想走行用未処理タスク累積処理時間」／該当装置最終タスクの「仮想走行用累積処理時間」）；
図２２、図２３に、情報処理装置１０が業務タスクキューを各装置に割り当て、業務タスクキューの各タスクを仮想走行する処理を例示する。図２２、図２３は、実施例１の仮想走行部２３の処理に対応する。
【０１１８】
この処理では、情報処理装置１０は、まず、業務タスクキューからタスクを取り出す（Ｓ１０）。より具体的には、情報処理装置１０は、仮想走行する業務タスクキューを選択する。仮想走行する対象の業務タスクキューが１つの場合には、当該業務タスクキューが選択される。一方、複数の業務タスクキューを仮想走行させる場合には、所定の順、例えば、実行優先度にしたがって業務タスクキューが選択される。または、ランダムに業務タスクキューが選択される。いずれにしても、性能予測対象のコンピュータＳＶ２でのＯＳの制御と同様の手順で、業務タスクキューを選択すればよい。そして、情報処理装置１０は、業務タスクキューとして接続されたタスクの管理情報を業務タスクキューの先頭からタスクの実行順に読み出す。
【０１１９】
次に、情報処理装置１０は、Ｓ１０で読み出したタスクの管理情報にしたがって、タスクを性能予測対象のコンピュータの装置に割り当てる（Ｓ１１）。装置に割り当てられたタスクの管理情報は、装置ごとに仮想走行用ＮＥＸＴタスクアドレスで接続される。次に、装置を割り当てたタスクの仮想走行用累積処理時間に当該タスクの処理時間を積算する。【０１２０】
次に、情報処理装置１０は、各装置の未処理時間に未処理タスクを割り当て、未処理タスクの管理情報を装置のタスクキューに接続する（Ｓ１２）。すなわち、情報処理装置１０は、最も小さい仮想走行用累積処理時間の業務タスクキューを選択する。そして、この最も小さい仮想走行用累積処理時間に満たない占有時間の各装置タスクキューに対して、その装置タスクキューの占有時間の長さがこの最も小さい仮想走行用累積処理時間になるように、未処理タスクを割り当てる。また、情報処理装置１０は、装置ごとの仮想走行未処理タスク累積処理時間に、割り当てた未処理タスクの処理時間を積算する。なお、Ｓ１２の処理において、ＣＰＵ１１は、未使用時間を累積する手段として、主記憶装置１２上のコンピュータプログラムを実行する。【０１２１】
次に、情報処理装置１０は、業務タスクキューのすべてのタスクの仮想走行が終了したか否かを判定する（Ｓ１３）。【０１２２】
そして、仮想走行が未実行のタスクが業務タスクキューに残っている場合、情報処理装置１０は、次に割り当てるタスクを選択する（Ｓ１４）。すなわち、情報処理装置１０は、最も小さい仮想走行用累積処理時間の業務タスクキューにおける次のタスクの管理情報を読み出す。【０１２３】
そして、情報処理装置１０は、読み出したタスクの管理情報にしたがって、次のタスクを装置タスクキューに割り当てる処理を実行する（Ｓ１５）。その後、情報処理装置１０は、制御をＳ１１に戻す。【０１２４】
Ｓ１５の装置タスクキューへの割り当て処理では、情報処理装置１０は、読み出したタスクの管理情報に装置が指定されているか否かを判定する。例えば、タスクがＣＰＵのタスクである場合には、装置の指定はない。一方、タスクがＤＩＳＫの指定であって、ユーザデータを入出力するタスクの場合には、管理情報でユーザデータを入出力するＤＩＳＫが指定される。また、タスクがＤＩＳＫの指定であって、システムデータを入出力するタスクの場合、通常は、ＤＩＳＫの指定はないこともある。例えば、ワークデータをＤＩＳＫに入出力する場合である。なお、Ｓ１４、Ｓ１５の処理において、ＣＰＵ１１は、タスク情報にしたがった資源の割り当て順を資源ごとに記録する手段として、主記憶装置１２上のコンピュータプログラムを実行する。
（１）タスクに装置の指定がない場合の処理
情報処理装置１０は、装置の指定がないタスク、例えばＣＰＵに割り当てられるタスクについては、空き状態のＣＰＵがある場合には、空き状態の装置にタスクを割り当てる。すなわち、情報処理装置は、Ｓ１４で選択したタスクの仮想走行用累積処理時間の末尾と、装置占有時間の末尾が一致する装置タスクキューを選択する。仮想走行用累積処理時間の末尾と、装置占有時間の末尾が一致する装置タスクキューは、例えば、図１９で業務処理Ａの２番目のＣＰＵタスクを割り当てたときのＣＰＵ２の装置タスクキューを例示できる。また、上記装置タスクキューとしては、同図の業務処理Ｂの２番目のＣＰＵタスクを割り当てたときのＣＰＵ１の装置タスクキューを例示できる。すなわち、タスクを割り当てるときに、タスクの仮想走行用累積処理時間の末尾と、未処理タスクの末尾が合致する場合の当該未処理タスクが割り当てられている装置タスクキューである。【０１２５】
また、空き状態の装置（ＣＰＵ等）がない場合には、情報処理装置１０は、最も早く空き状態となる装置（ＣＰＵ等）にタスクを割り当てる。すなわち、情報処理装置１０は、Ｓ１４で取り出したタスクの仮想走行用累積処理時間の末尾から占有時間の終了が最も早い装置タスクキューを選択する。したがって、Ｓ１４で取り出したタスクの仮想走行用累積処理時間の末尾から占有時間の終了までの時間が待ち時間となる。
（２）タスクに装置の指定がある場合の処理
一方、タスクに割り当てる装置（ＤＩＳＫ等）が指定されている場合には、情報処理装置１０は、指定された装置が空き状態にあるか否かを判定する。空き状態にあるとは、Ｓ１４で取り出したタスクの仮想走行用累積処理時間の末尾と、装置占有時間の末尾が一致する装置タスクキューの装置である。なお、Ｓ１４で取り出したタスクの仮想走行用累積処理時間の末尾の時間まで、空き状態となった装置には、Ｓ１２の処理で未処理タスクが割り当てられる。したがって、Ｓ１５の処理で、空き状態の装置は、通常は、Ｓ１４で取り出したタスクの仮想走行用累積処理時間の末尾で未処理タスクが終了する装置となる。指定された装置が空き状態にある場合には、指定された装置にタスクが割り当てられる。【０１２６】
一方、指定された装置が空き状態にない場合には、指定された装置の装置タスクキューの末尾にタスクが割り当てられる。その結果、指定された装置の装置タスクキューの末尾の時間まで、Ｓ１４で選択したタスクに待ち時間が発生する。【０１２７】
また、Ｓ１３の判定で、仮想走行が未実行のタスクが業務タスクキューに残っていない場合、情報処理装置１０は、各業務タスクキューの末尾に相当する管理情報から、業務タスクキューごとの仮想走行用累積処理時間を取得し、各業務処理の処理時間の予測値として出力する（図２３のＳ１８）。Ｓ１８の処理において、ＣＰＵ１１は、実行時間を推定する手段として、主記憶装置１２上のコンピュータプログラムを実行する。【０１２８】
さらに、情報処理装置１０は、各装置タスクキューの末尾のタスクの管理情報から、装置ごとの仮想走行用累積処理時間と仮想走行用未処理タスク累積処理時間を読み出し、各装置の使用率を算出し、出力する（Ｓ１９）。Ｓ１９の処理において、ＣＰＵ１１は、資源ごとの使用率を算出する手段として、主記憶装置１２上のコンピュータプログラムを実行する。【０１２９】
＜実施例２の効果＞
以上述べたように、実施例２によれば、情報処理装置１０は、性能情報を測定したコンピュータＳＶ１と、性能予測対象のコンピュータＳＶ２との間で、装置の相対能力値を換算し、性能予測対象のコンピュータＳＶ２での業務処理の性能、処理時間を予測できる。【０１３０】
なお、実施例２では、コンピュータＳＶ１は、ＣＰＵ１個、ＤＩＳＫ２台、コンピュータＳＶ２は、ＣＰＵ２個、ＤＩＳＫ２台で、コンピュータＳＶ２のＣＰＵ能力値は、コンピュータＳＶ１のＣＰＵ能力値の２倍であるものを想定した。しかし、上記構成に限定されず、性能情報を測定したコンピュータＳＶ１と、性能予測対象のコンピュータＳＶ２との間で、資源の数、および個々の資源の能力値が様々に異なる場合であっても、実施例２と同様の性能予測が可能である。なぜなら、情報処理装置１０は、性能情報を測定したコンピュータＳＶ１でのタスクの構成を基に、性能予測対象のコンピュータＳＶ２の資源に対して、タスクを割り当て、仮想走行するからである。このような処理によって、コンピュータＳＶ２上の処理が精度よくシミュレートされ、性能予測値が、実際のコンピュータＳＶ２での処理性能に近いものとなるからである。【０１３１】
＜コンピュータが読み取り可能な記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。【０１３２】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ（リードオンリーメモリ）等がある。
【符号の説明】
【０１３３】
１０    情報処理装置
１１    ＣＰＵ
１２    主記憶装置
１３    外部記憶装置
２０    業務性能予測機構
２１    業務タスク作成部
２２    業務タスクキューイング部
２３    仮想走行部
３０１    稼働中のコンピュータ
３０２    性能測定部
３０２Ａ  性能測定プログラム
【図１】
0005874811.tif 000002
【図２】
0005874811.tif 000003
【図３】
0005874811.tif 000004
【図４】
0005874811.tif 000005
【図５】
0005874811.tif 000006
【図６】
0005874811.tif 000007
【図７】
0005874811.tif 000008
【図８】
0005874811.tif 000009
【図９】
0005874811.tif 000010
【図１０】
0005874811.tif 000011
【図１１】
0005874811.tif 000012
【図１２】
0005874811.tif 000013
【図１３】
0005874811.tif 000014
【図１４】
0005874811.tif 000015
【図１５】
0005874811.tif 000016
【図１６】
0005874811.tif 000017
【図１７】
0005874811.tif 000018
【図１８】
0005874811.tif 000019
【図１９】
0005874811.tif 000020
【図２０】
0005874811.tif 000021
【図２１】
0005874811.tif 000022
【図２２】
0005874811.tif 000023
【図２３】
0005874811.tif 000024