優先度に基づくプリエンプティブなスケジューリングを行うリアルタイム OS で,二つのタスク A, B をスケジューリングする。Aの方がBよりも優先度が高い場合 にリアルタイム OS が行う動作のうち,適切なものはどれか。
ア Aの実行中にBに起動がかかると,Aを実行可能状態にしてBを実行する。
イ A の実行中にBに起動がかかると,Aを待ち状態にしてBを実行する。
ウ Bの実行中に Aに起動がかかると,Bを実行可能状態にしてAを実行する。
エ Bの実行中に A に起動がかかると,Bを待ち状態にしてAを実行する。
解説を読む
正解:ウ
解説:
プリエンプティブなスケジューリングとは一定の時間毎にタスクが切り替わる(タイムスライス)仕組みの事です。タスクが周期的に切り替わることで並行処理をしているようにみせるマルチタスクが可能となります。
また、本問では優先度が設定されているのでAを起動した際にBが実行中の場合には直ちにBを実行状態から実行可能状態にします。待ち状態になるのはI/Oが発生したときのみですので優先順位による実行に切り替えでは待ち状態とはなりません。
ア.Aの方が優先度が高いのでBが起動してもAはそのまま処理を続行します。
イ.ア同様にAは処理を続行します。
ウ.正しい動作の説明です。上記説明もご参照ください。
エ.Aは実行されますがI/Oが発生した訳ではないので待ち状態にはなりません。
解説を閉じる
コメント