利用者から依頼された一連の処理(ジョブ)の実行順序を管理するOSの機能。
ジョブとは、利用者から見た仕事の単位のことです。たとえば「給与計算をして結果を印刷する」のような、一連の処理のまとまりが1つのジョブにあたります。ジョブ管理は、こうしたジョブの実行順序を管理するOSの機能です。
身近な例で考えると、クリーニング店の受付に似ています。お客さんが持ち込んだ衣類(ジョブ)を受け付け、どの順番で洗うかを決め、洗い終わったら受け渡す──この一連の段取りを取り仕切るのが受付係(ジョブ管理)です。
上の図解のように、複数のジョブが投入されると、それらを受付 → 順序決定 → 実行 → 完了という流れに乗せて、利用者が意識しなくても効率よく処理が進むようにします。
ジョブ管理は、おおむね次の流れで仕事を処理します。
・ジョブの受付(投入):利用者が処理を依頼すると、ジョブとして受け付ける
・ジョブスケジューラが実行順を決定:受け付けたジョブを、どの順番で実行するか決める
・ジョブの実行:決められた順番にしたがって、1件ずつ処理を進める
・完了・出力:処理が終わると結果を出力し、利用者に返す
ここで重要なのがジョブスケジューラです。これは「次にどのジョブを動かすか」を決める係で、受付順や優先度などをもとに判断します。多くのジョブが来ても全体の処理がスムーズに流れるよう、交通整理を行っていると考えると分かりやすいです。
ジョブ管理とよく似た機能にタスク管理があります。両者は「何を1単位として管理するか」が違います。
・ジョブ管理:利用者から見た仕事(ジョブ)の単位で管理する
・タスク管理:OSから見たCPU割当て(タスク)の単位で管理する(より細かい)
両者は上下の関係でつながっています。ジョブ管理が受け付けた1つのジョブは、実際に動かす段階で複数のタスクに分けられ、それをタスク管理がCPUへ細かく割り当てて処理します。料理の注文(ジョブ)を受けたら、調理場で「野菜を切る」「火にかける」といった細かい作業(タスク)に分けて進めるのと同じイメージです。
Q1. ジョブ管理が扱う「ジョブ」とは何か。
Q2. ジョブの実行順序を決める役割を担うものはどれか。
Q3. ジョブ管理とタスク管理の関係として正しいものはどれか。