00:43:48)追加された行はこの色です。削除された行はこの色です。人の側から見た仕事の単位を[[ジョブ]]というのに対して、OSの管理下で実行される仕事の単位を''タスク''と呼ぶ。ジョブが投入されたら、それを''ジョブステップ''ごとに、あるいはジョブステップをさらに分割してタスクを作り、タスクごとに実行されることになる。このタスクの実行を監視し、[[CPU]]や[[主記憶装置]]の管理や制御を行うことを、''タスク管理''という。「マークシートを読み込んで、試験の採点をして、結果をファイルに出力せよ」というジョブが投入されたとする。このとき、「マークシートを読み込む」というジョブステップ1、「試験の採点をする」というジョブステップ2、「結果をファイルに出力する」というジョブステップ3に分解される。その後、さらにそれぞれのジョブステップから単一あるいは複数のタスクが生成される。ジョブ管理によって、ジョブにはハードウェア資源が割り当てられる。仮想記憶装置なら、主記憶装置の割り当てられる。マルチプログラミングなら、CPUの割り当て、割り込み処理が使われる。ハードウェア資源の状態は、タスクを実行中に変化する。他のタスクが磁気ディスク装置を使っているので、処理が終わるまで待つ必要が出てきたりする。タスク管理によって生み出されたタスクは、すぐに実行できるとは限らない。タスクは次の3つの状態を取る。+実行可能状態--処理装置(CPU)の使用権が与えられれば、実行できる状態。+実行状態--処理装置で実行している状態。+待機状態--入出力装置の処理が終わるのを待っている状態。状態により遷移が変わってくる。その状態遷移図は次の通りである。処理装置(CPU)が与えらたら実行することができるが、実行状態2から実行状態1に戻っている矢印に注目して欲しい。実行していたタスクの処理を中断して、より優先順位の高いタスクが割り込むことがある。このとき、実行中のタスクはいったん中断して実行可能状態に戻り、優先順位の高いタスクが終了するのを待つ。-�→�--CPUの割り当て(ディスパッチング)---実行可能状態にあるタスクの中で、もっとも優先順位の高いタスクにCPUの使用権を割り当てる。-�→�--タイマ割り込み---タイマ割り込みが発生すると、実行状態にあるタスクが実行可能状態に移る。-�→�--スーパバイザコール割り込み---タイマ割り込みが発生すると、実行状態にあるタスクが待機状態に移る。-�→�--入出力処理の完了---入出力処理が完了すると、待機状態にあるタスクが実行可能状態に移る。タスクに時分割で処理装置を割り当てる方式を''タイムスライシング''と呼ぶ。1ms割り当てたとすると、実行可能状態のタスクにCPUを割り当てて実行状態にするが、処理が終わっていなくても1ms通過したらそのタスクを中断して実行可能状態に戻し、他のタスクに1ms割り当てる。CPUから比べると圧倒的にプリンタは低速である。そのためプリンタの動作が完了するのを待っていると時間がかかってしまう。そこで印刷データを一旦補助記憶装置に出力し、CPUは次の処理を実行する。その後、補助記憶装置からプリンタへ適時印刷データが送られる。このような方式を''スプーリング(スプール)''と呼ぶ。