タスクのスケジューリング方式

イベントドリブン方式
マウスのクリックや入出力の終了等、環境の変化が生じた時に割り込みが発生し、タスクのスケジューリングを実行する方式。

タイムスライス方式
一定時間(タイムウォンタム)ごとにスケジューリングを実行する方式。

到着順方式
タスクに優先順位をもたせず、実行可能状態になったタスクから順に実行する方式。タスクの実行が終了するまでプリエンプションが発生しない(ノンプリエンプション方式)。

静的優先順位方式
プリエンプション方式ともいい、静的に決められた最も高い優先順位をもつタスクから実行する方式。この方式では、現在実行しているタスクより高位の優先順位をもつタスクの実行が優先されるため、低位のタスクはCPU使用権が与えられず、なかなか実行できないというスタベーション(starvation)が起こる可能性がある。

動的優先順位方式
エージング方式ともいい、スタベーションを回避する為、待ち時間が一定時間以上となったタスクの優先順位を動的に高くして実行する方式。優先順位を高くして実行の可能性を与える事をエージング(aging)という。

ラウンドロビン方式
実行可能状態となった、つまり、実行待ち行列に到着した順に従ってタスクにCPU時間を一定時間(タイムクウォンタム)ずつ割り当て、一定時間内に終了しない場合は再び実行可能状態となり同一優先順位の実行可能待ち行列の最後尾に並ぶという方式。この方式は、タイムクウォンタムを長くするほど到着順方式に近づき、タイムクウォンタムを短くすれば、I/Oバウンド(入出力処理が多い)タスクの処理終了時間は、CPUバウンド(CPU処理が多い)タスクの処理終了時間よりも相対的に短くなるという特徴がある。

フィードバック待ち行列方式
ラウンドロビン方式に優先順位を加えたもので、一定時間内に処理が終了しなかったタスクの優先順位を順次下げて、実行待ち行列の最後尾に並ぶ方式。これは、CPUを占有しやすいタスクの優先順位を下げるという考え方。

処理時間方式
SPT(Shortest Processing Time First)方式ともいい、処理時間の短いタスクに高い優先順位を与え、最初に実行する方式。処理時間はあらかじめ予測できない為、実際はフィードバック待ち行列方式として実現される。

SEPT方式
処理時間が短いと思われるタスクを優先処理する方式。

SET方式
すでに処理された時間が最も短いタスクを優先処理する方式。