問題本文
優先度に基づくプリエンプティブなスケジューリングを行うリアルタイム OS で,二つのタスク A, B をスケジューリングする。A の方が B よりも優先度が高い場合にリアルタイム OS が行う動作のうち,適切なものはどれか。
選択肢
- ア.A の実行中に B に起動がかかると,A を実行可能状態にして B を実行する。
- イ.A の実行中に B に起動がかかると,A を待ち状態にして B を実行する。
- ウ.B の実行中に A に起動がかかると,B を実行可能状態にして A を実行する。
- エ.B の実行中に A に起動がかかると,B を待ち状態にして A を実行する。
正解
ウ. B の実行中に A に起動がかかると,B を実行可能状態にして A を実行する。
解説
プリエンプティブでは高優先タスク起動時に実行中の低優先タスクは「実行可能状態」(後で再開可)に戻され、高優先タスクが実行される。
選択肢ごとの解説
- ア.高優先A実行中の低優先B起動は無視(またはBが実行可能状態で待つ)で、Aを止める必要はない。
- イ.Aは止めず待ち状態にもしない。
- ウ.Bを実行可能状態に戻しAを実行=プリエンプションの正しい動作。
- エ.Bは待ち状態ではなく実行可能状態に戻る(待ち状態はI/O待ち等)。
基本情報技術者試験 令和元年度 秋期 午前 の過去問一覧へ戻る・問18