タスクが実行状態(RUN)、実行可能状態(READY)、待ち状態(WAIT)の三つの状態で管理されるリアルタイムOSにおいて、三つのタスクA〜Cの状態がプリエンプティブなスケジュールによって、図に示すとおりに遷移した。
各タスクの優先度の関係のうち、適切なものはどれか。
ここで、優先度の関係は、“高い > 低い”で示す。
ア | タスクA > タスクB > タスクC |
イ | タスクB > タスクA > タスクC |
ウ | タスクB > タスクC > タスクA |
エ | タスクC > タスクB > タスクA |
答え ウ
【解説】
説明のため、図のように時間に沿って番号付けるする。
タスクの優先度の判断はRUNとREADYの関係で判断する。READY状態のタスクがあるときに、RUN状態のタスクは、READY状態のタスクよりも優先度が高いことになる。
Aのとき、タスクCがREADY状態で、タスクBがRUN状態なので、B > C である。
Cのとき、タスクAがREADY状態で、タスクBがRUN状態なので、B > A である。
Eのとき、タスクAがREADY状態で、タスクCがRUN状態なので、C > A である。
したがって、各タスクの優先度の関係はB > C > A(ウ)である。
【キーワード】
・リアルタイムOS
・タスクの状態
・プリエンプティブ