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