前回、OSの仮想記憶・ページング方式を整理しました。今回は、OSの役割の続きとして、「ジョブ管理」と「タスク管理」の考え方を整理します。
ジョブ管理とは
ジョブ管理とは、コンピュータに対して依頼された仕事(ジョブ)全体を、受け付けてから実行し、結果を出力するまでの一連の流れを管理する働きのことです。
利用者から見れば、「印刷を依頼する」「プログラムを実行する」といった1つのまとまった仕事の単位が、ジョブにあたります。OSは、複数のジョブが依頼された場合でも、それらを順番に、あるいは効率よく処理できるように調整しています。
タスク管理とは
タスク管理とは、ジョブをさらに細かく分けた、CPUが実行する処理の単位(タスク・プロセス)を管理する働きのことです。
1つのジョブの中には、複数のタスクが含まれていることがあります。OSは、CPUという限られた資源を、複数のタスクにどう割り当てるかを管理しており、この管理のしかたによって、コンピュータ全体の処理効率が変わってきます。
マルチタスクとスケジューリング
現在のコンピュータは、複数のタスクを同時に処理しているように見えますが、実際にはCPUが、短い時間ごとにタスクを切り替えながら、順番に処理を進めています。この仕組みを「マルチタスク」と呼びます。
どのタスクに、どれくらいの時間、CPUを割り当てるかを決める方式を「スケジューリング」と呼びます。科目Aでは、代表的なスケジューリングの方式(到着順に処理する、優先度の高いものから処理するなど)の名前と特徴が出題されます。
ジョブ管理とタスク管理の関係
自分は、ジョブ管理とタスク管理の違いを、次のように整理して覚えるようにしています。
- ジョブ管理:利用者から見た「仕事のまとまり」を管理する(印刷依頼、プログラム実行など)
- タスク管理:その仕事を実現するための、CPU内部の細かい処理を管理する
「利用者から見える大きな単位がジョブ」「コンピュータの内部で扱う小さな単位がタスク」という、視点の違いを意識することで、混同しにくくなりました。
学習してみた感想
ジョブとタスクは、言葉が似ているうえに、どちらも「管理」という言葉がついているため、最初は区別があいまいなまま進めてしまっていました。「利用者から見た単位か、コンピュータ内部の単位か」という軸で整理し直したことで、ようやく違いがはっきりしました。
次回は、③に戻り、学習4週目の振り返りとして、過去問演習を始めてみた話をまとめます。
