データ収集、給与計算、明細票印刷、残業チェックなど仕事は色々とあります。コンピューターが処理する仕事の単位をジョブといいます。
ジョブ管理の流れ
ジョブ管理は、カーネルが持つ機能の一つです。この機能で利用者との間を橋渡しするのがマスタースケジューラという管理プログラム。利用者はこの管理プログラムに対して、ジョブの実行を依頼します。
マスタスケジューラは、ジョブの実行をジョブスケジューラに依頼します。依頼を受け取ったジョブスケジューラは、次の流れでジョブを実行していきます。
説明 | |
---|---|
リーダ | 依頼されたジョブを入力して、ジョブ待ち行列に登録します。 |
イニシエータ | 優先度の高いジョブを持ってきて、ジョブステップに分解します。 |
ターミネータ | 実行を終えたジョブに割り当てられたハードウェア資源を解放して、ジョブの結果を、出力待ち行列に登録します。 |
ライタ | 優先度の高いものから順に、ジョブ結果を出力します。 |
OSから見た処理単位の、ジョブ、プロセス、スレッドと頭が混乱してきたのでまとめてみます。
ジョブ ⊃ ジョブステップ ⊃ プロセス(タスク) ⊃ スレッド
ユーザが指定したプログラムはジョブとして扱われ、ジョブはいくつかのジョブステップに分解されます。
そのそれぞれは並行処理可能なタスクに分解され、非同期的に実行する流れ
が上記の説明です。
スプーリング
CPUと入出力装置では、処理速度に大きな差があります。
入出力データを高速な磁気ディスクへと蓄えるようにして、CPUが入出力装置を待たなくて済むようになります。例えば音楽データを磁気ディスクに書き出したら、CPUは次の処理に移ってしまいます。
そうすることで、無駄な待ち時間を削減できます。
低速な装置とのデータのやりとりを、高速な磁気ディスクを介して行うことで処理効率を高める方法をスプーリングと呼びます。
スプーリングを利用すると、CPUの待ち時間を削減することができるので、単位時間あたりに処理できる仕事量を増やすことができます。単位時間あたりに処理できる仕事量をスループットと呼びます。
まとめ
どんな流れなのか混乱するところもありますが、まとめながらやっていきます。