ジョブを分割して同時に実行する、ジョブを先行/後続関係に基づいて実行する

By 神居 - Posted: 2016/11/24 Last updated: 2016/12/03 - Leave a Comment

ジョブを分割して同時に実行する、ジョブを先行/後続関係に基づいて実行する(z/OS V2.2からのJES2の新たなジョブ・スケジューリング機能③)

z/OSでは、IMSやCICSなどのサブシステムを利用したオンライン・トランザクション処理やTSO配下でのISPFによる対話型処理を除けば、アプリケーションやユーティリティー・プログラムはジョブを定義してスケジュール(サブミット)することでバッチ・ジョブとして実行されます。これはバッチ処理と呼ばれる、メインフレーム・コンピューターに於ける最も基本となる処理形態です。ジョブはJCLによって記述され、1つのジョブは、実行するプログラムとそのプログラムが使用するデータを定義したジョブ・ステップで構成され、ジョブ内のジョブ・ステップは定義された順に上から下に向かって1つずつ順番に実行されます。
同時に数多くのジョブが並行して処理されるMVS(z/OS)オペレーティング・システムでは、JES(*1)を併用したジョブ管理が行われるのが基本で、特に日本国内では大多数のz/OSユーザーがJESとしてJES2を利用しています。JES2に於いては、ジョブ内の各ステップは実行順序が保証されますが、各々のジョブ間では実行順序に依存性はなく(*2)、ジョブ・クラスに対応したイニシエーターが空き次第、次から次へと実行されます。JES2は、CPU(プログラムを実行するイニシエーター空間)や印刷出力を行うハードウェア装置としてのプリンターなどのシステム資源に無駄な遊休時間が生じぬよう、ジョブを次から次へと実行し、帳票データとしてのSYSOUTデータセットの内容を次から次へとプリンターから書き出す、というジョブ・スケジューリングを行います。

*1 Job Entry Subsystem:ジョブ入力サブシステムのこと。入力サブシステムとなっているが、実際にはジョブの入力から実行と出力までの一連のジョブ処理サイクルを効率良く管理しスケジュールする。
*2 ジョブAが終わったらジョブBとジョブCを実行する、といった実行順序に基づく依存性の制御はJES2では行えない。


JECの機能を利用すれば、これまでなら並列実行可能なステップがあっても後続ステップの関係で同じジョブ内で順番に実行せざるを得なかった処理や、大量のデータを複数ジョブに分割して実行したいが、そのプログラムの出力を入力にする後続処理があって単純に分割できなかった処理などが、JES2の機能だけでこれまで以上にバッチ処理のスループット(*4)を上げるような運用ができるようになりました。

*4 単位時間あたりの生産性もしくは処理能力のこと。バッチ処理ではスループットが重要視され、反対にオンライン処理では、個々のトランザクション処理のレスポンス・タイムが重要視される。

Posted in オペレーション・運用 • • Top Of Page