(57)【特許請求の範囲】
【請求項１】
計算機に設けられたプロセッサが、あるシステムで複数のジョブが並行して動作する場合に、所定のファイルを参照することを要するジョブ相互間の実行順序を決定する方法であって、
該プロセッサは、外部から前記ジョブごとに、ジョブ実行中にアクセスしたファイルの履歴情報を受け取り、該履歴情報をメモリに記憶し、該メモリから該履歴情報を読み出して、該履歴情報に含まれるテーブル構造を有した該当するジョブ情報セルに情報を書き込み、
該プロセッサは、外部のシミュレーションに必要な空間数やＣＰＵ性能比率を含む前記パラメタ情報を該メモリに読み込み、該パラメタ情報を該メモリから読み出し、該パラメタ情報を解析してシミュレーションの条件となるシミュレーション条件定義情報を作成し、
該プロセッサは、該メモリのジョブ情報セルのリストから順次ジョブ情報セルを読み出し、前記シミュレーション条件定義情報に基づいて生成される空間に接続するジョブ情報セルがあるか否かを判断し、前記シミュレーション条件定義情報に基づいて生成される空間に接続するジョブ情報セルがあると判断され、かつ該ジョブ情報セルのジョブがアクセスするファイルが他のジョブによってアクセスされている場合には、該他のジョブが終了した後に当該ジョブを実行開始するようにしたジョブスケジューリング条件を求め、求められた条件から実行開始可能な時刻を算出し、指定された空間中の該当時刻に空きの有無を判定し、空きがあれば、該メモリにアクセスしてポインタを書き込むことで、前記ジョブ情報セルを該空間に接続し、該ジョブ情報セルの接続終了後、ジョブ実行時間などのジョブ情報セル内のデータの書換えを行い、該ジョブ情報セルがどのジョブの後に実行されるかを決定することを特徴とするジョブ実行順序決定方法。
【請求項２】
前記プロセッサは、ファイルの履歴情報の他に、前記システムのジョブの実行多重度に関する情報を取得することを特徴とする請求項１記載のジョブ実行順序決定方法。
【請求項３】
前記ジョブの実行のシミュレーションには、前記シミュレーション結果を出力するステップを有することを特徴とする請求項１または２記載のジョブ実行順序決定方法。
【請求項４】
前記ジョブの実行履歴に基づいて、同一のファイルを使用するジョブを一つのグループにまとめ、
まとめられたグループに含まれるジョブについて、シミュレーションを行うことを特徴とする請求項１ないし３のいずれかに記載のジョブ実行順序決定方法。
【請求項５】
前記システムは、前記ジョブが実行されたシステムとは異なるシステムであることを特徴とする請求項１から請求項４までのうちのいずれかに記載のジョブ実行順序決定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のジョブが並行して動作することが可能な計算機システムにおけるジョブ実行順序決定方法に関し、特に、構成の異なる計算機システムに移行する際に有効なジョブ実行順序決定方法に関する。
【０００２】
【従来の技術】
従来、大規模なバンキングシステムにおけるオンライン処理や流通業における商品管理をするためのオンライン処理では、顧客サービスの向上を図るために、数多くの業務が実施されている。オンライン処理には、その業務で取り扱ったデータを集計するための一括データ処理（バッチ処理）が付随している。オンライン処理量の増加やオンラインサービスの種類の多様化に伴い、バッチ処理量は増大し、その処理内容も複雑化しつつある。
一般に、オンライン処理を行うジョブをオンラインジョブ、バッチ処理を行うジョブをバッチジョブと呼ぶ。これらの増大化しつつある業務に対処するために、複数のＣＰＵを用意した計算機システムの構築を行い、そのシステムでバッチ業務を実施する傾向にある。
この複数ＣＰＵを有するシステム構築手法として、複数台のＣＰＵを一つの主記憶装置を共有して一つのオペレーティングシステム（ＯＳ）で動作するシステム（密結合マルチプロセサシステム）がある。
もう一つのシステム構築手法として、独立したＣＰＵおよび主記憶装置を持つ複数個の計算機を、チャネル間結合装置などで結合させたシステム（疎結合マルチプロセサシステム）がある。
【０００３】
上述した両方の構築手法によるシステムにおいては、短時間でバッチ処理が完了するように効率のよいジョブスケジュールを編成する必要がある。特に、疎結合マルチプロセサシステムでは、複数の独立したＯＳが動作するため、ＯＳ間で相互に連携をとりながら業務を遂行する必要がある。そこで、バッチ処理を効率よく実施させる従来の手法として、特開平５−１７３８０７号公報や特開平６−６８０５２号公報に開示されたものがある。この２件は、疎結合マルチプロセサシステム上で、負荷が均等化されるように動的に資源の利用率を測定し、スケジューリングを行うジョブ分散方式に関するものである。
すなわち、上記特開平５−１７３８０７号公報に記載されたものは、一定時間毎にシステムの資源負荷量を測定する資源負荷測定手段を設け、そこでの測定結果に応じてジョブ実行多重度を動的に変更させるものである。また、上記特開平６−６８０５２号公報に記載されたものは、一定時間間隔でプロセッサの使用率を測定するプロセッサ使用率監視部を設け、最も負荷の低いプロセッサにジョブを自動的に割り当てる機能に関するものである。
【０００４】
【発明が解決しようとする課題】
近年、業務の多様化やデータ量の増加に伴い、バッチ処理が複雑化していることは前述の通りである。ジョブの処理時間を短縮するための方法として、計算機のＣＰＵ性能を上げるかまたはジョブ全体を高多重化する手段が考えられる。しかしながら、前者の単一ＣＰＵ性能を上げるには現在の技術でほぼ限界が現れており、今後、後者のジョブの高多重化が必須になるのは確実と考えられる。
しかし、これらの複雑なバッチジョブの相関関係を崩さずに、バッチジョブの高多重化を実現するには、ジョブのスケジューリングの効率化を行わなければ、マルチプロセサシステムの計算機資源を有効に活用することにはならない。
上記２つの公開公報に記載された従来技術は、既に構築されたシステム上でのジョブ実行中に動的にジョブスケジューリングを決定するものである。これは、ジョブが実行される際に、そのジョブ単体に対してスケジューリングの効率化を図るもので、ジョブ全体に対しての測定を行ってスケジューリングの効率化を行うものではなかった。また、これらの従来技術は、既に構築されたシステムでジョブを実行する場合に適用されるものであり、システム構成の変更を行う場合の前もったジョブスケジューリング評価に利用することができなかった。
【０００５】
オンラインジョブが時間に依存したジョブであるのに対し、一括データ処理であるバッチジョブは決まった入力ファイルに対し一定の処理を行う開始時刻に依存しないという性質を持つ。このような複数のジョブが定期的に繰り返されるような形態であるジョブに関しては、過去のジョブ実行履歴をもとに、その後のジョブ実行の予測が可能である。このような性質のジョブについて、実行される前にジョブスケジューリング計画を行うことによって、全体の処理時間の短縮を見込むことができる。また、システム設計時に前記のようなジョブスケジューリング計画を行うことで、ディスク装置などへのファイルの配置計画などを立てることができ、システム構成の変更を行う場合の前もったジョブスケジューリング評価を行うことができる。
【０００６】
本発明はバッチジョブのスケジューリング効率化を対象とし、以下の三つの目的を持つ。
本発明の第一の目的は、バッチ処理を実施する前に、過去の実行履歴をもとに、効率的なジョブスケジュールの立案を支援することが可能なジョブ実行順序決定方法を提供することにある。
本発明の第二の目的は、ジョブ多重度などのシステム運用上の変更があった場合に、過去の実行履歴をもとに、その効果を変更前に見積もることが可能なジョブ実行順序決定方法を提供することにある。
本発明の第三の目的は、疎結合マルチプロセサシステム上にジョブを分配させる場合に、上記システム内の他の計算機に接続されているディスクへのアクセス頻度を少なくし、データ転送に関するオーバーヘッドを低くおさえるため、分配されるジョブがアクセスするファイルが上記システム内の一つの計算機に接続されているディスクに配置することが可能となるように、各ジョブを実行させる計算機を、過去の履歴情報をもとに決定することが可能なジョブ実行順序決定方法を提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、上記目的を達成するために、計算機に設けられたプロセッサが、あるシステムで複数のジョブが並行して動作する場合に、所定のファイルを参照することを要するジョブ相互間の実行順序を決定する方法であって、該プロセッサは、外部から前記ジョブごとに、ジョブ実行中にアクセスしたファイルの履歴情報を受け取り、該履歴情報をメモリに記憶し、該メモリから該履歴情報を読み出して、該履歴情報に含まれるテーブル構造を有した該当するジョブ情報セルに情報を書き込み、該プロセッサは、外部のシミュレーションに必要な空間数やＣＰＵ性能比率を含む前記パラメタ情報を該メモリに読み込み、該パラメタ情報を該メモリから読み出し、該パラメタ情報を解析してシミュレーションの条件となるシミュレーション条件定義情報を作成し、該プロセッサは、該メモリのジョブ情報セルのリストから順次ジョブ情報セルを読み出し、前記シミュレーション条件定義情報に基づいて生成される空間に接続するジョブ情報セルがあるか否かを判断し、前記シミュレーション条件定義情報に基づいて生成される空間に接続されるジョブ情報セルがあると判断され、かつ該ジョブ情報セルのジョブがアクセスするファイルが他のジョブによってアクセスされている場合には、該他のジョブが終了した後に当該ジョブを実行開始するようにしたジョブスケジューリング条件を求め、求められた条件から実行開始可能な時刻を算出し、指定された空間中の該当時刻に空きの有無を判定し、空きがあれば、該メモリにアクセスしてポインタを書き込むことで、前記ジョブ情報セルを該空間に接続し、該ジョブ情報セルの接続終了後、ジョブ実行時間などのジョブ情報セル内のデータの書換えを行い、該ジョブ情報セルがどのジョブの後に実行されるかを決定することを特徴としている。
【０００８】
【作用】
本発明によると、収集したアクセス履歴情報から各ジョブの実行開始条件を決定し、実行履歴情報から各ジョブの実行時間を求めることにより現状のジョブ実行に基づいたジョブ実行開始時間を求めることができる。そして、シミュレーションの対象である計算機システムにおけるジョブ多重度を、並行して動作可能な最大ジョブ数とする第一条件と、上記実行開始条件に従うという第二条件をもとにしてシミュレーションを行うステップにより、ジョブスケジューラによらない仮想的なジョブ実行を再現できる。このシミュレーション結果から、処理時間短縮がはかれるジョブスケジュール案を提示することができる。
【０００９】
ジョブ多重度増減などのシステム運用上の変更をパラメタとして与えられた場合に、そのパラメタを上記実行開始条件などに付加することにより、運用上の変更を行った場合のジョブスケジュール結果を提供できる。その結果、現状システムでの問題点を解決する見積りを得た上でのシステム再構築が可能となる。
また、シミュレーションを行う前に、あらかじめアクセスするファイルに基づいてジョブのグルーピングを行うことにより、パラメタとして与えられた新しいシステム条件でのジョブスケジュール結果を提供できる。その結果、疎結合マルチプロセサシステムなどの現行のシステムと違った構成のシステム上でのジョブスケジュール案を提供することができる。
以上のように、実行履歴を用いる静的な評価により、本発明は実機を用いることなく、すなわち対象となるシステムに負担をかけることなくジョブスケジュールに関する定量的評価を得ることが可能になる。
【００１０】
【実施例】
本実施例では、一つ以上のＣＰＵ、および、そのＣＰＵからアクセスされるディスクを有する一つ以上の計算機により構成される計算機システムを対象としている。計算機システムが複数の計算機から構成される場合には、それら各計算機は相互に通信を行う手段を有するものとする。
上記の計算機システムにおいて、複数のジョブは並行実行される。ここで、並行実行されるジョブの数には上限があり、その上限をジョブ多重度と呼ぶ。ジョブは、一つ以上のジョブステップにより構成される。ここでジョブステップは、そのジョブの中で実行されるプログラムの一つに対応している。ｒｅａｄ、ｗｒｉｔｅ、参照などの動作が行われたファイルを、本件ではアクセスファイルと呼ぶ。
バッチジョブは、参照するファイルが生成されていれば論理的に実行可能である。従って、あるジョブがアクセスするファイルが他のジョブによってアクセスされている場合には、その他のジョブが終了した後に実行開始する必要がある。ジョブが、どのジョブの実行終了後に開始すべきであるかをスケジューリング条件と呼ぶ。
【００１１】
以下、本発明の実施例を図面を用いて詳細に説明する。
図１は、本発明の一実施例の基本的なシステム構成を示している。本実施例において、計算機１０１は、ＣＰＵ１０２、メモリ１０３により構成されている。メモリ１０３上には、後述するパラメタ情報１１４およびジョブ実行履歴１１５を入力してジョブスケジューリング解析を行なうジョブスケジューリング解析部１０４、システムの稼働履歴を収集するシステム稼働履歴収集部１１０、およびジョブスケジュールプログラム１１１が設けられ、さらに、ジョブスケジュールプログラム１１１はジョブ起動部１１２および登録簿作成部１１３から構成されている。これらの各部における処理はＣＰＵ１０２によって実行されるものとする。
【００１２】
計算機１０１に登録されたジョブは、ジョブスケジュールプログラム１１１内の登録簿作成部１１３により、ジョブ登録簿１１７に登録される。ジョブ起動部１１２は、上記の手順により作成されたジョブ登録簿１１７をもとに、ジョブを起動し実行状態にする。起動するには、起動しようとするジョブが、どのプログラムを実行するもので、どのファイルにアクセスするかを記述したジョブ制御文１１８が各ジョブ毎に用意されている必要がある。ジョブ起動部１１２は、このジョブ制御文１１８をもとに、ジョブを実行するのに必要なファイルなどの資源が確保されているかを確認した上でジョブを起動する。
【００１３】
ジョブは上記手順により実行状態になる。その実行状況をシステム稼働履歴収集部１１０が収集してジョブ実行履歴１１５を作成する。このジョブ実行履歴１１５の構成例を図２に示す。
採取する実行履歴データとしては、同図に示すように、ジョブ開始レコード１１５−１、ジョブステップ開始レコード１１５−２、アクセスファイルに関するファイルクローズレコード１１５−３、ジョブステップ終了レコード１１５−４、ジョブ終了レコード１１５−５などが挙げられる。これらの各レコードは、ジョブの実行開始、ファイルのクローズなどの事象によって発生するものであり、それらのレコードの先頭または内部にそのレコードが何の事象によって発生したかを表すレコードタイプが含まれている。本実施例では、ジョブ開始レコードを０１、ジョブステップ開始レコードを０２、ファイルクローズレコードを０３、ジョブステップ終了レコードを０４、ジョブ終了レコードを０５とするレコードタイプに関する記述が、各レコードの先頭にあるものとする。
【００１４】
図２に示されたジョブ実行履歴データである各レコードについてさらに詳細に説明する。
ジョブ開始レコード１１５−１は、レコードタイプ０１の他に、ジョブ名、ジョブ開始日付、ジョブ開始時刻を有し、ジョブステップ開始レコード１１５−２は、レコードタイプ０２の他に、ジョブステップ名、ジョブステップ開始日付、ジョブステップ開始時刻、このレコードを出したジョブ名を有し、アクセスファイルに関するファイルクローズレコード１１５−３は、レコードタイプ０３の他に、ファイル名、ファイルクローズ日付、ファイルクローズ時刻、このレコードを出したジョブステップ名、このレコードを出したジョブ名を有し、ジョブステップ終了レコード１１５−４は、レコードタイプ０４の他に、ジョブステップ名、ジョブステップ終了日付、ジョブステップ終了時刻、このレコードを出したジョブ名を有し、ジョブ終了レコード１１５−５は、レコードタイプ０５の他に、ジョブ名、ジョブ終了日付、ジョブ終了時刻、ＣＰＵ使用時間を有している。
【００１５】
ジョブ実行履歴１１５とともにジョブスケジューリング解析部１０４へ入力されるパラメタ情報１１４の構造を図３に示す。パラメタ情報１１４は、ジョブに関するデータである図２に詳細に示したジョブ実行履歴１１５以外の、シミュレーションに必要な、空間数（最大ジョブ実行多重度）や、ＣＰＵ性能比率（新たなシステムにおけるＣＰＵの性能の改善比率）や、出力結果の指定などの全ての情報を含む。図３は空間数３０、ＣＰＵ性能比率１（同一性能のＣＰＵの場合）、グルーピングＯＮ（グルーピング機能を有効にした場合）、・・・の場合を示している。
【００１６】
次に、本発明が特徴としているジョブスケジューリング解析部１０４の詳細を説明する。
ジョブスケジューリング解析部１０４は、図１に示したように、上述した実行履歴データ１１５（図２参照）を解析するジョブデータ解析部６００、上述したパラメタ情報１１４（図３参照）からシミュレーションに必要な情報であるシミュレーション条件定義情報（図５の１１４−１）を作成するパラメタ解析部７００、ジョブデータ解析部６００により作成されたデータについてジョブのグルーピングを行うジョブグルーピング部８００、これらの入力データによりジョブの実行状況をシミュレートするシミュレーション部９００により構成される。ジョブスケジューリング解析部１０４と、システム稼働履歴収集部１１０は、本実施例では、同一システム内に設けているが、別システムに設けてもよい。
【００１７】
また、シミュレーション部９００で解析された結果が、シミュレーション結果１１６として、シミュレーション部９００より出力される。このシミュレーション結果１１６の例を図４に示す。出力情報としては、同図に示すように、シミュレーション後のジョブ実行多重度の時間的遷移１１６−１や、実行ジョブのリスト１１６−２などが挙げられる。図４の実行ジョブのリスト１１６−２は、空間１の実行ジョブはＪＯＢ１、ＪＯＢ５およびＪＯＢ３で、空間２の実行ジョブはＪＯＢ２およびＪＯＢ８であり、例えば、ＪＯＢ１は７：００乃至７：４５に実行され、実行時間は４５分間であることを示している。なお、実行ジョブのリスト中にジョブ毎に使用される資源などを含めることも可能である。
【００１８】
次に、ジョブスケジューリング解析部１０４の詳細な説明図を図５に示す。
ジョブデータ解析部６００は、ジョブ実行履歴１１５から本発明でシミュレーションに用いる情報単位である情報セル２００を作成する。
情報セル２００は、ジョブ実行履歴１１５の中に含まれる履歴の種類によって、図６の情報セル構成例に示したように、ジョブ情報セル２０１、ジョブステップ情報セル２０２、ファイル情報セル２０３に大別される。情報セル２００はテーブル構造になっており、その中の要素（ポインタ）が関連のある情報セルをポイントすることで、情報セル全体がリスト構造になるように構成されている。ジョブ情報セル２０１は、そのジョブを構成するジョブステップ情報セル２０２のリストを指す。また、そのジョブステップ情報セル２０２は、そのジョブステップでアクセスするファイルのファイル情報セル２０３を指す。これらが１組となって、ジョブの全体の情報を表す。
ジョブ実行履歴１１５には解析の対象となるジョブが複数含まれているため、ジョブ情報セル２０１自身も、リスト構造となっており、ポインタによって順次次のジョブ情報セル２０１を指すように構成されている。
【００１９】
次に、上記の各情報セルのさらに詳細なテーブル構造を図７〜図９を用いて説明する。各情報セルには、情報セルのリスト構造を形成するための情報とともに、実行履歴の中に含まれる情報が必要に応じて格納される。
図７はジョブ情報セル２０１のテーブル構造を示すものである。同図中、ポインタ３０１はジョブ情報セルのリストにおいて次の要素をポイントするもので、ポインタ３０２は、そのジョブを構成するジョブステップの情報セルのリストの先頭をポイントするものである。また、３０３はジョブを識別するためのジョブ名を、３０４はジョブ開始時刻を、３０５はジョブ終了時刻を格納する領域であり、これらはシミュレーション部９００で実行条件を求める際に使用される。また、３０６はそのジョブが使用したトータルのＣＰＵ使用時間を格納する領域である。
【００２０】
図８は、ジョブステップ情報セル２０２のテーブル構造を示すものである。同図中、ポインタ４０１はジョブステップ情報セルのリストにおいて次の要素（ジョブステップ情報セル）をポイントするもので、ポインタ４０２は、そのジョブステップでアクセスするファイルの情報セルのリストの先頭をポイントするものである。４０３はジョブステップを識別するためのジョブステップ名を、４０４はそのジョブステップで実行されるプログラム名を格納するための領域である。図９はファイル情報セル２０３のテーブル構造を示すものである。同図中、ポインタ５０１はファイル情報セルのリストにおいて次の要素（ファイル情報セル）をポイントするためのものである。５０２はファイルを識別するとともに、シミュレーション部９００で実行条件を求める際に使用されるファイル名を格納するための領域である。
【００２１】
次に、ジョブデータ解析部６００の処理の流れを図１０のフローチャートを用いて詳細に説明する。
まず、ジョブ実行履歴１１５から、先頭のデータを読み込み、ステップ６０２乃至ステップ６０６の処理をジョブ実行履歴１１５のデータが空になるまで継続する（ステップ６０１）。
そのレコードが読み込まれるまでの情報セルリストの中に、そのレコードの内容を格納すべき情報セルが存在しないレコード、例えば、ジョブ開始レコードなどを読み込んだ場合、新たに内容を格納する情報セルを作成する必要がある。読み込んだジョブ実行履歴１１５のデータが、これらの新たに情報セルを作成するべきレコードタイプであるか否かを判定する（ステップ６０２）。
【００２２】
上記ステップ６０２における判定が真であった場合、該レコードがジョブか、ジョブステップか、またはファイルに関するものであるかをそのレコードの内容から判定し、それに該当する形式の情報セルの領域を確保し（ステップ６０３）、その領域にデータを格納するとともに、その新しい情報セルに対するリストからのポインタ設定など、リスト構造を形成するための情報を設定する（ステップ６０４）。
上記ステップ６０２における判定が偽であった場合、それ以前に作成された情報セルの中の対応する情報セルにデータを格納する（ステップ６０５）。
その後、ジョブ実行履歴１１５の次のデータの処理を対象として判定ステップ６０１に戻る（ステップ６０６）。
【００２３】
パラメタ解析部７００は、図３に示した如きパラメタ情報１１４を解析して、シミュレーションの条件となるシミュレーション条件定義情報１１４−１を作成するものである。
次に、パラメタ解析部７００の処理を図１１のフローチャートを用いて詳細に説明する。
まず、パラメタ情報１１４からパラメタの読み込みを行い、ステップ７０２乃至ステップ７０３に示した処理をパラメタが空になるまで継続する（ステップ７０１）。
読み込んだパラメタ情報がどのパラメタであるかを判別し、パラメタのタイプに合わせてシミュレーション条件定義情報１１４−１に反映させる（ステップ７０２）。例を挙げると、パラメタ情報１１４から、ジョブが実行される多重度を空間数として読み込み、シミュレーション条件定義情報１１４−１の中の対応する項目に設定する。
処理を継続するために次のパラメタ情報１１４を対象として判定ステップ７０１に戻る（ステップ７０３）。
【００２４】
ジョブグループング部８００は、現行のシステムと異なる疎結合マルチプロセサシステムを意識した、ファイルアクセスの局所性に着目したジョブグルーピングを行った結果を得る場合に用いられるものである。ジョブグルーピング部８００の処理により、ジョブ情報セル２０１のリストを、アクセスするファイルが重複するジョブの情報セルのリストに分割しグルーピングする。該ジョブグルーピング部８００で作成されたジョブグループ単位でシミュレーション部９００によりシミュレーションを行うことで、アクセスするファイルの重複をなくした、あるいは少なくしたジョブグループでのスケジューリング解析結果を出すことが可能になる。
【００２５】
次に、ジョブグルーピング部８００の処理を、図１２のフローチャートを用いて詳細に説明する。
まず、最初に、シミュレーション条件定義情報１１４−１の中のジョブのグルーピングを行うか否かを指定しているテーブルデータを参照し、グルーピングを行うと指定してある場合に以下のステップ８０２乃至ステップ８０４の処理を行い、それ以外は処理を行わないで処理を終了する（ステップ８０１）。
【００２６】
ステップ８０１において、グルーピングを行なうと指定してある場合には、まず、ジョブ情報セル２０１の読み込み動作を行い、以下のステップ８０２乃至ステップ８０４の処理をジョブ情報セル２０１のリストが空になるまで継続する（ステップ８０２）。
ステップ８０２で読み込んだジョブ情報セルで表されるジョブと同一ファイルにアクセスするジョブを、ジョブ情報セルのリストの中から順次検索し、これらのジョブを同一グループとみなしてグルーピングする。また、ここで同一グループとされたジョブと同一ファイルにアクセスするジョブも同様に同一グループとする（ステップ８０３）。
次のジョブ情報セルを対象として（ステップ８０４）、ステップ８０２に戻って再び同様の処理を行なう。
【００２７】
次に、シミュレーション部９００におけるジョブ実行のシミュレーションの手順を図１３および図１４のフローチャートを用いて詳細に説明する。
図１４は、図１３で行われるジョブ情報セル２０１のリストつなぎ換えを模式的に表したものである。図１４において、２０１−ｊ（ｊ＝１〜ｊ）は内容の異なるジョブ情報セルを表す。図１４中の空間１００１のテーブル構造例を図１５に示す。
図１５に示した空間１００１のテーブル構造において、ポインタ１１０１は次の空間１００１をポイントするためのものである。また、ポインタ１１０２はその空間１００１に接続されるジョブ情報セルのリストの先頭をポイントするためのものである。
【００２８】
次に、図１３のフローチャートに沿ってシミュレーション部９００の動作を詳細に説明する。
まず最初に、シミュレーション条件定義情報１１４−１から情報を読み込む。シミュレーション条件定義情報１１４−１が空になるまで以下のステップ９０２乃至ステップ９０３の処理を行う（ステップ９０１）。シミュレーション条件定義情報１１４−１が空になったら、ステップ９０４に進む。
【００２９】
ステップ９０２では、読み込んだシミュレーション条件に対応した処理を行う。例えば、ジョブ実行多重度の最大数を表す空間数のパラメタであった場合は、その数の空間１００１をメモリ領域に確保する。またＣＰＵ性能比率であった場合は、ジョブ情報セル２０１内のＣＰＵ使用時間３０６を該比率に合わせて換算し、同時にジョブ終了時刻３０５の書き換え（図７参照）も行う。
【００３０】
接続するジョブ情報セルのリスト１の先頭から、ジョブ情報セル２０１を順々に取り出すために、ジョブ情報セル２０１があるかどうかの判定を行い（ステップ９０４）、ジョブ情報セル２０１があった場合、先頭からそれを順に取り出し空になるまで以下のステップ９０５乃至ステップ９１１の処理を行う。
まず、上記のジョブの、他のジョブとのファイル受渡しなどのスケジューリング条件を求める（ステップ９０５）。
次に、ステップ９０５で求めたスケジューリング条件により実行開始可能な時刻を算出する（ステップ９０６）。
ステップ９０６で求めた時刻に空間１００１に接続されたジョブ情報セルリストの内容を検索し、上記実行開始可能な時刻に空きがあり、実行可能であるか否かを判定する（ステップ９０７）。
【００３１】
上記ステップ９０７における判定が真（実行可能）であった場合、その空いている空間１００１にジョブ情報セルを接続する。また、ジョブ情報セルを接続した際、そのジョブ情報セルが指し示すジョブステップ情報セルなども一緒に空間１００１に接続する（ステップ９０８）。
上記ステップ９０７における判定が偽（実行不可）であった場合、上記ステップ９０６で求めた実行開始可能時刻以降で、最も早く実行が可能となる空間１００１に、ジョブ情報セルを接続する（ステップ９０９）。
その後、上述したジョブ情報セルの接続が終了した後、ジョブ実行時間などのジョブ情報セル内のデータの書換えを行い（ステップ９１０）、次のジョブ情報セルを対象として判定ステップ９０４に戻る。
なお、シミュレーション部９００での処理中に、ジョブが実行されない時間が生じることがある。これらの時間を空きであることを表すジョブ情報セルで表すことで、空間１００１のジョブ情報セルリスト内でのアイドル時間を表現することができる。
【００３２】
次に、シミュレーション部９００におけるステップ９０４乃至ステップ９１１によって具体的にどのようにジョブ情報セルが変更されるかを図１４を参照しながら説明する。
まず、判定ステップ９０４において、接続すべき未処理のジョブ情報セルのリストを参照する。図１４に示した例の場合、未処理のジョブ情報セルとして２０１−１、２０１−２、・・・・、２０１−ｉがあるから判定ステップ９０４はＹＥＳであるため、リストの先頭から２０１−１、２０１−２、・・・、２０１−ｉを順に取り出してそれぞれに対してステップ９０５乃至ステップ９１１の処理を行う。
【００３３】
最初に、リストの先頭のジョブ情報セル２０１−１を処理するにあたり、ステップ９０５乃至ステップ９０８またはステップ９０９において、シミュレーションの結果をメモリ上で表したジョブ情報セルのリストの中でジョブ情報セル２０１−１がどのジョブの後で実行されるべきかを割出す。図１４における例の場合、ジョブ情報セル２０１−４の後に実行されるものとする。その場合、ステップ９０８またはステップ９０９において、ジョブ情報セル２０１−１は２０１−４の後につがぎ換えられる。同時にジョブ情報セル２０１−１は未処理のジョブ情報セルリスト２００からは削除される。
以上説明したように、本実施例では、ジョブの実行状況をメモリ上で情報セルのリストとして表し、パラメタ情報とジョブ実行履歴を用いてシミュレーションを行う。
【００３４】
【発明の効果】
本発明によれば、現行のシステムでのジョブ処理時間短縮が図れるジョブスケジューリング案を得られる。
さらに、システム構成変更によるジョブ実行状況が、システム構成変更前に、現行システムのジョブ稼働状況をもとにして把握することが可能になる。
さらに、ジョブ実行履歴に基づいてシミュレーションを行うため、対象となるシステムに動的なジョブモニタリング程の負担をかけずに静的に評価を行うことが可能となる。
【図面の簡単な説明】
【図１】本発明のジョブスケジューリング解析方法を実現するためのジョブスケジューリング解析部１０４を具備した計算機システムの一実施例である。
【図２】本発明の入力情報となるジョブ実行履歴１１５の説明図である。
【図３】本発明の入力情報となるパラメタ情報１１４の説明図である。
【図４】本発明の出力情報となるシミュレーション結果１１６の説明図である。
【図５】本発明のジョブスケジューリング解析部１０４の具体的な構成例である。
【図６】本発明のジョブスケジューリング解析方法で用いられるジョブおよびジョブに関するデータである情報セルの構成を示した説明図である。
【図７】ジョブのデータを格納するジョブ情報セルのテーブル構造を示した説明図である。
【図８】ジョブステップのデータを格納するジョブステップ情報セルのテーブル構造を示した説明図である。
【図９】アクセスファイルのデータを格納するファイル情報セルのテーブル構造を示した説明図である。
【図１０】ジョブデータ解析部６００の処理を説明したフローチャートである。
【図１１】パラメタ解析部７００の処理を説明したフローチャートである。
【図１２】ジョブグルーピング部８００の処理を説明したフローチャートである。
【図１３】スケジューリングのシミュレーション部９００の処理を説明したフローチャートである。
【図１４】シミュレーションでのジョブ実行を表すためのデータ構造を示した説明図である。
【図１５】シミュレーションで用いられる空間１００１のテーブル構造を示した説明図である。
【符号の説明】
１０１…計算機、１０２…ＣＰＵ、１０３…メモリ、１０４…ジョブスケジューリング解析部、６００…ジョブデータ解析部、７００…パラメタ解析部、８００…ジョブグルーピング部、９００…シミュレーション部、１１０…システム稼働履歴収集部、１１１…ジョブスケジュールプログラム、１１２…ジョブ起動部、１１３…登録簿作成部、１１４…パラメタ情報、１１５…ジョブ実行履歴、１１６…シミュレーション結果、１１７…ジョブ登録簿、１１８…ジョブ制御文。
【図１】
0004219119.tif 000002
【図２】
0004219119.tif 000003
【図３】
0004219119.tif 000004
【図４】
0004219119.tif 000005
【図５】
0004219119.tif 000006
【図６】
0004219119.tif 000007
【図７】
0004219119.tif 000008
【図８】
0004219119.tif 000009
【図９】
0004219119.tif 000010
【図１０】
0004219119.tif 000011
【図１１】
0004219119.tif 000012
【図１２】
0004219119.tif 000013
【図１３】
0004219119.tif 000014
【図１４】
0004219119.tif 000015
【図１５】
0004219119.tif 000016