タスクスケジューリングとは
タスクとは、コンピュータが「実行中のプログラム」と識別する仕事の単位のことです。
ある一連のひとまとまりの仕事である「ジョブ」が分解され、その後タスク管理にデータが渡されることでCPUの実行単位であるタスクが生成されます。
CPUは同時に複数の処理を実行することはできないので、これら複数のタスクに優先順位をつけて処理していく必要があります。
このようにタスクに実行順位を決めていくことをタスクスケジューリングといいます。
【タスク管理】の仕組みについてはこちらで詳しく解説しています。
併せてお読みいただくとより理解が深まります(^^)
【タスクスケジューリング】代表的な3つの方法
到着順
実行可能状態のタスクをタスクの到着順に実行していく方式です。
優先順位が付けられることがないので、実行中のタスクがCPUの使用権を奪われることはありません。このことをノンプリエンプションといます。
順番待ちのタスクにCPUの使用権を割りふるプログラムのことをディスパッチャといいます。
優先順方式(プライオリティ順方式)
タスクに与えられた優先順位に応じて処理が行われる方式です。
実行中のタスクよりも優先度が高いタスクが到着するとCPUの使用権が移動します。
これをプリエンプションといいます。
優先度が高いタスクが先にどんどん実行されるので、優先度の低いタスクがいっこうに実行されないという状態が発生してしまうデメリットもあります。
ラウンドロビン方式
CPUの使用権を一定の時間で切り替える方式です。タスクの到着順にCPUの使用権が割り当てられますが、実行に一定の時間がきたら次のタスクにCPUの使用権が移り、実行中のタスクは待ち行列の最後に移動します。
まとめ
タスクスケジューリングはタスクに実行順位を決めていくこと。
その代表的な方式に到着順、優先順、ラウンドロビン方式の3つがあるということがお分かりいただけたのではないでしょうか。
以上、タスクスケジューリングの解説でした(^^)