コンピュータシステム

ジョブ管理を学ぼう!

ジョブ管理」、何となくイメージが湧く言葉ですよね。

今回はコンピュータにおいて、仕事の処理を行うための重要な仕組みであるジョブ管理について解説します!

 

ジョブ管理とは?

「コンピュータを使う」ということは何らかの処理をコンピュータに指示・依頼していることになります。

例えば、会計システムに自分が使った年間の経費を集計し、月毎の平均を出して、EXCEL形式でデータを出力させたいとすると、単純な一つの指示ではなく、「経費の集計」、「平均値の計算」、「EXCELデータの出力」という3つの処理が必要になります。

この一つの処理が終わる度に、利用者が次の処理をしていくのは、非常に大変です。

そこで、利用者は処理したい一連の仕事をいっぺんにコンピュータへ依頼します。

これにより、わざわざ処理を一つずつ行うのではなく、1回の指示で全てが済みます。

の一連の仕事のかたまりが「ジョブです。

言い換えると、ジョブとは「利用者からみた仕事の単位」となります。

そして、複数あるジョブをスケジューリングし、実行単位であるジョブステップに分解して、個々の実行を監視・制御することが「ジョブ管理」となります。

因みに一連のジョブステップをジョブとしてまとめたものをJCL(Job Control Language:ジョブ制御言語)文と言います。

続いて、ジョブ管理の流れを理解していきましょう。

 

ジョブ管理の流れ

ジョブ管理とは、OS(細かく言うとカーネル)が持つ機能の一つです。

ジョブ管理には大きく「マスタスケジューラ」と「ジョブスケジューラ」の二つの役割があります。

 

マスタスケジューラ

ジョブ管理において、先ずは利用者が「あれをやれ、これをやれ」とジョブの実行を指示します。

この指示を受け取ったり、既に投げられているジョブの実行状態を報告したりしてくれるのが、マスタスケジューラです。

そして、マスタスケジューラが受け取ったジョブを「実行してね」と依頼する先がジョブスケジューラになります。

マスタスケジューラは実際に手を動かす、というよりはジョブがどうなっているかを監視し、利用者に報告している監視役ですね。

 

ジョブスケジューラ

マスタスケジューラから依頼を受けて、実際のジョブを実行するのがジョブスケジューラです。

ジョブスケジューラは依頼が来たジョブを単純に順番で実行するのではなく、優先度をきちんと見て、必要な順番で処理を行ってくれます。

ジョブスケジューラは大きく4つのステップで成り立ってます。

ジョブスケジューラの4ステップ
  1. リーダ
    依頼されたジョブを入力して、ジョブ待ち行列に登録する
  2. イニシエータ
    優先度の高いジョブをジョブステップに分解し、CPUやメモリなどのハードウェアのリソースが空くのを待って、ジョブステップを割り当て、その実行をタスク管理に依頼する
  3. ターミネータ
    実行を終えたジョブに割り当てられていたCPUやメモリなどのハードウェアのリソースを開放して、ジョブの結果を待ち行列に登録する
  4. ライタ
    優先度の高いものから順番に、ジョブ結果を出力していく

図にしてみると以下のようになりますね。

ジョブ管理の流れイメージ

ポイントはジョブスケジューラの途中(イニシエータ)で、タスク管理にジョブステップが渡る、ということですね。
(※タスク管理も奥が深いので、それはまた別の機会に解説したいと思います)

 

まとめ

ジョブ管理のまとめ
  • マスタスケジューラが利用者とコンピュータの橋渡しをする
  • ジョブスケジュールは依頼を受けて、優先度をみてジョブを実行していく

ジョブ管理によってコンピュータは仕事を規則正しく行うことができるのですね。

人間の行動もジョブ管理に従って優先度の高いものから実行する傾向がありますが、優先度が欲望に支配されることが多々ありますよね(笑)

以上です!

-コンピュータシステム