Web教材一覧ハードウェアとソフトウェアOS

ジョブ管理

キーワード

ジョブ、ジョブステップ、ジョブ管理、スケジューリング、マスタスケジューラ、ジョブスケジューラ、リーダ、イニシエータ、ターミネータ、ライタ、スプーリング、JCL、cron


ジョブ管理

ジョブ管理を理解するには、汎用コンピュータや大規模サーバの設置環境を例にするのがよいでしょう。そのような環境では、販売システムや人事システムなどの定例業務がバッチ処理で行われるジョブも多くあります。
 このような環境ではコンピュータ室に専任のオペレータがおり、ジョブ実行のスケジュール指示や必要な機器の取付、大量印刷書類の取出しなどコンピュータの稼働を管理しています。そして、ジョブ実行の状況は専用のモニタ(コンソール、操作卓)に表示され、オペレータはそれを監視し、必要に応じてコンピュータ(OS)に指示を与えています。
 ジョブ管理とは、オペレータ支援機能だともいえます。

ジョブとジョブステップ

ジョブとは、利用者あるいはプログラムの視点でのコンピュータに行わせる仕事の単位です。
 給与処理のバッチ処理を例にしましょう。勤怠ファイルの作成(残業時間や特別作業時間など)、給与マスタファイルとの突合せによる給与計算、給与明細の印刷などのプログラムを、一連の処理として、コンピュータに処理させます。これがジョブです。そして、個々のプログラム処理をジョブステップといいます。
 なお、コンピュータ、特にOSの視点での仕事の単位をタスクあるいはプロセスといいます。

ジョブ管理

ジョブ管理とは、オペレータ(利用者)からの指示による多数のジョブやジョブステップ(以降、明示しない限りジョブといいます)の実行を管理するOSの機能です。
 ジョブ管理の目的には、
   重要なジョブを期限時刻までに処理すること
   全体のジョブを公平な期限時刻までに処理すること
   異常終了などの特記事項を報告すること
   オペレータの作業を自動化して負荷を削減すること
などがあります。


ジョブ管理の体系

マスタスケジューラ

マスタスケジューラは、ジョブスケジューラより上位の制御をするプログラムです。オペレータからの指示をジョブスケジューラに伝えたり、ジョブスケジューラからの状況報告をオペレータに伝えたりします。

ジョブスケジューラ

ジョブ管理の中核機能であり、リーダ、イニシエータ、ターミネータ、ライタのサブ機能をもち、次のような順序でジョブを処理します。

ジョブスケジューラの機能は規模により違いがあります。

リーダ

ジョブ読み取りプログラムです。オペレータによる指定やJCL(ジョブ制御文)などから、各ジョブの情報を実行待行列表に登録します。この情報には、ジョブの優先度やジョブが使うファイルなど実行に必要な項目があります。

イニシエータ

実行ジョブの選択とその実行開始をします。

ターミネータ

ジョブ終了時に、次の処理をします。

ライタ

ライタ待行列表から出力すべき情報を決定し出力します。

ライタの機能で特徴的なのがスプーリングです。
 ジョブのなかにはプリンタ出力を含むものもあります。プリンタへの出力は速度が遅いので、指定したプログラムの実行中は高速な外部記憶装置へいったん出力(スプール)して、ライタがプリンタへの出力を引き継ぎます。


ジョブ管理関連事項

スケジュール関連

JCL(Job Control Language;ジョブ制御言語)

汎用コンピュータのOSでのスケジュール記述言語です。
 JCL文は、ジョブステップに関して、その名称、入力ファイルの名称と格納場所、出力ファイルの名称と記憶装置、終了後の結果によるジョブステップの条件分岐んどが記述でき、一連のジョブステップをジョブとしてまとめたものです。
 また、JCL文のジョブ開始予定の曜日や時刻などを指定するスケジューリングアプリケーションと合わせて、かなり高度なスケジューリングができます。

UNIX系OSではシェルスクリプト、WindowsではPowerShellがJCLのような機能をもっています。

cron

登録した曜日や時間に特定のコマンドを実行するUNIX系OSの常駐プロセス(デーモン)です。これにより、比較的簡単なスケジュールができます。この設定はテキストファイルに保存されているので、利用者が一時的に変更することもできます。