JP4776571B2 - 実行制御プログラム,実行制御方法及び実行制御装置 - Google Patents

実行制御プログラム,実行制御方法及び実行制御装置 Download PDF

Info

Publication number
JP4776571B2
JP4776571B2 JP2007069165A JP2007069165A JP4776571B2 JP 4776571 B2 JP4776571 B2 JP 4776571B2 JP 2007069165 A JP2007069165 A JP 2007069165A JP 2007069165 A JP2007069165 A JP 2007069165A JP 4776571 B2 JP4776571 B2 JP 4776571B2
Authority
JP
Japan
Prior art keywords
job
job step
executed
pipe
steps
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.)
Expired - Fee Related
Application number
JP2007069165A
Other languages
English (en)
Other versions
JP2008234024A (ja
Inventor
厚人 廣瀬
森  正明
俊弘 鈴木
一範 小橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007069165A priority Critical patent/JP4776571B2/ja
Priority to US12/037,327 priority patent/US20080229314A1/en
Publication of JP2008234024A publication Critical patent/JP2008234024A/ja
Application granted granted Critical
Publication of JP4776571B2 publication Critical patent/JP4776571B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、バッチ処理を高速に実行し、且つ、安定稼動させる技術に関する。
近年、携帯電話やRFID(Radio Frequency Identification)などのオンライン端末の増加により、オンライン処理のデータが増加している。そして、これに伴い、これらのデータのバッチ処理に要する時間が長くなってきている。かかるバッチ処理に要する時間を短縮化させるべく、バッチ処理を高速に実行し、且つ、安定稼動させる技術として、特開平8−95810号公報に記載された技術のように、バッチジョブのジョブステップ間でデータの受け渡しを行なうときに、あるジョブステップで出力されたデータを、一時ファイルを用いずに次のジョブステップに渡すパイプ処理が採用されている。かかるパイプ処理では、キャッシュメモリなどで実現されるデータ受け渡し手段としてのパイプを用いてジョブステップ同士をパイプ結合し、ジョブステップ間で高速にデータの受け渡しを行なうことができる。
特開平8−95810号公報
しかしながら、従来のパイプ処理では、パイプ結合されたジョブステップ、即ち、パイプを用いてデータの受け渡しを行なうジョブステップを同時に全て実行させる必要があるため、多くのジョブステップからなるバッチジョブを処理する場合には、コンピュータの処理能力を超える数のプロセスを実行させなければならない事態が生じていた。そして、このようにコンピュータの処理能力を超える数のプロセスを実行させてしまうと、CPU不足及びメモリ使用量が最大値を超えることによるスワップの増加が原因で、パイプ処理を行なわないときよりも逆に処理効率が低下し、また、その動作が不安定なものとなっていた。このため、ジョブステップの数がコンピュータで同時に実行させることができる上限プロセス数を超えるバッチジョブに対しては、かかるパイプ処理の技術を実用上適用できないという問題があった。
そこで、本発明では、多くのジョブステップからなるバッチジョブであっても、コンピュータの処理能力の範囲内で高速に実行し、且つ、安定稼動させることを目的とする。
このため、本発明においては、コンピュータが、バッチ定義ファイルを読み込み、バッチジョブ定義ファイルにおいてパイプ処理対象として定義されたジョブステップの数が、同時に実行させることが可能な上限プロセス数を超えるか否かを判定する。そして、ジョブステップの数が上限プロセス数を超えると判定されたときに、パイプ処理対象として定義された連続するジョブステップを、上限プロセス数を上限とした数ごとに分割し、分割により同一の区分とされたジョブステップ間のデータの受け渡しにパイプを用いる一方、異なる区分とされたジョブステップ間のデータの受け渡しには一時ファイルを用いてジョブステップを実行する。また、ジョブステップの数が上限プロセス数を超えないと判定されたときには、パイプ処理対象として定義された連続する全ての前記ジョブステップ間のデータの受け渡しにパイプを用いてジョブステップを実行する。
本発明によれば、パイプ処理対象となるジョブステップの数が上限プロセス数を超えないときには、従来どおりパイプ処理対象となるジョブステップ全てについてパイプ結合される一方、ジョブステップの数が上限プロセス数を超えるときには、次のような処理が行なわれる。即ち、連続したジョブステップが、上限プロセス数を超えない数ごとに分割され、分割により同一の区分とされたジョブステップ間だけがパイプ結合される。そして、異なる区分とされたジョブステップ間では、一時ファイルを用いてデータの受け渡しが行なわれて、ジョブステップが実行される。このため、ジョブステップ間のデータの受け渡しにおいてパイプと一時ファイルとが併用され、サーバで同時に実行させることが可能なプロセス数の範囲内でのみジョブステップがパイプ結合されることで、パイプ処理による高速な処理速度を生かしつつ、コンピュータの処理能力を考慮にいれた処理を行なうことができ、バッチ処理の高速性と安定性の両方が実現される。
以下、添付された図面を参照して本発明を詳述する。
図1は、本発明を具現化したバッチ処理装置の機能概要を示す。このバッチ処理装置は、少なくとも中央処理装置(CPU)、メモリを備えたコンピュータで構成され、バッチジョブ定義ファイル(以下、JCL(Job Control Language)という)10と,入力ファイル100からデータを入力する入力部20と,バッチジョブの実行制御を行なう実行制御部30と,バッチジョブの実行結果としてのデータを出力ファイル200に出力する出力部40と,コンピュータで同時に実行させることが可能な上限プロセス数、即ち、パイプ結合することが可能なジョブステップ数を保持する上限プロセス数テーブル50と,を含んで構成される。
実行制御部30は、バッチジョブを受け付け、JCL10を読み込むと、JCL10に定義された制御文に従い、入力部20により入力されたデータを用いてバッチジョブを実行する。このとき、実行制御部30は、まず上限プロセス数テーブル50の上限プロセス数を参照する。なお、上限プロセス数テーブル50の上限プロセス数は、サーバの稼動状況に応じて動的に書き換えられる値であり、メモリなどに保持されている。そして、実行制御部30は、JCL10においてパイプ処理を行なうべく定義された連続するジョブステップ、即ち、パイプ処理対象となるジョブステップの数が上限プロセス数を超えているときには、連続するジョブステップを、上限プロセス数を上限とした数を1区分として分割し、分割により同じ区分とされたジョブステップ間のデータの受け渡しにパイプを用いる。一方、異なる区分とされたジョブステップ間のデータの受け渡しには一時ファイルを用いてジョブステップを実行する。また、パイプ処理対象となるジョブステップの数が上限プロセス数を超えないときには、これらのジョブステップ全てのデータの受け渡しにパイプを用い、ジョブステップを実行する。そして、出力部40では、かかるバッチジョブの実行結果としてのデータを出力ファイル200に出力する。なお、実行制御部30が、読込手段,読込工程,判定手段,判定工程,第1の実行手段,第1の実行工程,第2の実行手段及び第2の実行工程に相当する。
次に、かかる処理の流れについて、具体例を用いて説明する。
例えば、JCL10に、図2に示すような定義がなされているとする。このJCL10は、パイプ処理の制御を開始する制御文(2行目)と、パイプ処理の制御を終了する制御文(9行目)と、の間のジョブステップ、即ち、ジョブステップ2(3行目の「Step2」)からジョブステップ7(8行目の「Step7」)までの6つのジョブステップについて、パイプ処理制御を行なうものである。また、上限プロセス数テーブル50には、上限プロセス数として「3」が設定されているとする。このとき、実行制御部30では、バッチジョブを受け付けると、JCL10及び上限プロセス数テーブル50に基づき、図3に示すような処理を行なう。即ち、入力部20により入力ファイルから入力されたデータを用いてパイプ処理対象外のジョブステップ1を実行し、ジョブステップ2に渡すデータを一時ファイルに格納する(フェーズ1)。ここで、パイプ処理対象となるジョブステップが6つであり、上限プロセス数である3つを超えているため、パイプ処理対象のジョブステップ2からジョブステップ7のうち、上限プロセス数テーブル50に設定された上限プロセス数である3つまでのジョブステップ、即ち、ジョブステップ2からジョブステップ4を1区分として分割し、これらのジョブステップ間のデータの受け渡しにパイプを用いる。そして、ジョブステップ4及びジョブステップ5は異なる区分となるため、一時ファイルを用いてデータを受け渡しする(フェーズ2)。同様に、ジョブステップ5からジョブステップ7までを1区分として分割してこれらをパイプ結合し、ジョブステップ7及びジョブステップ8の間では、一時ファイルを用いてデータを受け渡しする(フェーズ3)。そして、パイプ処理対象外のジョブステップ8を実行し、出力部40では、実行結果のデータを出力ファイル200に出力する(フェーズ4)。
また、図2に示すJCL10の例の場合、上限プロセス数が6以上であるとき、即ち、パイプ処理対象となるジョブステップの数が上限プロセス数を超えないときには、パイプ処理対象となるジョブステップ2からジョブステップ7までの全てをパイプ結合し、データの受け渡しにパイプを用いることとなる。
ここで、一時ファイル及びパイプとジョブステップの入出力との関連付けについて説明する。実行制御部30では、前述のようにJCL10及び上限プロセス数テーブル50に基づいて、各ジョブステップの入力及び出力を一時ファイルにするかパイプにするかについて決定すると、当該ジョブステップについてJCL10で予め定義された入力対象名及び出力対象名で、一時ファイル又はパイプを生成する。一方、ジョブステップを実行するプロセスにおいては、ジョブステップと、かかる入力対象名及び出力対象名とを環境変数としてとして関連付けることで、一時ファイル又はパイプとの入出力が可能となる。
例えば、前述の図3に示す処理の場合、実行制御部30では、ジョブステップ2からジョブステップ4、ジョブステップ5からジョブステップ7を夫々パイプ結合する。ここで、ジョブステップ2に着目すると、ジョブステップ2は、入力が一時ファイル、出力がパイプとなる。図4は、かかるジョブステップ2における関連付けの具体例についての説明図である。ここで、ジョブステップ2について、JCL10に、入力対象名及び出力対象名について夫々「tmp01.dat」及び「tmp02.dat」と定義されているとする(3行目)。実行制御部30では、かかるJCL10の定義に基づき、ジョブステップ2の実行前に、ジョブステップ2の入力のための一時ファイル60を「tmp01.dat」として、出力のためのパイプ70を「tmp02.dat」として、夫々生成する。一方、実行制御部30は、ジョブステップ2を実行するプロセスに対し、その制御設定として、環境変数の入力対象名及び出力対象名を夫々「tmp01.dat」及び「tmp02.dat」と設定させる。このようにすれば、ジョブステップ2の具体的な処理を行なう利用者処理において、かかる環境変数により関連付けられた一時ファイル60及びパイプ70を用いて処理をすることができる。
また、JCL10にこのような入力対象名及び出力対象名が定義されていない場合であっても、実行制御部30においてジョブステップの実行時に適宜決定した入力対象名及び出力対象名で一時ファイル又はパイプを生成し、一般的なオペレーションシステムが実装しているジョブステップの入出力制御機能を介して、ジョブステップの利用者処理における入出力とこれらの一時ファイル又はパイプとを関連付けることも可能である。
以下、実行制御部30で実行される処理について詳細に説明する。
図5は、実行制御処理の内容を示す。なお、この処理は、実行制御部30においてバッチジョブを受け付けたとき、即ち、JCL10を読み込んだときに実行される。
ステップ1(図では「S1」と略記する。以下同様)では、読み込んだJCL10を解析し、当該バッチジョブの全ジョブステップ数sを算出する。なお、ステップ1が、読込手段及び読込工程に相当する。
ステップ2では、上限プロセス数テーブル50から、上限プロセス数mを読み込む。
ステップ3では、何番目のジョブステップであるかを示すジョブステップ番号xに1を設定する。
ステップ4では、JCL10において、「x番目のジョブステップであるジョブステップ[x](以下同様)の前に、パイプ処理の制御を開始する制御文があり、且つ、ジョブステップ[x]の後にパイプ処理の制御を終了する制御文がある」条件を満たすか否かを判定する。この条件を満たすときにはステップ5に進み(Yes)、この条件を満たさないときにはステップ10に進む(No)。
ステップ5では、JCL10において、パイプ処理の制御を開始する制御文及びパイプ処理の制御を終了する制御文の間に定義されているパイプ結合ジョブステップ数nを算出する。
ステップ6では、上限プロセス数mがパイプ結合ジョブステップ数nより小さいか否かを判定する。上限プロセス数mがパイプ結合ジョブステップ数nより小さければステップ7に進み(Yes)、上限プロセス数mがパイプ結合ジョブステップ数nと同じかパイプ処理ジョブステップ数nより大きければステップ8に進む(No)。なお、ステップ6が、判定手段及び判定工程に相当する。
ステップ7では、分割パイプ結合処理のサブルーチンをコールする。このとき、上限プロセス数m及びパイプ結合ジョブステップ数nを引数としてサブルーチンに渡す。
ステップ8では、全パイプ結合処理のサブルーチンをコールする。このとき、上限プロセス数m及びパイプ結合ジョブステップ数nを引数としてサブルーチンに渡す。
ステップ9では、ジョブステップ番号xを、パイプ処理ジョブステップ数nだけインクリメントする。
ステップ10では、ジョブステップ[x]を実行する。
ステップ11では、ジョブステップ番号xをインクリメントする。
ステップ12では、ジョブステップ番号xが、全ジョブステップ数sより大きいか否かを判定する。ジョブステップ番号xが、全ジョブステップ数sより大きければ処理を終了し(Yes)、ジョブステップ番号xが、全ジョブステップ数sと等しいか全ジョブステップ数sより小さければステップ4に戻る(No)。
図6及び図7は、実行制御処理でコールされる分割パイプ結合処理のサブルーチンの処理内容を示す。この分割パイプ結合処理は、JCL10に定義されたパイプ処理対象となるジョブステップ数が、上限プロセス数を超えているときに行われるものである。なお、このとき、実行制御処理から上限プロセス数m及びパイプ結合ジョブステップ数nを引数として受け取る。
ステップ21では、分割パイプ結合処理において何番目のジョブステップであるかを示すパイプ結合ジョブステップ番号yに1を設定する。
ステップ22では、分割パイプ結合処理において同時に実行しているジョブステップの数としてのプロセス数を示すプロセス番号iに1を設定する。
ステップ23では、上限プロセス数mが1であるか否かを判定する。上限プロセス数mが1でないときにはステップ24に進み(Yes)、上限プロセス数mが1であるときにはステップ33に進む(No)。
ステップ24では、プロセス番号iが1であるか否かを判定する。プロセス番号iが1でないときにはステップ25に進み(Yes)、プロセス番号iが1であるときにはステップ30に進む(No)。
ステップ25では、プロセス番号iが上限プロセス数mと異なるか否かを判定する。プロセス番号iが上限プロセス数mと異なるときには、ステップ26に進み(Yes)、プロセス番号iが上限プロセス数mと等しいときには、ステップ29に進む(No)。
ステップ26では、パイプ結合ジョブステップ数nがパイプ結合ジョブステップ番号yと異なるか否かを判定する。パイプ結合ジョブステップ数nがパイプ結合ジョブステップ番号yと異なるときには、ステップ27に進み(Yes)、パイプ結合ジョブステップ数nがパイプ結合ジョブステップ番号yと等しいときには、ステップ28に進む(No)。
ステップ27では、ジョブステップ[y]をプロセス[i]で実行する。このとき、パイプからデータを入力し、パイプにデータを出力する。
ステップ28では、ジョブステップ[y]をプロセス[i]で実行する。このとき、パイプからデータを入力し、一時ファイルにデータを出力する。
ステップ29では、ジョブステップ[y]をプロセス[i]で実行する。このとき、パイプからデータを入力し、一時ファイルにデータを出力する。
ステップ30では、パイプ結合ジョブステップ数nがパイプ結合ジョブステップ番号yと異なるか否かを判定する。パイプ結合ジョブステップ数nがパイプ結合ジョブステップ番号yと異なるときには、ステップ31に進み(Yes)、パイプ結合ジョブステップ数nがパイプ結合ジョブステップ番号yと等しいときには、ステップ32に進む(No)。
ステップ31では、ジョブステップ[y]をプロセス[i]で実行する。このとき、一時ファイルからデータを入力し、パイプにデータを出力する。
ステップ32では、ジョブステップ[y]をプロセス[i]で実行する。このとき、一時ファイルからデータを入力し、一時ファイルにデータを出力する。
ステップ33では、ジョブステップ[y]をプロセス[i]で実行する。このとき、一時ファイルからデータを入力し、一時ファイルにデータを出力する。
ステップ34では、パイプ結合ジョブステップ番号y及びプロセス番号iを夫々インクリメントする。
ステップ35では、「プロセス番号iが上限プロセス数mより大きいか、又は、パイプ結合ジョブステップ番号yがパイプ結合ジョブステップ数nより大きい」条件を満たすか否かを判定する。この条件を満たすときには、ステップ36に進み(Yes)、この条件を満たさないときには、ステップ23に戻る(No)。
ステップ36では、プロセス[1]〜プロセス[m]で実行されているジョブステップが全て終了するのを待ち合わせる。
ステップ37では、プロセス番号iが上限プロセス数mより小さいか又は上限プロセス数mと等しいか否かを判定する。プロセス番号iが上限プロセス数mより小さいか又は上限プロセス数mと等しいときには、ステップ38に進み(Yes)、プロセス番号iが上限プロセス数mより大きいときには、ステップ39に進む(No)。
ステップ38では、パイプ結合ジョブステップ番号yがパイプ結合ジョブステップ数nより大きいか否かを判定する。パイプ結合ジョブステップ番号yがパイプ結合ジョブステップ数nより大きいときには、分割パイプ結合処理を終了し(Yes)、パイプ結合ジョブステップ番号yがパイプ結合ジョブステップ数nと等しいかパイプ結合ジョブステップ数nより小さいときには、ステップ23に戻る(No)。
ステップ39では、プロセス番号iに1を設定する。
なお、分割パイプ結合処理が、第1の実行手段及び第1の実行工程に相当する。
図8は、実行制御処理でコールされる全パイプ結合処理のサブルーチンの処理内容を示す。この全パイプ結合処理は、JCL10に定義されたパイプ処理対象となるジョブステップ数が、上限プロセス数を超えないときに行われるものである。なお、このとき、制御処理から上限プロセス数m及びパイプ結合ジョブステップ数nを引数として受け取る。
ステップ41では、全パイプ結合処理において何番目のジョブステップであるかを示すパイプ結合ジョブステップ番号zに1を設定する。
ステップ42では、全パイプ結合処理において同時に実行しているジョブステップの数としてのプロセス数を示すプロセス番号jに1を設定する。
ステップ43では、上限プロセス数mが1と異なり、且つ、パイプ結合ジョブステップ数nが1と異なるか否かを判定する。上限プロセス数mが1と異なり、且つ、パイプ結合ジョブステップ数nが1と異なるときには、ステップ44に進み(Yes)、上限プロセス数mが1と等しいか、又は、パイプ結合ジョブステップ数nが1と等しいときには、ステップ50に進む(No)。
ステップ44では、ジョブステップ[z]をプロセス[j]で実行する。このとき、一時ファイルからデータを入力し、パイプにデータを出力する。
ステップ45では、パイプ結合ジョブステップ番号z及びプロセス番号jを夫々インクリメントする。
ステップ46では、パイプ結合ジョブステップ番号zがパイプ結合ジョブステップ数nより小さいか否かを判定する。パイプ結合ジョブステップ番号zがパイプ結合ジョブステップ数nより小さいときには、ステップ47に進み(Yes)、パイプ結合ジョブステップ番号zがパイプ結合ジョブステップ数nと等しいか、パイプ結合ジョブステップ数nより大きいときには、ステップ49に進む(No)。
ステップ47では、ジョブステップ[z]をプロセス[j]で実行する。このとき、パイプからデータを入力し、パイプにデータを出力する。
ステップ48では、パイプ結合ジョブステップ番号z及びプロセス番号jを夫々インクリメントする。
ステップ49では、ジョブステップ[z]をプロセス[j]で実行する。このとき、パイプからデータを入力し、一時ファイルにデータを出力する。
ステップ50では、ジョブステップ[z]をプロセス[j]で実行する。このとき、一時ファイルからデータを入力し、一時ファイルにデータを出力する。
なお、全パイプ結合処理が、第2の実行手段及び第2の実行工程に相当する。
かかる実行制御処理,分割パイプ処理及び全パイプ処理によれば、JCL10においてパイプ処理を行なうべく定義されたジョブステップを実行するときに、上限プロセス数テーブル50の上限プロセス数を参照し、パイプ処理対象となるジョブステップの数が上限プロセス数を超えているか否かを判定する。そして、ジョブステップの数が上限プロセス数を超えているときには、次の処理をする。即ち、連続するジョブステップのうち、上限プロセス数を上限とした数までのジョブステップを1区分として分割し、この区分内においてジョブステップを順次パイプ結合する。そして、パイプ結合したジョブステップのうち最後のジョブステップとその次のジョブステップとの間、即ち、異なる区分に分割されるジョブステップ間のデータの受け渡しには一時ファイルを用いる。一方、パイプ処理対象となるジョブステップの数が上限プロセス数を超えないときには、パイプ処理対象となるジョブステップ全てについて、データの受け渡しにパイプを用いてジョブステップを実行する。このように、ジョブステップ間のデータの受け渡しにおいてパイプと一時ファイルとが併用され、サーバで同時に実行させることが可能な上限プロセス数の範囲内でのみジョブステップがパイプ結合されることで、バッチ処理の高速性と安定性の両方が実現される。
なお、実行制御部30において、ジョブステップを実行する前に、JCL10と上限プロセス数テーブル50とに基づき、図9に示すように、各ジョブステップについて入出力を一時ファイル又はパイプのいずれで行なうかを定義した入出力テーブルを生成し、この入出力テーブルに従ってジョブステップを順次実行してもよい。
また、本実施例においてはパイプ処理について説明をしたが、パイプ処理と同様にバッチ処理の高速化を実現する技術として、同一のジョブステップを複数並列して実行する処理がある。かかる並列処理は、バッチジョブの入力データを所定のルールなどに従って分割し、分割したデータを用いてジョブステップを並列で実行するものである。
例えば、JCLに図10に示すような定義がなされているとする。このJCLは、データ分割の制御を行なう制御文(3行目から5行目)に定義されたルールに従って入力データを分割し、並列処理の制御を開始する制御文(2行目)と、パイプ処理の制御を終了する制御文(9行目)と、の間のジョブステップ、即ち、ジョブステップB(6行目の「StepB」)からジョブステップD(8行目の「StepD」)までのジョブステップについて、並列処理制御を行なうものである。なお、並列させる数については、JCLの実行命令において定義する。ここで、並列させる数を4とした場合、かかるJCLで定義されたジョブステップは、図11に示すように処理され、ジョブステップBからジョブステップDが、4つ並列で実行される。
かかる並列処理においても、前述のパイプ処理と同様に、コンピュータの処理能力を超える数のプロセスを実行してしまうと、処理効率が悪くなるという問題がある。そこで、サーバで同時に実行させることが可能な上限プロセス数の範囲内でのみ並列処理を行なうことで、バッチ処理の高速性と安定性の両方を実現することができる。
本発明を具現化したバッチ処理装置の機能概要図 パイプ処理のJCLの説明図 バッチ処理の説明図 ジョブステップと入出力ファイルの関連付けの説明図 実行制御処理を示すフローチャート 分割パイプ結合処理を示すフローチャート 分割パイプ結合処理を示すフローチャート 全パイプ結合処理を示すフローチャート ジョブステップの入出力テーブルの説明図 並列処理のJCLの説明図 並列処理の説明図
符号の説明
10 JCL
20 入力部
30 実行制御部
40 出力部
50 上限プロセス数テーブル
60 一時ファイル
70 パイプ
100 入力ファイル
200 出力ファイル

Claims (5)

  1. コンピュータに、
    並列で実行させる複数のジョブステップについて、ジョブステップ間でデータを受け渡すパイプ処理を定められた順序で実行させる指示を受けた場合に、前記複数のジョブステップのうち前記順序が連続する所定数以下のジョブステップ群を並列で実行するとともに、前記ジョブステップ群についてのパイプ処理を前記順序に応じて行い、
    前記ジョブステップ群の実行により、前記順序が前記ジョブステップ群の次のジョブステップに受け渡す出力データが生成された場合に、前記出力データを一時ファイルに記憶させる制御を行なうとともに、前記ジョブステップ群の実行を終了し、
    前記次のジョブステップを実行する場合に、前記一時ファイルに記憶された前記出力データを前記次のジョブステップの入力データに用いて、前記次のジョブステップを実行する、
    ことを実行させることを特徴とする実行制御プログラム。
  2. 前記所定数は、前記コンピュータの稼働状況に応じて定められる2以上の整数であることを特徴とする請求項1に記載の実行制御プログラム。
  3. 前記ジョブステップ群についてのパイプ処理を前記順序に応じて行う処理は、記憶手段に格納されたバッチジョブ定義ファイルに定義された各ジョブステップの入力対象名及び出力対象名を読み込み、該入力対象名及び出力対象名で、各ジョブステップにおけるデータの入出力に用いるパイプ又は一時ファイルを生成する一方、各ジョブステップを実行するプロセスにおける入力対象及び出力対象を示す環境変数に前記入力対象名及び出力対象名を設定することを特徴とする請求項1又は請求項2に記載の実行制御プログラム。
  4. コンピュータが、
    並列で実行させる複数のジョブステップについて、ジョブステップ間でデータを受け渡すパイプ処理を定められた順序で実行させる指示を受けた場合に、前記複数のジョブステップのうち前記順序が連続する所定数以下のジョブステップ群を並列で実行するとともに、前記ジョブステップ群についてのパイプ処理を前記順序に応じて行い、
    前記ジョブステップ群の実行により、前記順序が前記ジョブステップ群の次のジョブステップに受け渡す出力データが生成された場合に、前記出力データを一時ファイルに記憶させる制御を行なうとともに、前記ジョブステップ群の実行を終了し、
    前記次のジョブステップを実行する場合に、前記一時ファイルに記憶された前記出力データを前記次のジョブステップの入力データに用いて、前記次のジョブステップを実行する、
    ことを実行することを特徴とする実行制御方法。
  5. 並列で実行させる複数のジョブステップについて、ジョブステップ間でデータを受け渡すパイプ処理を定められた順序で実行させる指示を受けた場合に、前記複数のジョブステップのうち前記順序が連続する所定数以下のジョブステップ群を並列で実行するとともに、前記ジョブステップ群についてのパイプ処理を前記順序に応じて行い、
    前記ジョブステップ群の実行により、前記順序が前記ジョブステップ群の次のジョブステップに受け渡す出力データが生成された場合に、前記出力データを一時ファイルに記憶させる制御を行なうとともに、前記ジョブステップ群の実行を終了し、
    前記次のジョブステップを実行する場合に、前記一時ファイルに記憶された前記出力データを前記次のジョブステップの入力データに用いて、前記次のジョブステップを実行する実行制御部
    を含んで構成されたことを特徴とする実行制御装置。
JP2007069165A 2007-03-16 2007-03-16 実行制御プログラム,実行制御方法及び実行制御装置 Expired - Fee Related JP4776571B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007069165A JP4776571B2 (ja) 2007-03-16 2007-03-16 実行制御プログラム,実行制御方法及び実行制御装置
US12/037,327 US20080229314A1 (en) 2007-03-16 2008-02-26 Storage medium containing batch processing program, batch processing method and batch processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007069165A JP4776571B2 (ja) 2007-03-16 2007-03-16 実行制御プログラム,実行制御方法及び実行制御装置

Publications (2)

Publication Number Publication Date
JP2008234024A JP2008234024A (ja) 2008-10-02
JP4776571B2 true JP4776571B2 (ja) 2011-09-21

Family

ID=39763982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007069165A Expired - Fee Related JP4776571B2 (ja) 2007-03-16 2007-03-16 実行制御プログラム,実行制御方法及び実行制御装置

Country Status (2)

Country Link
US (1) US20080229314A1 (ja)
JP (1) JP4776571B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217405A (ja) * 2008-03-07 2009-09-24 Nec Corp ジョブネットワーク自動生成方式及びプログラム
JP5459613B2 (ja) * 2010-02-26 2014-04-02 日本電気株式会社 データ処理システム、データ処理方法およびデータ処理プログラム
US8839252B1 (en) 2010-09-01 2014-09-16 Misys Ireland Limited Parallel execution of batch data based on modeled batch processing workflow and contention context information
JP6048500B2 (ja) * 2012-07-05 2016-12-21 富士通株式会社 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
US10146567B2 (en) * 2014-11-20 2018-12-04 Red Hat Israel, Ltd. Optimizing virtual machine allocation to cluster hosts
JP6176380B2 (ja) * 2016-09-28 2017-08-09 富士通株式会社 情報処理装置、方法、及びプログラム
KR102326490B1 (ko) * 2020-03-25 2021-11-15 주식회사 티맥스 소프트 스텝 입출력 데이터 셋 파이프라이닝
CN113807710B (zh) * 2021-09-22 2023-06-20 四川新网银行股份有限公司 一种***批量任务分段并行及动态调度方法及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0833799B2 (ja) * 1988-10-31 1996-03-29 富士通株式会社 データ入出力制御方式
JP3268338B2 (ja) * 1992-04-22 2002-03-25 株式会社日立製作所 計算機システム
JP3181994B2 (ja) * 1992-09-03 2001-07-03 株式会社日立製作所 ジョブフロー仕様書自動作成方法
JPH0895810A (ja) * 1994-09-28 1996-04-12 Nec Corp バッチジョブ実行方式
JP3518034B2 (ja) * 1995-03-30 2004-04-12 三菱電機株式会社 ソート方法並びにソート処理装置並びにデータ処理装置
US6889243B1 (en) * 1995-04-13 2005-05-03 Hitachi, Ltd. Job scheduling analysis method and system using historical job execution data
JP3755165B2 (ja) * 1995-06-22 2006-03-15 富士通株式会社 並列処理手続き選定装置及び方法
US5768594A (en) * 1995-07-14 1998-06-16 Lucent Technologies Inc. Methods and means for scheduling parallel processors
JP3461636B2 (ja) * 1995-10-24 2003-10-27 富士通株式会社 データ処理装置
JPH10161915A (ja) * 1996-11-29 1998-06-19 Hitachi Ltd 後発ジョブ優先の排他制御を実現するデータ引き継ぎ方法
JPH11120040A (ja) * 1997-10-20 1999-04-30 Fujitsu Ltd 並列処理手続きの効果予測方法とそのための記録媒体
JP4536833B2 (ja) * 1998-03-12 2010-09-01 新日鉄ソリューションズ株式会社 金融情報処理システム
JP3788697B2 (ja) * 1998-11-18 2006-06-21 富士通株式会社 メッセージ制御装置
JP2004303096A (ja) * 2003-03-31 2004-10-28 Fujitsu Ltd ジョブ管理方法、ジョブ管理装置、ジョブ管理プログラム
US7385714B2 (en) * 2003-04-04 2008-06-10 Hewlett-Packard Development Company, L.P. Optimizing raster image processing pipeline data throughput
US8055753B2 (en) * 2003-06-11 2011-11-08 International Business Machines Corporation Peer to peer job monitoring and control in grid computing systems
EP1731999B1 (de) * 2005-06-08 2007-06-20 Ubs Ag Mechanismus zum dynamischen Registrieren von Dateien in einer stapelverarbeitungsorientierten Umgebung
GB2443136B (en) * 2005-08-22 2011-04-13 Ns Solutions Corp Information processing system
US7487179B2 (en) * 2006-01-31 2009-02-03 International Business Machines Corporation Method and program product for automating the submission of multiple server tasks for updating a database

Also Published As

Publication number Publication date
JP2008234024A (ja) 2008-10-02
US20080229314A1 (en) 2008-09-18

Similar Documents

Publication Publication Date Title
JP4776571B2 (ja) 実行制御プログラム,実行制御方法及び実行制御装置
WO2010058728A1 (ja) 表示装置、プログラム及び表示方法
CN101957745A (zh) 梯形图语言转换为结构文本语言的方法
JP2017117204A (ja) プロセッサ、再構成可能回路の制御方法及びプログラム
US8069333B2 (en) Converting logical to real number to access shared configuration information in event driven state transiting reconfigurable system
CN111158756B (zh) 用于处理信息的方法和装置
CN105210038B (zh) 核亲和性位掩码变换
Shen et al. An iterative approach for the serial batching problem with parallel machines and job families
WO2021179411A1 (zh) 面向量子计算的数据交互设备、方法、装置及介质
CN100507842C (zh) 控制界面上控件之间关系的方法、装置及控件显示***
JPS62208167A (ja) ベクトル処理装置
KR20210098508A (ko) 칩 동작 주파수의 설정
JP2008090455A (ja) マルチプロセッサ信号処理装置
CN103309831A (zh) 数据传输装置和数据传输方法
CN102063308B (zh) 一种用于地震勘探资料处理流程控制的方法
WO2017204139A1 (ja) データ処理装置、データ処理方法、およびプログラム記録媒体
CN103077069B (zh) 指令解析的方法及装置
CN112905238A (zh) 一种区块链智能合约执行器及方法、区块链运行***
CN116325703A (zh) 一种数据格式处理方法和装置
JP5907607B2 (ja) 処理配置方法及びプログラム
JP4540556B2 (ja) データアクセス方法及びそのプログラム
JP7393519B2 (ja) 演算装置及び演算方法
CN105630789A (zh) 一种查询计划转化方法及装置
KR101709210B1 (ko) 링 버퍼를 이용한 인터페이스 방법
US20230394132A1 (en) Post-tapeout reconfigurable device for determining whether or not a job received by the device is permissible for execution

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110607

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110610

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110628

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110628

R150 Certificate of patent or registration of utility model

Ref document number: 4776571

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees