優先度順方式 | タスクスケジューリング方式

コンピュータ

優先度順方式 | タスクスケジューリング方式

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

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

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

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

スポンサーリンク

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

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

優先度順方式ってなに?

優先度順方式とは、タスクに優先度を設定し、その優先度の高いものから順番に実行していく方式です。実行中のタスクがある場合でも、実行中のタスクより優先度の高いタスクが追加されると「CPU」の使用権が優先度の高いタスクに奪われます。これをプリエンプションといいます。

中断されたタスクはどうなるの?
優先度の高いタスクの処理が終わり次第、再実行されます。

優先度順方式の流れ

優先度順方式の流れを図解で解説していきます。

「タスクA」が「CPU」で実行中、「タスクB」「タスクC」が順番待ちであり、各タスクの優先度は以下の通りとします。

  • タスクA:優先度「中」
  • タスクB:優先度「低」
  • タスクC:優先度「低」

優先度順方式の流れ1

実行中のタスクより"優先度の高い"タスクが追加されると、優先度の高いタスクが優先される

優先度「中」の「タスクA」実行中の時に、優先度「高」の「タスクD」が追加されると、実行中の「タスクA」は処理を中断し、優先度の高い「タスクD」が実行されます

優先度順方式手順2

 

中断した「タスクA」は待機状態に切り替わります

優先度順方式処理3

優先度の高いタスクがすべて終了すると、中断していたタスクが再実行される

優先度「高」の「タスクD」の処理が終了すると、先ほど中断していた「タスクA」が再実行されます。

優先度順方式手順4

 

このように優先度順方式は、タスクの優先度が高い順番に実行していきます。そのため優先度の低いタスクは、なかなか実行されないというデメリットもあります。

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

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