JPH0895810A - バッチジョブ実行方式 - Google Patents
バッチジョブ実行方式Info
- Publication number
- JPH0895810A JPH0895810A JP25871394A JP25871394A JPH0895810A JP H0895810 A JPH0895810 A JP H0895810A JP 25871394 A JP25871394 A JP 25871394A JP 25871394 A JP25871394 A JP 25871394A JP H0895810 A JPH0895810 A JP H0895810A
- Authority
- JP
- Japan
- Prior art keywords
- data
- job
- job step
- temporary file
- data transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 147
- 238000000034 method Methods 0.000 claims abstract description 124
- 239000000872 buffer Substances 0.000 claims abstract description 91
- 238000013523 data management Methods 0.000 claims abstract description 33
- 238000007726 management method Methods 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 claims description 52
- 238000004364 calculation method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000007781 pre-processing Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Abstract
(57)【要約】
【目的】 バッチジョブを構成するジョブステップ間の
データ伝達に一時ファイルの代わりに主記憶上のデータ
伝達用バッファを使用させ、複数ジョブステップを同時
並列に処理する。 【構成】 ジョブステップ7-1 が出力に、ジョブステッ
プ7-2 が入力にそれぞれ使用する共通の一時ファイルの
代わりに主記憶上に先入り先出し形式のデータ伝達用バ
ッファ5-1 を用意する。ステップ並列実行管理部4はジ
ョブステップ7-1,7-2 に別々のプロセス6-1,6-2 を割り
当てて並行して動作させる。送信データ管理部1は、プ
ロセス6-1 から一時ファイルに対する書き込み要求があ
ったときに出力データをデータ伝達用バッファ5-1 に順
次にキューイングし、プロセス6-2から一時ファイルに
対する読み込み要求があったときにデータ伝達用バッフ
ァ5-1 にキューイングされたデータを順次に取り出して
プロセス6-2 に伝達する。
データ伝達に一時ファイルの代わりに主記憶上のデータ
伝達用バッファを使用させ、複数ジョブステップを同時
並列に処理する。 【構成】 ジョブステップ7-1 が出力に、ジョブステッ
プ7-2 が入力にそれぞれ使用する共通の一時ファイルの
代わりに主記憶上に先入り先出し形式のデータ伝達用バ
ッファ5-1 を用意する。ステップ並列実行管理部4はジ
ョブステップ7-1,7-2 に別々のプロセス6-1,6-2 を割り
当てて並行して動作させる。送信データ管理部1は、プ
ロセス6-1 から一時ファイルに対する書き込み要求があ
ったときに出力データをデータ伝達用バッファ5-1 に順
次にキューイングし、プロセス6-2から一時ファイルに
対する読み込み要求があったときにデータ伝達用バッフ
ァ5-1 にキューイングされたデータを順次に取り出して
プロセス6-2 に伝達する。
Description
【0001】
【産業上の利用分野】本発明は計算機のバッチジョブ実
行方式に関し、特にジョブステップ間で一時ファイルを
介してデータの伝達を行う複数のジョブステップを、そ
の一時ファイルの代わりに主記憶上のデータ伝達用バッ
ファを使用させて同時に並行して動作させるようにした
バッチジョブ実行方式に関する。
行方式に関し、特にジョブステップ間で一時ファイルを
介してデータの伝達を行う複数のジョブステップを、そ
の一時ファイルの代わりに主記憶上のデータ伝達用バッ
ファを使用させて同時に並行して動作させるようにした
バッチジョブ実行方式に関する。
【0002】
【従来の技術】従来、複数のジョブステップから構成さ
れるバッチジョブの実行は、それを構成するジョブステ
ップを記述順に順次一つずつ実行することで行われてい
る。
れるバッチジョブの実行は、それを構成するジョブステ
ップを記述順に順次一つずつ実行することで行われてい
る。
【0003】また、複数のジョブステップから構成され
るバッチジョブの実行において、先行するジョブステッ
プで生成されたデータを後続のジョブステップで処理す
る場合、一時ファイルを使用してジョブステップ間でデ
ータの伝達を行っている。一時ファイルとしては、磁気
ディスク媒体上のファイル以外に、その入出力速度を向
上するために電子ディスク媒体上のファイルが使用され
る場合がある。
るバッチジョブの実行において、先行するジョブステッ
プで生成されたデータを後続のジョブステップで処理す
る場合、一時ファイルを使用してジョブステップ間でデ
ータの伝達を行っている。一時ファイルとしては、磁気
ディスク媒体上のファイル以外に、その入出力速度を向
上するために電子ディスク媒体上のファイルが使用され
る場合がある。
【0004】
【発明が解決しようとする課題】ところで、ジョブの実
行速度を速める手法の一つに、オンライントランザクシ
ョンを処理するリアルタイムジョブにおいて採用されて
いるマルチタスキング手法がある。即ち、各トランザク
ションの処理を別々のプロセスで並行して処理する手法
である。しかしながら、このマルチタスキング手法はバ
ッチジョブに対しては余り利用されていない。その理由
の一つは、本来バッチジョブは逐次性の強い処理を目的
としていたという事情があったからである。
行速度を速める手法の一つに、オンライントランザクシ
ョンを処理するリアルタイムジョブにおいて採用されて
いるマルチタスキング手法がある。即ち、各トランザク
ションの処理を別々のプロセスで並行して処理する手法
である。しかしながら、このマルチタスキング手法はバ
ッチジョブに対しては余り利用されていない。その理由
の一つは、本来バッチジョブは逐次性の強い処理を目的
としていたという事情があったからである。
【0005】しかしながら、例えばPという計算処理と
Qという計算処理とがあり、それらの計算が互いに独立
に行える場合、Pという計算処理とQという計算処理と
を行う1つのジョブステップを1つのプロセスで実行す
るよりも、Pという計算処理を行うプロセスとQという
計算処理を行うプロセスとの2つのプロセスで並行処理
する方が計算結果が早く得られる。つまり、バッチジョ
ブにおいてもマルチタスキング手法が有効な場合があ
る。
Qという計算処理とがあり、それらの計算が互いに独立
に行える場合、Pという計算処理とQという計算処理と
を行う1つのジョブステップを1つのプロセスで実行す
るよりも、Pという計算処理を行うプロセスとQという
計算処理を行うプロセスとの2つのプロセスで並行処理
する方が計算結果が早く得られる。つまり、バッチジョ
ブにおいてもマルチタスキング手法が有効な場合があ
る。
【0006】同様に、上記のPという計算処理を行うジ
ョブステップと、Qという計算処理を行うジョブステッ
プとがある場合、ジョブステップの実行を逐次的に実行
するのではなく、双方のジョブステップに別々のプロセ
スを割り当てて並列して実行させることも考えられる。
ョブステップと、Qという計算処理を行うジョブステッ
プとがある場合、ジョブステップの実行を逐次的に実行
するのではなく、双方のジョブステップに別々のプロセ
スを割り当てて並列して実行させることも考えられる。
【0007】しかしながら、上記の何れの場合も各ジョ
ブステップでの計算処理が互いに独立に行えるので問題
はないが、先行するジョブステップで生成されたデータ
を後続のジョブステップで処理するようなバッチジョブ
の場合、従来はデータ伝達用に一時ファイルを使用して
いた為に実質的にジョブステップは並行処理されない。
即ち、一時ファイルは、ファイルの構造上の問題によ
り、全てのデータが書き出され、そのファイルが完成し
てからでないと、データの読み込みができないため、先
行するジョブステップが全てのデータを一時ファイルに
書き出した後に、後続するジョブステップがその読み込
みを開始することになり、ジョブステップの実行が逐次
的に成らざるを得ないからである。
ブステップでの計算処理が互いに独立に行えるので問題
はないが、先行するジョブステップで生成されたデータ
を後続のジョブステップで処理するようなバッチジョブ
の場合、従来はデータ伝達用に一時ファイルを使用して
いた為に実質的にジョブステップは並行処理されない。
即ち、一時ファイルは、ファイルの構造上の問題によ
り、全てのデータが書き出され、そのファイルが完成し
てからでないと、データの読み込みができないため、先
行するジョブステップが全てのデータを一時ファイルに
書き出した後に、後続するジョブステップがその読み込
みを開始することになり、ジョブステップの実行が逐次
的に成らざるを得ないからである。
【0008】そこで本発明の目的は、一時ファイルの代
わりに主記憶上に個々のデータを先入れ先出し形式で格
納するデータ伝達用のバッファを設け、先行するジョブ
ステップと後続のジョブステップとが非同期に個々のデ
ータ単位にデータ伝達し得るようにすることにより、複
数のジョブステップを実質的に同時に並行して動作させ
ることを可能として、バッチジョブの実行時間を短縮し
得るようにしたバッチジョブ実行方式を提供することに
ある。
わりに主記憶上に個々のデータを先入れ先出し形式で格
納するデータ伝達用のバッファを設け、先行するジョブ
ステップと後続のジョブステップとが非同期に個々のデ
ータ単位にデータ伝達し得るようにすることにより、複
数のジョブステップを実質的に同時に並行して動作させ
ることを可能として、バッチジョブの実行時間を短縮し
得るようにしたバッチジョブ実行方式を提供することに
ある。
【0009】
【課題を解決するための手段】本発明は上記の目的を達
成するために、複数個のデータを処理して個々のデータ
毎の処理済データを順次に一時ファイルに出力する第1
のジョブステップと、前記一時ファイルから個々の処理
済データを順次に入力して処理する第2のジョブステッ
プとを含むバッチジョブの実行方式において、前記第1
のジョブステップと前記第2のジョブステップとにそれ
ぞれ別々のプロセスを割り当てて並行して動作させるス
テップ並列実行管理部と、前記一時ファイルの代わりに
主記憶上に設けられた先入れ先出し形式のデータ伝達用
バッファと、前記第1のジョブステップに割り当てられ
たプロセスから前記一時ファイルに対する書き込み要求
があったときに出力データを前記データ伝達用バッファ
に順次にキューイングし、前記第2のジョブステップに
割り当てられたプロセスから前記一時ファイルに対する
読み込み要求があったときに前記データ伝達用バッファ
にキューイングされたデータを順次に取り出して前記第
2のジョブステップに割り当てられたプロセスに伝達す
る送信データ管理部とを備えている。
成するために、複数個のデータを処理して個々のデータ
毎の処理済データを順次に一時ファイルに出力する第1
のジョブステップと、前記一時ファイルから個々の処理
済データを順次に入力して処理する第2のジョブステッ
プとを含むバッチジョブの実行方式において、前記第1
のジョブステップと前記第2のジョブステップとにそれ
ぞれ別々のプロセスを割り当てて並行して動作させるス
テップ並列実行管理部と、前記一時ファイルの代わりに
主記憶上に設けられた先入れ先出し形式のデータ伝達用
バッファと、前記第1のジョブステップに割り当てられ
たプロセスから前記一時ファイルに対する書き込み要求
があったときに出力データを前記データ伝達用バッファ
に順次にキューイングし、前記第2のジョブステップに
割り当てられたプロセスから前記一時ファイルに対する
読み込み要求があったときに前記データ伝達用バッファ
にキューイングされたデータを順次に取り出して前記第
2のジョブステップに割り当てられたプロセスに伝達す
る送信データ管理部とを備えている。
【0010】また、障害発生時等に主記憶上のデータ伝
達用バッファの内容を復元できるようにするために、デ
ータ伝達用バッファの内容の履歴を前記プロセスの動作
と並行して永久ファイルに退避する送信データ退避部を
備えている。そして、障害発生等の原因によりジョブの
実行が停止した後、途中終了したジョブステップの先頭
からジョブを再実行する際、送信データ復旧部が、途中
終了したジョブステップが入力に使用していた一時ファ
イルであって正常終了したジョブステップが出力に使用
していた一時ファイルに対応するデータ伝達用バッファ
の内容の履歴を前記永久ファイルから読み出し、前記正
常終了したジョブステップが出力した全てのデータを格
納したデータ伝達用バッファを主記憶上に復元するよう
にしている。
達用バッファの内容を復元できるようにするために、デ
ータ伝達用バッファの内容の履歴を前記プロセスの動作
と並行して永久ファイルに退避する送信データ退避部を
備えている。そして、障害発生等の原因によりジョブの
実行が停止した後、途中終了したジョブステップの先頭
からジョブを再実行する際、送信データ復旧部が、途中
終了したジョブステップが入力に使用していた一時ファ
イルであって正常終了したジョブステップが出力に使用
していた一時ファイルに対応するデータ伝達用バッファ
の内容の履歴を前記永久ファイルから読み出し、前記正
常終了したジョブステップが出力した全てのデータを格
納したデータ伝達用バッファを主記憶上に復元するよう
にしている。
【0011】
【作用】本発明のバッチジョブ実行方式においては、一
時ファイルの代わりに主記憶上に先入り先出し形式のデ
ータ伝達用バッファが設けられ、ステップ並列実行管理
部が、複数個のデータを処理して個々のデータ毎の処理
済データを順次に出力する第1のジョブステップと、こ
の第1のジョブステップから出力された個々の処理済デ
ータを順次に処理する第2のジョブステップとにそれぞ
れ別々のプロセスを割り当てて並行して動作させ、送信
データ管理部が、第1のジョブステップに割り当てられ
たプロセスから前記一時ファイルに対する書き込み要求
があったときに出力データを前記データ伝達用バッファ
に順次にキューイングし、前記第2のジョブステップに
割り当てられたプロセスから前記一時ファイルに対する
読み込み要求があったときに前記データ伝達用バッファ
にキューイングされたデータを順次に取り出して前記第
2のジョブステップに割り当てられたプロセスに伝達す
る。
時ファイルの代わりに主記憶上に先入り先出し形式のデ
ータ伝達用バッファが設けられ、ステップ並列実行管理
部が、複数個のデータを処理して個々のデータ毎の処理
済データを順次に出力する第1のジョブステップと、こ
の第1のジョブステップから出力された個々の処理済デ
ータを順次に処理する第2のジョブステップとにそれぞ
れ別々のプロセスを割り当てて並行して動作させ、送信
データ管理部が、第1のジョブステップに割り当てられ
たプロセスから前記一時ファイルに対する書き込み要求
があったときに出力データを前記データ伝達用バッファ
に順次にキューイングし、前記第2のジョブステップに
割り当てられたプロセスから前記一時ファイルに対する
読み込み要求があったときに前記データ伝達用バッファ
にキューイングされたデータを順次に取り出して前記第
2のジョブステップに割り当てられたプロセスに伝達す
る。
【0012】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
詳細に説明する。
【0013】図1は本発明のバッチジョブ実行方式の一
実施例のブロック図であり、1は送信データ管理部、2
は送信データ退避部、3は送信データ復旧部、4はジョ
ブ管理手段11およびプロセス管理手段12を含むステ
ップ並列実行管理部、5−1〜5−3は主記憶上のデー
タ伝達用バッファ、6−1〜6−3はプロセス、7はバ
ッチジョブ、7−1〜7−3はバッチジョブ7を構成す
るジョブステップ、8は磁気ディスク媒体等の外部記憶
媒体上の永久ファイル、9はデータ管理部、10はリス
タート制御部、13は不揮発性の制御テーブルである。
このような構成要素は、マルチプロセッサ計算機の如き
複数のプロセスを同時に並行して実行することができる
複数プロセス処理機能搭載計算機上に搭載される。
実施例のブロック図であり、1は送信データ管理部、2
は送信データ退避部、3は送信データ復旧部、4はジョ
ブ管理手段11およびプロセス管理手段12を含むステ
ップ並列実行管理部、5−1〜5−3は主記憶上のデー
タ伝達用バッファ、6−1〜6−3はプロセス、7はバ
ッチジョブ、7−1〜7−3はバッチジョブ7を構成す
るジョブステップ、8は磁気ディスク媒体等の外部記憶
媒体上の永久ファイル、9はデータ管理部、10はリス
タート制御部、13は不揮発性の制御テーブルである。
このような構成要素は、マルチプロセッサ計算機の如き
複数のプロセスを同時に並行して実行することができる
複数プロセス処理機能搭載計算機上に搭載される。
【0014】図2はバッチジョブ7のジョブステップ7
−1〜7−3で行う処理例の説明図である。同図に示す
ように、ジョブステップ7−1は、複数個のデータA1
〜ANを順次に処理して、個々のデータ毎に処理済デー
タB1〜BNおよび処理済データC1〜CNを生成し、
前者のデータB1〜BNは一時ファイルXに格納し、後
者のデータC1〜CNは一時ファイルYに格納する。ジ
ョブステップ7−2は、一時ファイルXからデータB1
〜BNを順次に入力して処理し、個々のデータ毎に処理
済データD1〜DNを生成して一時ファイルZに格納す
る。ジョブステップ7−3は一時ファイルYおよび一時
ファイルZから処理済データC1〜CN,D1〜DNを
順次に入力して処理する。本実施例では、このような一
時ファイルX,Y,Zを介してデータ授受し合う3つの
ジョブステップ7−1〜7−3を並列に動作させようと
するものである。
−1〜7−3で行う処理例の説明図である。同図に示す
ように、ジョブステップ7−1は、複数個のデータA1
〜ANを順次に処理して、個々のデータ毎に処理済デー
タB1〜BNおよび処理済データC1〜CNを生成し、
前者のデータB1〜BNは一時ファイルXに格納し、後
者のデータC1〜CNは一時ファイルYに格納する。ジ
ョブステップ7−2は、一時ファイルXからデータB1
〜BNを順次に入力して処理し、個々のデータ毎に処理
済データD1〜DNを生成して一時ファイルZに格納す
る。ジョブステップ7−3は一時ファイルYおよび一時
ファイルZから処理済データC1〜CN,D1〜DNを
順次に入力して処理する。本実施例では、このような一
時ファイルX,Y,Zを介してデータ授受し合う3つの
ジョブステップ7−1〜7−3を並列に動作させようと
するものである。
【0015】図3は各ジョブステップ7−1〜7−3の
JCL記述例を示す。ジョブステップ7−1は一時ファ
イルX,Yを使用するので、そのJCL記述には一時フ
ァイルX,Yに関するアサイン文$ASSIGNがあ
り、ジョブステップ7−2は一時ファイルX,Zを使用
するので、そのJCL記述には一時ファイルX,Zに関
するアサイン文$ASSIGNがある。また、ジョブス
テップ7−3は一時ファイルY,Zを使用するので、そ
のJCL記述には一時ファイルY,Zに関するアサイン
文$ASSIGNがある。更に、ジョブステップ7−1
のJCL記述中には、当該ジョブステップ7−1とその
直後のジョブステップ7−2とを並列に動作させること
を指示する文$PARALLELがあり、ジョブステッ
プ7−2のJCL記述中には、当該ジョブステップ7−
2とその直後のジョブステップ7−3とを並列に動作さ
せることを指示する文$PARALLELがある。な
お、ジョブステップ7−3のJCL記述中には文$PA
RALLELはない。
JCL記述例を示す。ジョブステップ7−1は一時ファ
イルX,Yを使用するので、そのJCL記述には一時フ
ァイルX,Yに関するアサイン文$ASSIGNがあ
り、ジョブステップ7−2は一時ファイルX,Zを使用
するので、そのJCL記述には一時ファイルX,Zに関
するアサイン文$ASSIGNがある。また、ジョブス
テップ7−3は一時ファイルY,Zを使用するので、そ
のJCL記述には一時ファイルY,Zに関するアサイン
文$ASSIGNがある。更に、ジョブステップ7−1
のJCL記述中には、当該ジョブステップ7−1とその
直後のジョブステップ7−2とを並列に動作させること
を指示する文$PARALLELがあり、ジョブステッ
プ7−2のJCL記述中には、当該ジョブステップ7−
2とその直後のジョブステップ7−3とを並列に動作さ
せることを指示する文$PARALLELがある。な
お、ジョブステップ7−3のJCL記述中には文$PA
RALLELはない。
【0016】図4はジョブステップ7−1の処理の一例
を示すフローチャートである。同図に示すように、先
ず、一時ファイルX,Yをオープンし(S1)、次にS
YSINファイル等から図2に示したデータA1〜AN
を1データずつ入力し(S2)、所定のデータ処理を行
う(S4)。そして、処理結果のデータを一時ファイル
Xに書き出し(S5)、再びステップS2で入力したデ
ータに対しステップS4とは別のデータ処理を行って
(S6)、その結果のデータを一時ファイルYに書き出
す(S7)。以上を最後のデータANまで実行すると
(S3でYES)、一時ファイルX,Yをクローズし
(S8)、処理を終了する。
を示すフローチャートである。同図に示すように、先
ず、一時ファイルX,Yをオープンし(S1)、次にS
YSINファイル等から図2に示したデータA1〜AN
を1データずつ入力し(S2)、所定のデータ処理を行
う(S4)。そして、処理結果のデータを一時ファイル
Xに書き出し(S5)、再びステップS2で入力したデ
ータに対しステップS4とは別のデータ処理を行って
(S6)、その結果のデータを一時ファイルYに書き出
す(S7)。以上を最後のデータANまで実行すると
(S3でYES)、一時ファイルX,Yをクローズし
(S8)、処理を終了する。
【0017】図5はジョブステップ7−2の処理の一例
を示すフローチャートである。先ず、一時ファイルX,
Zをオープンし(S11)、次に一時ファイルXからデ
ータB1〜BNを1つずつ入力し(S12)、所定のデ
ータ処理を行う(S14)。次に、その結果のデータを
一時ファイルZに書き込む(S15)。以上を一時ファ
イルXの最後のデータBNまで実行すると(S13でY
ES)、一時ファイルX,Zをクローズし(S16)、
処理を終了する。
を示すフローチャートである。先ず、一時ファイルX,
Zをオープンし(S11)、次に一時ファイルXからデ
ータB1〜BNを1つずつ入力し(S12)、所定のデ
ータ処理を行う(S14)。次に、その結果のデータを
一時ファイルZに書き込む(S15)。以上を一時ファ
イルXの最後のデータBNまで実行すると(S13でY
ES)、一時ファイルX,Zをクローズし(S16)、
処理を終了する。
【0018】図6はジョブステップ7−3の処理の一例
を示すフローチャートである。先ず、一時ファイルY,
Zをオープンし(S21)、次に一時ファイルY,Zか
らデータC1〜CN,D1〜DNを1つずつ入力し(S
22,S24)、所定のデータ処理を行う(S25)。
そして、その結果のデータを例えばSYSOUTファイ
ル等に出力する(S26)。以上を一時ファイルYの最
後のデータCNまで実行すると(S23でYES)、一
時ファイルY,Zをクローズし(S27)、処理を終了
する。
を示すフローチャートである。先ず、一時ファイルY,
Zをオープンし(S21)、次に一時ファイルY,Zか
らデータC1〜CN,D1〜DNを1つずつ入力し(S
22,S24)、所定のデータ処理を行う(S25)。
そして、その結果のデータを例えばSYSOUTファイ
ル等に出力する(S26)。以上を一時ファイルYの最
後のデータCNまで実行すると(S23でYES)、一
時ファイルY,Zをクローズし(S27)、処理を終了
する。
【0019】図7はステップ並列実行管理部4のジョブ
管理手段11の処理例を示すフローチャートである。同
図に示すようにジョブ管理手段11は、バッチジョブ7
のジョブステップ記述(JCL記述)をその先頭より順
に入力し(S31)、入力したジョブステップ記述を解
析して前処理を実行する(S33)。この前処理では、
当該ジョブステップに必要な資源の確保等の処理が行わ
れる。このとき本実施例では、一時ファイルのアサイン
文$ASSIGNが現れたとき、実際に一時ファイルを
確保するのではなく、それに代わって主記憶上にデータ
伝達用バッファを確保する。また、どの一部ファイルに
対しどのデータ伝達用バッファを割り当てたかを示す情
報を作成し、制御テーブル13に設定する。次に、当該
ジョブステップを実行するためのプロセスを割り当て、
プロセス管理手段12に対しそのプロセスの実行を指示
する(S34)。次に、当該ジョブステップ記述中に$
PARALLEL文が存在するか否かを調べることよ
り、後続ジョブステップの並列実行が指示されているか
否かを調べ(S35)、指示されていればステップS3
1に戻って次のジョブステップ記述について上記と同様
な処理を繰り返す。
管理手段11の処理例を示すフローチャートである。同
図に示すようにジョブ管理手段11は、バッチジョブ7
のジョブステップ記述(JCL記述)をその先頭より順
に入力し(S31)、入力したジョブステップ記述を解
析して前処理を実行する(S33)。この前処理では、
当該ジョブステップに必要な資源の確保等の処理が行わ
れる。このとき本実施例では、一時ファイルのアサイン
文$ASSIGNが現れたとき、実際に一時ファイルを
確保するのではなく、それに代わって主記憶上にデータ
伝達用バッファを確保する。また、どの一部ファイルに
対しどのデータ伝達用バッファを割り当てたかを示す情
報を作成し、制御テーブル13に設定する。次に、当該
ジョブステップを実行するためのプロセスを割り当て、
プロセス管理手段12に対しそのプロセスの実行を指示
する(S34)。次に、当該ジョブステップ記述中に$
PARALLEL文が存在するか否かを調べることよ
り、後続ジョブステップの並列実行が指示されているか
否かを調べ(S35)、指示されていればステップS3
1に戻って次のジョブステップ記述について上記と同様
な処理を繰り返す。
【0020】他方、並列実行が指示されていないジョブ
ステップ記述を処理し終えた場合(S35でNO)、上
記実行を開始させたジョブステップ対応のプロセスの実
行終了を待ち合わせ(S36)、何れかのプロセスが終
了すると、その終了したプロセスに対応するジョブステ
ップの後処理を行う(S37)。この後処理では、その
ジョブステップが使用していた資源の解放等を行う。但
し、他のジョブステップと共用される資源であるデータ
伝達用バッファの解放はジョブの終了時までは解放され
ない。次に、他のジョブステップ対応のプロセスのうち
実行中のプロセスが残っているか否かを判別し(S3
8)、残っていればその終了を待ち合わせるためにステ
ップS36へ進む。残っていなければ、ステップS31
に戻って、後続のジョブステップ記述を処理する。
ステップ記述を処理し終えた場合(S35でNO)、上
記実行を開始させたジョブステップ対応のプロセスの実
行終了を待ち合わせ(S36)、何れかのプロセスが終
了すると、その終了したプロセスに対応するジョブステ
ップの後処理を行う(S37)。この後処理では、その
ジョブステップが使用していた資源の解放等を行う。但
し、他のジョブステップと共用される資源であるデータ
伝達用バッファの解放はジョブの終了時までは解放され
ない。次に、他のジョブステップ対応のプロセスのうち
実行中のプロセスが残っているか否かを判別し(S3
8)、残っていればその終了を待ち合わせるためにステ
ップS36へ進む。残っていなければ、ステップS31
に戻って、後続のジョブステップ記述を処理する。
【0021】図1に示されるデータ伝達用バッファ5−
1〜5−3は上記のジョブ管理手段11によって一時フ
ァイルの代わりに主記憶上に確保されたもので、データ
伝達用バッファ5−1は一時ファイルXに、データ伝達
用バッファ5−2は一時ファイルYに、データ伝達用バ
ッファ5−3は一時ファイルZに対応している。このよ
うな関係は、図8に示すように制御テーブル13に保持
される。なお、制御テーブル13にはステータスを登録
する欄があり、この欄に送信データ管理部1によってど
の一時ファイルがどのプロセスによって使用中であるか
等のステータスが設定される。
1〜5−3は上記のジョブ管理手段11によって一時フ
ァイルの代わりに主記憶上に確保されたもので、データ
伝達用バッファ5−1は一時ファイルXに、データ伝達
用バッファ5−2は一時ファイルYに、データ伝達用バ
ッファ5−3は一時ファイルZに対応している。このよ
うな関係は、図8に示すように制御テーブル13に保持
される。なお、制御テーブル13にはステータスを登録
する欄があり、この欄に送信データ管理部1によってど
の一時ファイルがどのプロセスによって使用中であるか
等のステータスが設定される。
【0022】図9はデータ伝達用バッファ5−1〜5−
3の構成例を示すブロック図であり、各々のデータ伝達
用バッファ5−1〜5−3はキュー511,521,5
31を有している。データ伝達用バッファ5−1へのデ
ータ書き込み時、書き込まれたデータの主記憶上のアド
レスを示すポインタがキュー511にキューイングさ
れ、データの読み出し時には、キュー511からポイン
タがデキューイングされ、そのポインタが指し示すデー
タが読み出し要求元に伝達される。他のデータ伝達用バ
ッファ5−2,5−3も同様の構成を有している。
3の構成例を示すブロック図であり、各々のデータ伝達
用バッファ5−1〜5−3はキュー511,521,5
31を有している。データ伝達用バッファ5−1へのデ
ータ書き込み時、書き込まれたデータの主記憶上のアド
レスを示すポインタがキュー511にキューイングさ
れ、データの読み出し時には、キュー511からポイン
タがデキューイングされ、そのポインタが指し示すデー
タが読み出し要求元に伝達される。他のデータ伝達用バ
ッファ5−2,5−3も同様の構成を有している。
【0023】図10〜図13は送信データ管理部1の処
理例を示すフローチャートである。図10に示すよう
に、送信データ管理部1は実行中のプロセスから一時フ
ァイルに対するオープン要求があると、制御テーブル1
3中のオープン要求された一時ファイルに対応するステ
ータス欄に、その要求元が使用中である旨を登録する
(S41)。また図11に示すように、実行中のプロセ
スから一時ファイルに対するクローズ要求があると、制
御テーブル13中のクローズ要求された一時ファイルに
対応するステータス欄に、その要求元が使用を終えた旨
を記述する(S51)。
理例を示すフローチャートである。図10に示すよう
に、送信データ管理部1は実行中のプロセスから一時フ
ァイルに対するオープン要求があると、制御テーブル1
3中のオープン要求された一時ファイルに対応するステ
ータス欄に、その要求元が使用中である旨を登録する
(S41)。また図11に示すように、実行中のプロセ
スから一時ファイルに対するクローズ要求があると、制
御テーブル13中のクローズ要求された一時ファイルに
対応するステータス欄に、その要求元が使用を終えた旨
を記述する(S51)。
【0024】更に図12に示すように、送信データ管理
部1は実行中のプロセスから一時ファイルに対するデー
タ出力要求があると、制御テーブル13を参照して出力
要求された一時ファイルに対応するデータ伝達用バッフ
ァを認識し(S61)、出力要求されたデータを1オブ
ジェクトとして上記のデータ伝達用バッファに格納する
(S62)。また、図1の送信データ退避部2に、格納
先のデータ伝達用バッファ名と格納したデータとを含む
履歴データを通知する(S63)。
部1は実行中のプロセスから一時ファイルに対するデー
タ出力要求があると、制御テーブル13を参照して出力
要求された一時ファイルに対応するデータ伝達用バッフ
ァを認識し(S61)、出力要求されたデータを1オブ
ジェクトとして上記のデータ伝達用バッファに格納する
(S62)。また、図1の送信データ退避部2に、格納
先のデータ伝達用バッファ名と格納したデータとを含む
履歴データを通知する(S63)。
【0025】また図13に示すように、送信データ管理
部1は実行中のプロセスから一時ファイルに対するデー
タ入力要求があると、制御テーブル13を参照して入力
要求された一時ファイルに対応するデータ伝達用バッフ
ァを認識し(S71)、そのデータ伝達用バッファから
1つのデータを取り出して要求元に伝達する(S7
3)。このとき、データ伝達用バッファに1つもデータ
が格納されていないときは(S72でNO)、制御テー
ブル13中のそのデータ伝達用バッファに対応するステ
ータス欄の記述に基づき、入力要求元プロセス以外のプ
ロセス(即ち、データ出力元のプロセス)がそのデータ
伝達用バッファの使用を終えたか否かを調べ(S7
4)、使用を終えていなければ所定時間だけ待ち合わせ
て(S75)、再び処理S72から再試行する。他方、
他のプロセスが使用を終えていれば、全てのデータを伝
達し終えたことになるので、入力要求元にデータ終了を
通知する(S76)。
部1は実行中のプロセスから一時ファイルに対するデー
タ入力要求があると、制御テーブル13を参照して入力
要求された一時ファイルに対応するデータ伝達用バッフ
ァを認識し(S71)、そのデータ伝達用バッファから
1つのデータを取り出して要求元に伝達する(S7
3)。このとき、データ伝達用バッファに1つもデータ
が格納されていないときは(S72でNO)、制御テー
ブル13中のそのデータ伝達用バッファに対応するステ
ータス欄の記述に基づき、入力要求元プロセス以外のプ
ロセス(即ち、データ出力元のプロセス)がそのデータ
伝達用バッファの使用を終えたか否かを調べ(S7
4)、使用を終えていなければ所定時間だけ待ち合わせ
て(S75)、再び処理S72から再試行する。他方、
他のプロセスが使用を終えていれば、全てのデータを伝
達し終えたことになるので、入力要求元にデータ終了を
通知する(S76)。
【0026】図14は送信データ退避部2の処理例を示
すフローチャートである。同図に示すように送信データ
退避部2は、送信データ管理部1から履歴データが通知
されると、その履歴データを永久ファイル8に書き込む
(S81)。従って、永久ファイル8には図15に示す
ようにデータ伝達用バッファ名およびデータを含む履歴
データが順次格納されることになる。
すフローチャートである。同図に示すように送信データ
退避部2は、送信データ管理部1から履歴データが通知
されると、その履歴データを永久ファイル8に書き込む
(S81)。従って、永久ファイル8には図15に示す
ようにデータ伝達用バッファ名およびデータを含む履歴
データが順次格納されることになる。
【0027】図16はリスタート制御部10の処理例を
示すフローチャートである。同図に示すようにリスター
ト制御部10は、途中終了したジョブステップの入力用
であって、それを出力用に使用しているジョブステップ
が正常終了している一時ファイルを認識し、それに対応
するデータ伝達用バッファを主記憶に確保し(S9
1)、そのデータ伝達用バッファの格納データを復元す
るよう送信データ復旧部3に要求する(S92)。そし
て、途中終了したジョブステップの先頭からジョブを再
実行するようステップ並列実行管理部4に指示を出す
(S93)。
示すフローチャートである。同図に示すようにリスター
ト制御部10は、途中終了したジョブステップの入力用
であって、それを出力用に使用しているジョブステップ
が正常終了している一時ファイルを認識し、それに対応
するデータ伝達用バッファを主記憶に確保し(S9
1)、そのデータ伝達用バッファの格納データを復元す
るよう送信データ復旧部3に要求する(S92)。そし
て、途中終了したジョブステップの先頭からジョブを再
実行するようステップ並列実行管理部4に指示を出す
(S93)。
【0028】図17は送信データ復旧部3の処理例を示
すフローチャートである。同図に示すように送信データ
復旧部3は、永久ファイル8から復元するデータ伝達用
バッファ名を含む履歴データを全て抽出し(S10
1)、抽出した履歴データ中のデータを、復元するデー
タ伝達用バッファに格納する(S102)。
すフローチャートである。同図に示すように送信データ
復旧部3は、永久ファイル8から復元するデータ伝達用
バッファ名を含む履歴データを全て抽出し(S10
1)、抽出した履歴データ中のデータを、復元するデー
タ伝達用バッファに格納する(S102)。
【0029】以下、上述のように構成された本実施例の
動作を説明する。
動作を説明する。
【0030】図3に示したようなジョブ記述が与えられ
てジョブの実行が指示されると、ステップ並列実行管理
部4のジョブ管理手段11はジョブ記述の先頭文から順
に解析を開始する。そして、先頭のジョブステップ記述
を入力すると(図7のS31)、ジョブステップ実行前
処理を行う(S33)。今、先頭のジョブステップがジ
ョブステップ7−1であった場合、その記述中には一時
ファイルX,Yのアサイン文が存在するため、一時ファ
イルXに代えてデータ伝達用バッファ5−1が主記憶上
に確保され、一時ファイルYに代えてデータ伝達用バッ
ファ5−2が主記憶上に確保される。また、一時ファイ
ルXがデータ伝達用バッファ5−1に対応し、一時ファ
イルYがデータ伝達用バッファ5−2に対応しているこ
とが図8に示すように制御テーブル13に登録される。
ジョブステップ実行の前処理が終了すると、次にそのジ
ョブステップ7−1に1つのプロセスが割り当てられ、
プロセス管理手段12に対しプロセスの実行が指示され
る(S34)。今、ジョブステップ7−1に対してプロ
セス6−1が割り当てられたとすると、以後、プロセス
管理手段12の管理の下で、ジョブステップ7−1がプ
ロセス6−1として実行されることになる。
てジョブの実行が指示されると、ステップ並列実行管理
部4のジョブ管理手段11はジョブ記述の先頭文から順
に解析を開始する。そして、先頭のジョブステップ記述
を入力すると(図7のS31)、ジョブステップ実行前
処理を行う(S33)。今、先頭のジョブステップがジ
ョブステップ7−1であった場合、その記述中には一時
ファイルX,Yのアサイン文が存在するため、一時ファ
イルXに代えてデータ伝達用バッファ5−1が主記憶上
に確保され、一時ファイルYに代えてデータ伝達用バッ
ファ5−2が主記憶上に確保される。また、一時ファイ
ルXがデータ伝達用バッファ5−1に対応し、一時ファ
イルYがデータ伝達用バッファ5−2に対応しているこ
とが図8に示すように制御テーブル13に登録される。
ジョブステップ実行の前処理が終了すると、次にそのジ
ョブステップ7−1に1つのプロセスが割り当てられ、
プロセス管理手段12に対しプロセスの実行が指示され
る(S34)。今、ジョブステップ7−1に対してプロ
セス6−1が割り当てられたとすると、以後、プロセス
管理手段12の管理の下で、ジョブステップ7−1がプ
ロセス6−1として実行されることになる。
【0031】ジョブ管理手段11は、次にジョブステッ
プ7−1の記述中に$PARALLEL文が存在するか
否かを調べる(S35)。図3の場合、存在するので、
ジョブ管理手段11は次のジョブステップ7−2のジョ
ブステップ記述を入力し(S31)、それを解析して前
処理を行う(S33)。ここでは一時ファイルX,Zが
宣言されているので、それに代わるデータ伝達用バッフ
ァを主記憶上に確保する。但し、一時ファイルXは既に
データ伝達用バッファ5−1として確保済なので、一時
ファイルZに代えて使用するデータ伝達用バッファ5−
3のみを主記憶上に確保する。また、一時ファイルZが
データ伝達用バッファ5−3に対応することを図8に示
すように制御テーブル13に設定する。そして、ジョブ
ステップ7−2に1つのプロセスを割り当て、プロセス
管理手段12の管理の下に実行させる(S34)。従っ
て、ジョブステップ7−2にプロセス6−2が割り当て
られたとすると、ジョブステップ7−2がプロセス6−
2として実行されることになる。
プ7−1の記述中に$PARALLEL文が存在するか
否かを調べる(S35)。図3の場合、存在するので、
ジョブ管理手段11は次のジョブステップ7−2のジョ
ブステップ記述を入力し(S31)、それを解析して前
処理を行う(S33)。ここでは一時ファイルX,Zが
宣言されているので、それに代わるデータ伝達用バッフ
ァを主記憶上に確保する。但し、一時ファイルXは既に
データ伝達用バッファ5−1として確保済なので、一時
ファイルZに代えて使用するデータ伝達用バッファ5−
3のみを主記憶上に確保する。また、一時ファイルZが
データ伝達用バッファ5−3に対応することを図8に示
すように制御テーブル13に設定する。そして、ジョブ
ステップ7−2に1つのプロセスを割り当て、プロセス
管理手段12の管理の下に実行させる(S34)。従っ
て、ジョブステップ7−2にプロセス6−2が割り当て
られたとすると、ジョブステップ7−2がプロセス6−
2として実行されることになる。
【0032】ジョブ管理手段11は、次にジョブステッ
プ7−2の記述中に$PARALLEL文が存在するの
で、次のジョブステップ7−3のジョブステップ記述を
入力し(S31)、それを解析して前処理を行う(S3
3)。ここでは一時ファイルY,Zが宣言されている
が、それらに対応するデータ伝達用バッファ5−2,5
−3は既に確保済なので、新たなデータ伝達用バッファ
の確保は行わない。そして、ジョブステップ7−3に1
つのプロセス、即ちプロセス6−3を割り当て、プロセ
ス管理手段12の管理の下に実行させる(S34)。
プ7−2の記述中に$PARALLEL文が存在するの
で、次のジョブステップ7−3のジョブステップ記述を
入力し(S31)、それを解析して前処理を行う(S3
3)。ここでは一時ファイルY,Zが宣言されている
が、それらに対応するデータ伝達用バッファ5−2,5
−3は既に確保済なので、新たなデータ伝達用バッファ
の確保は行わない。そして、ジョブステップ7−3に1
つのプロセス、即ちプロセス6−3を割り当て、プロセ
ス管理手段12の管理の下に実行させる(S34)。
【0033】次にジョブ管理手段11は、ジョブステッ
プ7−3の記述中に$PARALLEL文が存在するか
否か調べるが(S35)、図3の例では存在しないの
で、プロセス6−1〜6−3の実行終了を待ち合わせる
(S36)。
プ7−3の記述中に$PARALLEL文が存在するか
否か調べるが(S35)、図3の例では存在しないの
で、プロセス6−1〜6−3の実行終了を待ち合わせる
(S36)。
【0034】以上の結果、図4に示すような処理を行う
ジョブステップ7−1と、図5に示すような処理を行う
ジョブステップ7−2と、図6に示すような処理を行う
ジョブステップ7−3との3つのジョブステップが同時
に並行して実行されることになる。
ジョブステップ7−1と、図5に示すような処理を行う
ジョブステップ7−2と、図6に示すような処理を行う
ジョブステップ7−3との3つのジョブステップが同時
に並行して実行されることになる。
【0035】さて、ジョブステップ7−1の実行体であ
るプロセス6−1の図4の処理において、一時ファイル
X,Yに対するオープン要求があると(S1)、それ
が、ファイル処理全般についてのOS機能部であるデー
タ管理部9に伝達される。データ管理部9はオープン要
求対象のファイル名が制御テーブル13に登録されてい
るか否かを調べ、登録されている場合には制御を送信デ
ータ管理部1に渡す。登録されていないファイルについ
ては従来と同様に処理される。このような切り分けは、
クローズ要求時およびデータ入出力要求時にも行われ
る。従って、一時ファイルX,Yに対するオープン要求
が出された場合、制御が送信データ管理部1に渡り、送
信データ管理部1は図10に示す処理を実行することに
より、制御テーブル13中の一時ファイルX,Yに対応
するステータス欄に、プロセス6−1が使用中である旨
を設定する。
るプロセス6−1の図4の処理において、一時ファイル
X,Yに対するオープン要求があると(S1)、それ
が、ファイル処理全般についてのOS機能部であるデー
タ管理部9に伝達される。データ管理部9はオープン要
求対象のファイル名が制御テーブル13に登録されてい
るか否かを調べ、登録されている場合には制御を送信デ
ータ管理部1に渡す。登録されていないファイルについ
ては従来と同様に処理される。このような切り分けは、
クローズ要求時およびデータ入出力要求時にも行われ
る。従って、一時ファイルX,Yに対するオープン要求
が出された場合、制御が送信データ管理部1に渡り、送
信データ管理部1は図10に示す処理を実行することに
より、制御テーブル13中の一時ファイルX,Yに対応
するステータス欄に、プロセス6−1が使用中である旨
を設定する。
【0036】プロセス6−1の処理が進み、図2に示し
た先頭の入力データA1の処理済結果であるデータB1
を一時ファイルXへ出力する要求を出すと、制御が送信
データ管理部1に渡り、送信データ管理部1は、図12
に示すように、制御テーブル13から一時ファイルXに
対応するデータ伝達用バッファ5−1を認識し(S6
1)、出力要求されたデータB1をデータ伝達用バッフ
ァ5−1にキューイングする(S62)。即ち、図9に
示すように、データB1を主記憶上に書き込むと共に、
そのアドレスを示すポインタをキュー511にキューイ
ングする。そして、格納先のデータ伝達用バッファ名と
格納したデータB1とを含む履歴データを送信データ退
避部2に通知する。送信データ退避部2は通知された履
歴データを図15に示すように永久ファイル8に格納す
る(図14のS81)。
た先頭の入力データA1の処理済結果であるデータB1
を一時ファイルXへ出力する要求を出すと、制御が送信
データ管理部1に渡り、送信データ管理部1は、図12
に示すように、制御テーブル13から一時ファイルXに
対応するデータ伝達用バッファ5−1を認識し(S6
1)、出力要求されたデータB1をデータ伝達用バッフ
ァ5−1にキューイングする(S62)。即ち、図9に
示すように、データB1を主記憶上に書き込むと共に、
そのアドレスを示すポインタをキュー511にキューイ
ングする。そして、格納先のデータ伝達用バッファ名と
格納したデータB1とを含む履歴データを送信データ退
避部2に通知する。送信データ退避部2は通知された履
歴データを図15に示すように永久ファイル8に格納す
る(図14のS81)。
【0037】またプロセス6−1がデータA1を処理し
て得たデータC1を一時ファイルYへ出力する要求を出
すと、送信データ管理部1は、制御テーブル13から一
時ファイルYに対応するデータ伝達用バッファ5−2を
認識し、図9に示すようにデータC1を主記憶上に書き
込むと共に、そのアドレスを示すポインタをキュー52
1にキューイングする。そして、格納先のデータ伝達用
バッファ名と格納したデータC1とを含む履歴データを
送信データ退避部2に通知し、送信データ退避部2はこ
の履歴データを永久ファイル8に格納する。
て得たデータC1を一時ファイルYへ出力する要求を出
すと、送信データ管理部1は、制御テーブル13から一
時ファイルYに対応するデータ伝達用バッファ5−2を
認識し、図9に示すようにデータC1を主記憶上に書き
込むと共に、そのアドレスを示すポインタをキュー52
1にキューイングする。そして、格納先のデータ伝達用
バッファ名と格納したデータC1とを含む履歴データを
送信データ退避部2に通知し、送信データ退避部2はこ
の履歴データを永久ファイル8に格納する。
【0038】他方、プロセス6−1と並行して動作して
いるプロセス6−2において、一時ファイルX,Zに対
するオープン要求があると(図5のS11)、送信デー
タ管理部1は制御テーブル13の一時ファイルX,Zに
対応するステータス欄に、プロセス6−2が使用中であ
る旨を設定する。また、プロセス6−1の処理が進み、
一時ファイルXからのデータ入力要求があると(S1
2)、送信データ管理部1は、図13に示すように、制
御テーブル13を参照して一時ファイルXに対応するデ
ータ伝達用バッファ5−1を認識し(S71)、そこに
キューイングされているデータを1つ取り出してプロセ
ス6−2に伝達する(S73)。即ち、図9のキュー5
11からポインタを1つデキューイングし、それが指示
するデータB1をプロセス6−2に伝達する。ここで、
プロセス6−1が最初のデータB1を出力する前にプロ
セス6−2が入力を要求した場合、データ伝達用バッフ
ァ5−1には1つもデータが存在しないため、図13の
S72でNOと判定される。このときは、制御テーブル
13のデータ伝達用バッファ5−1に対応するステータ
ス欄が調べられ、要求元であるプロセス6−2以外のプ
ロセス6−1が未だ使用中であることが確認され、所定
時間の待ち合わせ後にプロセス6−2からの入力要求が
再処理される。この結果、プロセス6−1からデータB
1が出力されると、それがプロセス6−2に伝達される
ことになる。
いるプロセス6−2において、一時ファイルX,Zに対
するオープン要求があると(図5のS11)、送信デー
タ管理部1は制御テーブル13の一時ファイルX,Zに
対応するステータス欄に、プロセス6−2が使用中であ
る旨を設定する。また、プロセス6−1の処理が進み、
一時ファイルXからのデータ入力要求があると(S1
2)、送信データ管理部1は、図13に示すように、制
御テーブル13を参照して一時ファイルXに対応するデ
ータ伝達用バッファ5−1を認識し(S71)、そこに
キューイングされているデータを1つ取り出してプロセ
ス6−2に伝達する(S73)。即ち、図9のキュー5
11からポインタを1つデキューイングし、それが指示
するデータB1をプロセス6−2に伝達する。ここで、
プロセス6−1が最初のデータB1を出力する前にプロ
セス6−2が入力を要求した場合、データ伝達用バッフ
ァ5−1には1つもデータが存在しないため、図13の
S72でNOと判定される。このときは、制御テーブル
13のデータ伝達用バッファ5−1に対応するステータ
ス欄が調べられ、要求元であるプロセス6−2以外のプ
ロセス6−1が未だ使用中であることが確認され、所定
時間の待ち合わせ後にプロセス6−2からの入力要求が
再処理される。この結果、プロセス6−1からデータB
1が出力されると、それがプロセス6−2に伝達される
ことになる。
【0039】またプロセス6−2がデータB1を処理し
て得たデータD1を一時ファイルZに出力する要求を出
すと、送信データ管理部1は一時ファイルZに対応する
データ伝達用バッファ5−3にデータD1を格納する。
また、この格納されたデータD1を含む履歴データが送
信データ退避部2によって永久ファイル8に格納され
る。
て得たデータD1を一時ファイルZに出力する要求を出
すと、送信データ管理部1は一時ファイルZに対応する
データ伝達用バッファ5−3にデータD1を格納する。
また、この格納されたデータD1を含む履歴データが送
信データ退避部2によって永久ファイル8に格納され
る。
【0040】更にプロセス6−1,6−2と並行して動
作しているプロセス6−3から一時ファイルY,Zのオ
ープン要求があった場合、一時ファイルY,Zからのデ
ータ入力要求があった場合も、前述と同様の処理が行わ
れ、データ伝達用バッファ5−2,5−3から取り出さ
れたデータがプロセス6−3に伝達される。
作しているプロセス6−3から一時ファイルY,Zのオ
ープン要求があった場合、一時ファイルY,Zからのデ
ータ入力要求があった場合も、前述と同様の処理が行わ
れ、データ伝達用バッファ5−2,5−3から取り出さ
れたデータがプロセス6−3に伝達される。
【0041】さて、プロセス6−1が図2に示す最後の
データANまで処理し終えたことから、一時ファイル
X,Yのクローズ要求を出すと、送信データ管理部1
は、制御テーブル13中の一時ファイルX,Yに対応す
るステータス欄に、プロセス6−1が使用を終えた旨の
記述を登録する。
データANまで処理し終えたことから、一時ファイル
X,Yのクローズ要求を出すと、送信データ管理部1
は、制御テーブル13中の一時ファイルX,Yに対応す
るステータス欄に、プロセス6−1が使用を終えた旨の
記述を登録する。
【0042】またプロセス6−2が図2に示す最後のデ
ータBNを処理し終え、一時ファイルXからの次のデー
タの入力要求を行うと、送信データ管理部1は一時ファ
イルXに対応するデータ伝達用バッファ5−1からデー
タを取り出そうとするが、最後のデータBNまで伝達し
終わったので、最早取り出すべきデータは存在しない。
このため、送信データ管理部1は図13のS73からS
74へ進み、制御テーブル13中のデータ伝達用バッフ
ァ5−1に対応するステータス欄を調べる。この時点で
は、プロセス6−1が使用を終えた旨の記述が登録され
ているため、送信データ管理部1は、全てのデータを伝
達し終えた為にデータ伝達用バッファ5−1が空になっ
ていたものと判断し、要求元のプロセス6−2にデータ
が終了した旨を通知する(S76)。これにより、プロ
セス6−2は最後のデータまで処理し終えたことを判別
し(図5のS13)、一時ファイルX,Zのクローズを
要求し、処理を終える。
ータBNを処理し終え、一時ファイルXからの次のデー
タの入力要求を行うと、送信データ管理部1は一時ファ
イルXに対応するデータ伝達用バッファ5−1からデー
タを取り出そうとするが、最後のデータBNまで伝達し
終わったので、最早取り出すべきデータは存在しない。
このため、送信データ管理部1は図13のS73からS
74へ進み、制御テーブル13中のデータ伝達用バッフ
ァ5−1に対応するステータス欄を調べる。この時点で
は、プロセス6−1が使用を終えた旨の記述が登録され
ているため、送信データ管理部1は、全てのデータを伝
達し終えた為にデータ伝達用バッファ5−1が空になっ
ていたものと判断し、要求元のプロセス6−2にデータ
が終了した旨を通知する(S76)。これにより、プロ
セス6−2は最後のデータまで処理し終えたことを判別
し(図5のS13)、一時ファイルX,Zのクローズを
要求し、処理を終える。
【0043】プロセス6−3が最後の入力データCNを
処理し終えた後の動作も、前述したプロセス6−2の場
合と同じである。
処理し終えた後の動作も、前述したプロセス6−2の場
合と同じである。
【0044】以上のようにして、データ伝達用バッファ
5−1〜5−3を使用して非同期にデータ伝達し合いな
がら、3つのプロセス6−1〜6−3、つまり3つの連
続するジョブステップ7−1〜7−3が並行して実行さ
れる。
5−1〜5−3を使用して非同期にデータ伝達し合いな
がら、3つのプロセス6−1〜6−3、つまり3つの連
続するジョブステップ7−1〜7−3が並行して実行さ
れる。
【0045】バッチジョブ7はその最後のジョブステッ
プまで正常に実行し終えると、終了する。但し、何れか
のジョブステップの実行途中で障害が発生し、処理の続
行が不可能になると、ジョブの実行は異常終了する。こ
のようなときは、途中終了したジョブステップの先頭か
らジョブを再実行する必要がある。本実施例では、一時
ファイルの代わりに主記憶上のデータ伝達用バッファを
使用しているので、障害発生後の再立ち上げ時に主記憶
上のデータ伝達用バッファの内容は消失する。しかしな
がら、送信データ退避部2によって永久ファイル8に送
信データの履歴が保存されているため、送信データ復旧
部3によって復旧することが可能である。以下、この点
について説明する。
プまで正常に実行し終えると、終了する。但し、何れか
のジョブステップの実行途中で障害が発生し、処理の続
行が不可能になると、ジョブの実行は異常終了する。こ
のようなときは、途中終了したジョブステップの先頭か
らジョブを再実行する必要がある。本実施例では、一時
ファイルの代わりに主記憶上のデータ伝達用バッファを
使用しているので、障害発生後の再立ち上げ時に主記憶
上のデータ伝達用バッファの内容は消失する。しかしな
がら、送信データ退避部2によって永久ファイル8に送
信データの履歴が保存されているため、送信データ復旧
部3によって復旧することが可能である。以下、この点
について説明する。
【0046】リスタート制御部10は、リスタート制御
の一環として、異常終了したジョブの情報を調べて途中
終了したジョブステップを認識し、この途中終了したジ
ョブステップが入力に使用している一時ファイルであっ
て、それを出力用に使用するジョブステップが正常終了
している一時ファイルに対応するデータ伝達用バッファ
を図8の制御テーブル13から調べる。そして、図16
に示すように、そのデータ伝達用バッファを主記憶上に
確保し(S91)、そのデータ伝達用バッファ名を送信
データ復旧部3に通知して復元を要求する(S92)。
また、制御テーブル13中の当該確保したデータ伝達用
バッファに関連する部分のみを残して他は消去し、新た
な制御テーブル13を作成する。送信データ復旧部3
は、図17に示すように、永久ファイル8から、通知さ
れたデータ伝達用バッファ名を含む履歴データを全て抽
出し(S101)、この抽出した履歴データ中のデータ
を、復元要求された主記憶上のデータ伝達バッファに格
納する(S102)。その後、リスタート制御部10
は、途中終了したジョブステップの先頭からジョブを再
実行するようステップ並列実行管理部4に指示する(S
93)。
の一環として、異常終了したジョブの情報を調べて途中
終了したジョブステップを認識し、この途中終了したジ
ョブステップが入力に使用している一時ファイルであっ
て、それを出力用に使用するジョブステップが正常終了
している一時ファイルに対応するデータ伝達用バッファ
を図8の制御テーブル13から調べる。そして、図16
に示すように、そのデータ伝達用バッファを主記憶上に
確保し(S91)、そのデータ伝達用バッファ名を送信
データ復旧部3に通知して復元を要求する(S92)。
また、制御テーブル13中の当該確保したデータ伝達用
バッファに関連する部分のみを残して他は消去し、新た
な制御テーブル13を作成する。送信データ復旧部3
は、図17に示すように、永久ファイル8から、通知さ
れたデータ伝達用バッファ名を含む履歴データを全て抽
出し(S101)、この抽出した履歴データ中のデータ
を、復元要求された主記憶上のデータ伝達バッファに格
納する(S102)。その後、リスタート制御部10
は、途中終了したジョブステップの先頭からジョブを再
実行するようステップ並列実行管理部4に指示する(S
93)。
【0047】従って、例えばジョブステップ7−1〜7
−3が並行して実行されている状態で、ジョブステップ
7−1のみが正常に終了し、ジョブステップ7−2,7
−3が途中終了した場合、途中終了したジョブステップ
7−2,7−3が入力に使用している一時ファイルであ
って、それを出力用に使用するジョブステップが正常終
了している一時ファイルは、一時ファイルXと一時ファ
イルYなので、それらに対応するデータ伝達用バッファ
5−1,5−2が主記憶上に確保され、送信データ復旧
部3により、永久ファイル8に格納されているデータ伝
達用バッファ5−1の全ての履歴データが抽出されてそ
の中のデータがデータ伝達用バッファ5−1に格納さ
れ、また永久ファイル8に格納されているデータ伝達用
バッファ5−1の全ての履歴データが抽出されてその中
のデータがデータ伝達用バッファ5−2に格納される。
そして、ジョブステップ7−2からジョブが再実行され
る。
−3が並行して実行されている状態で、ジョブステップ
7−1のみが正常に終了し、ジョブステップ7−2,7
−3が途中終了した場合、途中終了したジョブステップ
7−2,7−3が入力に使用している一時ファイルであ
って、それを出力用に使用するジョブステップが正常終
了している一時ファイルは、一時ファイルXと一時ファ
イルYなので、それらに対応するデータ伝達用バッファ
5−1,5−2が主記憶上に確保され、送信データ復旧
部3により、永久ファイル8に格納されているデータ伝
達用バッファ5−1の全ての履歴データが抽出されてそ
の中のデータがデータ伝達用バッファ5−1に格納さ
れ、また永久ファイル8に格納されているデータ伝達用
バッファ5−1の全ての履歴データが抽出されてその中
のデータがデータ伝達用バッファ5−2に格納される。
そして、ジョブステップ7−2からジョブが再実行され
る。
【0048】以上本発明の実施例について説明したが、
本発明は以上の実施例にのみ限定されずその他各種の付
加変更が可能である。例えば、後続のジョブステップを
並列に実行すべき指示を直前のジョブステップ記述中に
1つのジョブステップ文($PARALLEL)として
挿入したが、ジョブステップ記述間に挿入するようにし
ても良い。また、後続のジョブステップ記述の先頭の$
STEP文中に直前のジョブステップとの同時実行を指
示するパラメータを挿入するようにしても良い。
本発明は以上の実施例にのみ限定されずその他各種の付
加変更が可能である。例えば、後続のジョブステップを
並列に実行すべき指示を直前のジョブステップ記述中に
1つのジョブステップ文($PARALLEL)として
挿入したが、ジョブステップ記述間に挿入するようにし
ても良い。また、後続のジョブステップ記述の先頭の$
STEP文中に直前のジョブステップとの同時実行を指
示するパラメータを挿入するようにしても良い。
【0049】
【発明の効果】以上説明した本発明のバッチジョブ実行
方式によれば、以下のような効果を得ることができる。
方式によれば、以下のような効果を得ることができる。
【0050】ジョブステップ間のデータ伝達用に、個々
のデータを独立してキューイング,デキューイングでき
る主記憶上のデータ伝達用バッファを使用したので、一
時ファイルを使用した場合のように先行するジョブステ
ップが全てのデータを出力した後に後続のジョブステッ
プがデータの読み出しを開始しなければならないような
制約がなくなり、先行するジョブステップが個々の処理
済データを出力する毎に、その処理済データを後続のジ
ョブステップが読み込むことができ、複数のジョブステ
ップを実質的に同時に並行して動作させることが可能と
なる。これにより、バッチジョブ全体の実行時間を短縮
することができる。
のデータを独立してキューイング,デキューイングでき
る主記憶上のデータ伝達用バッファを使用したので、一
時ファイルを使用した場合のように先行するジョブステ
ップが全てのデータを出力した後に後続のジョブステッ
プがデータの読み出しを開始しなければならないような
制約がなくなり、先行するジョブステップが個々の処理
済データを出力する毎に、その処理済データを後続のジ
ョブステップが読み込むことができ、複数のジョブステ
ップを実質的に同時に並行して動作させることが可能と
なる。これにより、バッチジョブ全体の実行時間を短縮
することができる。
【0051】一時ファイルの代わりに主記憶上のデータ
伝達用バッファを使用すると、障害発生時等のデータ消
失が問題となるが、送信データ退避部を備える構成で
は、プロセスの動作と並行してデータ伝達用バッファの
内容の履歴を永久ファイルに退避するので、データ消失
を防止できる。そして、送信データ復旧部を備える構成
では、途中終了したジョブステップが入力用に使用する
一時ファイルに対応するデータ伝達用バッファの内容を
主記憶上に復元することができ、ジョブの再実行に要す
る時間を短縮することができる。
伝達用バッファを使用すると、障害発生時等のデータ消
失が問題となるが、送信データ退避部を備える構成で
は、プロセスの動作と並行してデータ伝達用バッファの
内容の履歴を永久ファイルに退避するので、データ消失
を防止できる。そして、送信データ復旧部を備える構成
では、途中終了したジョブステップが入力用に使用する
一時ファイルに対応するデータ伝達用バッファの内容を
主記憶上に復元することができ、ジョブの再実行に要す
る時間を短縮することができる。
【図1】本発明の一実施例のブロック図である。
【図2】ジョブステップ7−1〜7−3の処理例の説明
図である。
図である。
【図3】ジョブステップ7−1〜7−3のJCL記述例
を示す図である。
を示す図である。
【図4】ジョブステップ7−1の処理の一例を示すフロ
ーチャートである。
ーチャートである。
【図5】ジョブステップ7−2の処理の一例を示すフロ
ーチャートである。
ーチャートである。
【図6】ジョブステップ7−3の処理の一例を示すフロ
ーチャートである。
ーチャートである。
【図7】ステップ並列実行管理部のジョブ管理手段の処
理例を示すフローチャートである。
理例を示すフローチャートである。
【図8】制御テーブルの内容例を示す図である。
【図9】データ伝達用バッファ5−1〜5−3の構成例
を示すブロック図である。
を示すブロック図である。
【図10】送信データ管理部のファイルオープン要求時
の処理例を示すフローチャートである。
の処理例を示すフローチャートである。
【図11】送信データ管理部のファイルクローズ要求時
の処理例を示すフローチャートである。
の処理例を示すフローチャートである。
【図12】送信データ管理部のデータ出力要求時の処理
例を示すフローチャートである。
例を示すフローチャートである。
【図13】送信データ管理部のデータ入力要求時の処理
例を示すフローチャートである。
例を示すフローチャートである。
【図14】送信データ退避部の処理例を示すフローチャ
ートである。
ートである。
【図15】永久ファイルの内容例を示す図である。
【図16】リスタート制御部の処理例を示すフローチャ
ートである。
ートである。
【図17】送信データ復旧部の処理例を示すフローチャ
ートである。
ートである。
1…送信データ管理部 2…送信データ退避部 3…送信データ復旧部 4…ステップ並列実行管理部 5−1〜5−3…データ伝達用バッファ 6−1〜6−3…プロセス 7…バッチジョブ 7−1〜7−3…ジョブステップ 8…永久ファイル 9…データ管理部 10…リスタート制御部 11…ジョブ管理手段 12…プロセス管理手段 13…制御テーブル
Claims (3)
- 【請求項1】 複数個のデータを処理して個々のデータ
毎の処理済データを順次に一時ファイルに出力する第1
のジョブステップと、前記一時ファイルから個々の処理
済データを順次に入力して処理する第2のジョブステッ
プとを含むバッチジョブの実行方式において、 前記第1のジョブステップと前記第2のジョブステップ
とにそれぞれ別々のプロセスを割り当てて並行して動作
させるステップ並列実行管理部と、 前記一時ファイルの代わりに主記憶上に設けられた先入
れ先出し形式のデータ伝達用バッファと、 前記第1のジョブステップに割り当てられたプロセスか
ら前記一時ファイルに対する書き込み要求があったとき
に出力データを前記データ伝達用バッファに順次にキュ
ーイングし、前記第2のジョブステップに割り当てられ
たプロセスから前記一時ファイルに対する読み込み要求
があったときに前記データ伝達用バッファにキューイン
グされたデータを順次に取り出して前記第2のジョブス
テップに割り当てられたプロセスに伝達する送信データ
管理部とを備えることを特徴とするバッチジョブ実行方
式。 - 【請求項2】 前記データ伝達用バッファの内容の履歴
を前記プロセスの動作と並行して永久ファイルに退避す
る送信データ退避部を備えることを特徴とする請求項1
記載のバッチジョブ実行方式。 - 【請求項3】 障害発生等の原因によりジョブの実行が
停止した後、途中終了したジョブステップの先頭からジ
ョブを再実行する際、途中終了したジョブステップが入
力に使用していた一時ファイルであって正常終了したジ
ョブステップが出力に使用していた一時ファイルに対応
するデータ伝達用バッファの内容の履歴を前記永久ファ
イルから読み出し、前記正常終了したジョブステップが
出力した全てのデータを格納したデータ伝達用バッファ
を主記憶上に復元する送信データ復旧部を備えることを
特徴とする請求項2記載のバッチジョブ実行方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25871394A JPH0895810A (ja) | 1994-09-28 | 1994-09-28 | バッチジョブ実行方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25871394A JPH0895810A (ja) | 1994-09-28 | 1994-09-28 | バッチジョブ実行方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0895810A true JPH0895810A (ja) | 1996-04-12 |
Family
ID=17324065
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP25871394A Pending JPH0895810A (ja) | 1994-09-28 | 1994-09-28 | バッチジョブ実行方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0895810A (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7197749B2 (en) * | 2000-12-19 | 2007-03-27 | Xerox Corporation | Method and system for executing batch jobs by delegating work to independent service providers |
| JP2008234024A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | バッチ処理プログラム,バッチ処理方法及びバッチ処理装置 |
| JP2009087119A (ja) * | 2007-10-01 | 2009-04-23 | Hitachi Ltd | 操作支援プログラム |
| JP2011039595A (ja) * | 2009-08-06 | 2011-02-24 | Nec Corp | ジョブ実行装置、ジョブ実行方法およびジョブ実行プログラム |
| WO2013066010A1 (ko) * | 2011-10-31 | 2013-05-10 | 에스케이씨앤씨 주식회사 | 대용량 배치처리를 위한 메모리 선적재 및 병렬처리 방법 |
| JP2015095134A (ja) * | 2013-11-13 | 2015-05-18 | 株式会社エクサ | 画面連携プログラム、画面連携システム |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6345640A (ja) * | 1986-08-12 | 1988-02-26 | Nippon Telegr & Teleph Corp <Ntt> | プロセス制御方式 |
| JPH04276831A (ja) * | 1991-03-04 | 1992-10-01 | Fujitsu Ltd | メッセージ通信ベースのデータ処理装置 |
-
1994
- 1994-09-28 JP JP25871394A patent/JPH0895810A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6345640A (ja) * | 1986-08-12 | 1988-02-26 | Nippon Telegr & Teleph Corp <Ntt> | プロセス制御方式 |
| JPH04276831A (ja) * | 1991-03-04 | 1992-10-01 | Fujitsu Ltd | メッセージ通信ベースのデータ処理装置 |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7197749B2 (en) * | 2000-12-19 | 2007-03-27 | Xerox Corporation | Method and system for executing batch jobs by delegating work to independent service providers |
| JP2008234024A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | バッチ処理プログラム,バッチ処理方法及びバッチ処理装置 |
| JP2009087119A (ja) * | 2007-10-01 | 2009-04-23 | Hitachi Ltd | 操作支援プログラム |
| JP2011039595A (ja) * | 2009-08-06 | 2011-02-24 | Nec Corp | ジョブ実行装置、ジョブ実行方法およびジョブ実行プログラム |
| WO2013066010A1 (ko) * | 2011-10-31 | 2013-05-10 | 에스케이씨앤씨 주식회사 | 대용량 배치처리를 위한 메모리 선적재 및 병렬처리 방법 |
| JP2015095134A (ja) * | 2013-11-13 | 2015-05-18 | 株式会社エクサ | 画面連携プログラム、画面連携システム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS58151655A (ja) | 情報処理装置 | |
| JP3335352B2 (ja) | アウトオブオーダジョブ処理方法および装置 | |
| GB2348306A (en) | Batch processing of tasks in data processing systems | |
| JPH02120924A (ja) | データ入出力制御方式 | |
| JP6508382B1 (ja) | 情報処理装置、情報処理方法、プログラム | |
| US8930680B2 (en) | Sync-ID for multiple concurrent sync dependencies in an out-of-order store queue | |
| JPH0895810A (ja) | バッチジョブ実行方式 | |
| EP0851352B1 (en) | Input/output control device and method applied to fault-resilient computer system | |
| JP2814683B2 (ja) | 命令処理装置 | |
| JP2671160B2 (ja) | 例外処理方式 | |
| JP5212216B2 (ja) | ジョブ処理装置 | |
| JP2575761B2 (ja) | ジョブ管理方法 | |
| JPH01126738A (ja) | 多重ジョブの実行におけるデータセット競合制御方式 | |
| EP0290533B1 (en) | I/o system for off-loading operating system functions | |
| US6345312B1 (en) | Selectively dummying a data pipe transparent to a writer application | |
| JPS6361693B2 (ja) | ||
| CN120803736A (zh) | 内存拷贝方法、系统、电子设备及存储介质 | |
| JPH10161915A (ja) | 後発ジョブ優先の排他制御を実現するデータ引き継ぎ方法 | |
| JPS6052453B2 (ja) | コンピユ−タシステムに関するプロセス制御ブロツク | |
| JPS59163647A (ja) | タスク管理方法 | |
| JPH11272478A (ja) | 同期転送制御方式 | |
| JP2966431B2 (ja) | 情報処理装置におけるファイル領域クリア方法 | |
| JPH01222335A (ja) | マルチタスク処理方式 | |
| JPS60167037A (ja) | エミュレーション方法 | |
| JPS59151242A (ja) | デ−タ駆動型計算機の待ち行列制御方式 |