コンピュータ

タスクのディスパッチとは

ディスパッチ

タスクのディスパッチとは

ディスパッチ(英:dispatch)とは、複数のタスクを同時に実行するマルチタスク(マルチプログラミング)に対応したOSの制御機能のひとつで、実行可能状態のタスクの中から次に実行すべきタスクを選択してCPUの使用権を割り当てることです。

そして、ディスパッチを行うプログラムをディスパッチャ(英:dispatcher)といいます。

タスクの状態遷移

タスクとは、コンピュータが処理する作業の最小単位のことです。コンピュータの頭脳である「CPU」がタスクを処理します。

生成されたタスクには次の3つの状態があります。

状態説明
実行可能状態(READY)CPUの使用権が回ってくれば、いつでも実行できる状態。
実行状態(RUN)CPUの使用権が与えられ、実行中の状態。
待機状態(WAIT)入出力処理が発生したので、その終了を待っている状態。

そして、タスクは次の図のように遷移します。

タスクの状態遷移図

タスクが生成されたら「実行可能状態」となり「実行可能状態」のタスクにCPUの使用権を割り当てて「実行状態」にすることをディスパッチといい、逆に「実行状態」のタスクを一旦停止して「実行可能状態」に戻すことをプリエンプション(英:preemption)といいます。

「実行状態」のタスクの処理が終了したらタスクは消滅、タスク実行中に入出力処理が発生したら「待機状態」となり、入出力処理が終わり次第「実行可能状態」に遷移し再度CPUの使用権が与えられるのを順番待ちします。

helpful