現在、私は秋の基本情報技術者試験に向けて勉強中です。
その中で、私が得た知識をまとめて記事にしています。
本記事のテーマ
ジョブ管理とは
ジョブとは利用者から見た仕事の単位です。1つのコマンドを入力してコンピュータに何らかの結果を出させることです。ジョブを効率よく処理していけるように、OSは実行スケジュールを管理します。
利用者が待たされなくて済むように、時間のかかる処理を、まとめてコンピュータにやらせておく処理の仕方を「バッチ処理」と言います。このバッチ処理を次々登録しておいて、コンピュータの休んでいる時間をできるだけ無くしていくのがジョブ管理です。
※バッチ処理とは仕事のひとまとまりを指します。
ジョブ管理の流れ
ジョブ管理は、カーネルが持つ機能の1つです。この機能で利用者との間を橋渡しするのがマスタスケジューラという管理プログラム。利用者はこの管理プログラムに対して、ジョブを実行します。
※マスタスケジューラ:利用者からの支持を受け付けたり、ジョブの実行状態を報告したりします。
マスタスケジューラはジョブの実行をジョブスケジューラに依頼します。自身は監視に努め、必要に応じて各種メッセージを利用者に届けます。
依頼を受け取ったジョブスケジューラは以下の流れでジョブを実行していきます。
・リーダ
依頼されたジョブを入力して、ジョブ待ち行列に登録します。
・イニシエータ
優先度の高いジョブを持ってきて、ジョブステップに分解します。
CPUや主記憶装置など、ハードウェア資源が開くのを待って、ジョブステップを割り当て、その実行をタスク管理に依頼します。
・ターミネータ
実行を終えたジョブに割り当てられていたハードウェア資源を解放して、ジョブの結果を、出力待ち行列に登録します。
・ライタ
優先度の高いものから順に、ジョブ結果を出力します。
スプーリング
CPUと入出力では処理速度に大きな差があります。
「CPUは待たされることばかりで実行待ちという勿体ない時間が多くなります」
そこで、入出力データを一旦高速な磁気ディスクへと蓄えるようにして、CPUが入出力を待たなくて済むようにする。例えば、印刷データを磁気ディスクに書き出したら、CPUは次の処理に移ることができます。そうすることによって無駄な待ち時間を削減できます。
こうした、「低速な装置とのデータのやり取りを、高速な磁気ディスクを介して行うことで処理効率を高める方法」をスプーリングと言います。
スプーリングを利用すると、CPUの待ち時間を削減することができるので、単位時間当たりに処理できる仕事量を増やすことができます。
単位時間当たりに処理できる仕事量をスループットと呼びます。
つまり、スプーリングを行うとスループットが向上します!
以上でジョブ管理の流れとスプーリングの説明を終了します。
今回の大事なことは、
マスタスケジューラがジョブの実行をジョブスケジューラに渡し、優先度の高いジョブをジョブステップに割り当て、高速化のために、処理速度の遅い装置とデータのやり取りをする場合はスプーリングを行い、一旦処理の速いディスクへ蓄え、必要になったらデータを取りに行きます。
参考資料
・キタミ式イラストIT塾 基本情報技術者 平成31/01年