タスク管理の概要
タスク管理の全体が次の5つがあります。
- タスクは3つの状態を遷移する(遷移は移行するという意味) →タスクの3状態
- 状態が遷移するときは割込みという要素によって発生する →割込み
- タスクの状態遷移を詳しく見る →タスクの状態遷移
- プロセッサの割当てはスケジューリングに従う →タスクのスケジューリング方式
- 複数のタスクは同時に実行してるように見せている →マルチプログラミング(マルチタスク)
タスクの3状態

実行状態(run)
プロセッサが割り当てられ実行されている状態
実行可能状態(READY)
プロセッサは割り当てられていないが、割り当てらればすぐに実行できる状態
待ち状態(WAIT)
入出力何度の終了を待っており、プロセッサを割り当てられていない状態
割込み
内部割込み | プログラム割込み | 0による除算やオーバフローなど、プログラムのエラーが原因で生じる |
ページフォルト | 仮想記憶において、要求したページが主記憶上に存在しなかったことが原因で生じる | |
外部割り込み | 入出力割込み | 入出力動作の完了を通知する |
タイマ割込み | 一定時間の経過を通知する |
タスクのスケジューリング方法
- ラウンドロビン方式
- 優先度順方式
- 到着順方式
ラウンドロビン方式
各タスクがどのような状態(たとえ待ち状態)であれ、定められた時間ごとに全タスクを順番に切り替えて処理を進める方式
優先度順方式
各タスクに優先度を決め最も優先度の高いタスクにプロセッサを割り当てる
到着順方式
先に実行可能となったタスクから順番に実行する。割込みが起こらなくなる。
マルチプログラミング(マルチタスク)
これまでの制御を行うことで1台のプロセッサを複数のタスクで共有しながら、タスクを見かけ上同時に実行が可能に。これをマルチプログラミング(多重プログラミング、マルチタスク)という。
タスク、プロセス、スレッド
タスク | (コンピュータから見た)仕事の単位を表す一般的な言葉 |
プロセス | プログラムの実行単位 プロセスごとにどくしつした主記憶領域を割り当てる |
スレッド | プロセッサの割当て単位 主記憶領域を共有できる |