プリエンプティブ(優先度方式)のスケジューリングでは、各タスクに優先度をつけ、優先度の高いタスクから先に実行する。
あるタスクが実行している最中であっても、それより優先度が高いタスクが起動するとそのタスクを優先する。そして、実行中のタスクは、「実行可能状態」となり、CPUが割り当てられるのを待つことになる。
例えば、Bというタスクが実行中に、それより優先度が高いタスクAが実行状態になると、タスクBは実行中から「実行可能状態」になる。このとき、Bは「待ちの状態」にはならない。
「実行可能状態」とは、CPUで実行されるのを「待っている」状態。これはすぐにでもCPUで実行可能な状態のこと。スケジューラによりCPUが空けば即座に実行される。
一方、「待ち状態」とは、何かの処理が終わるのを「待っている」状態のこと。即座には実行できない状態を指す。待ち状態が終わったら、「実行可能状態」になる。
コメント