タスクスケジューリング方式とは
タスクとは、コンピュータが処理する単位です。例えばコンピュータのアプリケーションアイコンをクリックすると、クリックしたアプリケーションを開くようにコンピュータに命令します。このような命令により発生する処理の単位をタスクといいます。
コンピュータに対する命令は一つとは限りません。コンピュータに複数の命令が依頼されることはよくあることです。しかし、処理を実行する「CPU」は複数のことを同時に処理できるわけではありません。
そのため、「CPU」にどのタスクを処理させるか、タスクの実行順序を定める必要があります。これをタスクスケジューリングといいます。
タスクスケジューリングには、以下の方式があります。
名前 | 説明 |
到着順方式 | 実行可能状態になった順番に処理する方式 |
優先度順方式 | タスクに優先度を設定し、優先度順に処理する方式 |
動的優先度順方式 | 基本は優先度順方式と同じだが、待ち時間の長さに応じて優先度を徐々に上げていく方式 |
ラウンドロビン方式 | CPUを使用する時間を定め、その時間内に処理が終わらない場合は、次のタスクに使用権が与えられる方式 |
多重待ち行列方式 | ラウンドロビン方式に優先順位を加味させた方式 |
処理時間順方式 | タスクの処理時間が短いものから処理する方式 |
イベントドリブン方式 | マウス操作によるイベントでCPUの使用権を切り替える方式 |
多重待ち行列方式ってなに?
多重待ち行列方式とは、ラウンドロビン方式に優先度を加味させた方式です。
タスクには優先度が付与され、優先度の高いタスクから処理が実行されます。CPUを使用できる時間(タイムクォンタム)を定め、その時間内に処理が終わらない場合は、次のタスクにCPUの使用権が与えられる方式です。
規定時間内に処理が終わらなかった実行中のタスクは、処理を中断し「優先度」を下げて待ち行列の最後に回れます。
タスクは優先度順に処理される
実行可能状態になったタスクには「優先度」が付与されており、優先度の高い順に処理されます。
規定時間内に処理が完了した場合は、次のタスクが実行されます。
規定時間内に処理が終了しなかった場合は、優先度を下げて下位の行列の末尾に回される
規定時間内に処理が終わらなかった場合は、優先度を下げて下位の待ち行列の末尾に回されます。
以下の例では、優先度「高」の「タスクB」が規定時間内に処理が終わらなかった為、処理を中断し優先度を「中」に下げ、優先度中の待ち行列の末尾に回されています。
helpful
この記事は役に立ちましたか?