問題本文
優先度に基づくプリエンプティブなスケジューリングを行うリアルタイム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が起動してもAは中断されない。
- イ.同上、Aは継続実行される。
- ウ.低優先B実行中に高優先Aが起動→Bを実行可能状態にしてAをプリエンプト実行=正解。
- エ.Bを『待ち状態』ではなく『実行可能状態』に戻すのが正しい(待ちは I/O待ち等の状態)。
基本情報技術者試験 平成29年度 秋期 午前 の過去問一覧へ戻る・問18