コンピュータ

多重待ち行列方式 | タスクスケジューリング方式

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

タスクとは、コンピュータが処理する単位です。例えばコンピュータのアプリケーションアイコンをクリックすると、クリックしたアプリケーションを開くようにコンピュータに命令します。このような命令により発生する処理の単位をタスクといいます。

コンピュータに対する命令は一つとは限りません。コンピュータに複数の命令が依頼されることはよくあることです。しかし、処理を実行する「CPU」は複数のことを同時に処理できるわけではありません。

そのため、CPU」にどのタスクを処理させるか、タスクの実行順序を定める必要があります。これをタスクスケジューリングといいます。

タスクスケジューリングには、以下の方式があります。

名前 説明
到着順方式 実行可能状態になった順番に処理する方式
優先度順方式 タスクに優先度を設定し、優先度順に処理する方式
動的優先度順方式 基本は優先度順方式と同じだが、待ち時間の長さに応じて優先度を徐々に上げていく方式
ラウンドロビン方式 CPUを使用する時間を定め、その時間内に処理が終わらない場合は、次のタスクに使用権が与えられる方式
多重待ち行列方式 ラウンドロビン方式に優先順位を加味させた方式
処理時間順方式 タスクの処理時間が短いものから処理する方式
イベントドリブン方式 マウス操作によるイベントでCPUの使用権を切り替える方式

多重待ち行列方式ってなに?

多重待ち行列方式とは、ラウンドロビン方式に優先度を加味させた方式です。

タスクには優先度が付与され、優先度の高いタスクから処理が実行されます。CPUを使用できる時間(タイムクォンタム)を定め、その時間内に処理が終わらない場合は、次のタスクにCPUの使用権が与えられる方式です。

規定時間内に処理が終わらなかった実行中のタスクは、処理を中断し「優先度」を下げて待ち行列の最後に回れます。

タスクは優先度順に処理される

実行可能状態になったタスクには「優先度」が付与されており、優先度の高い順に処理されます。

多重待ち行列方式手順1

 

規定時間内に処理が完了した場合は、次のタスクが実行されます。

多重待ち行列方式手順2

規定時間内に処理が終了しなかった場合は、優先度を下げて下位の行列の末尾に回される

規定時間内に処理が終わらなかった場合は、優先度を下げて下位の待ち行列の末尾に回されます

以下の例では、優先度「高」の「タスクB」が規定時間内に処理が終わらなかった為、処理を中断し優先度を「中」に下げ、優先度中の待ち行列の末尾に回されています。

多重待ち行列方式手順3

\ 参考になりましたか? /

© 2020 ITを分かりやすく解説