平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10
テクノロジ/ソフトウェア優先度に基づくプリエンプティブなスケジューリングを行うリアルタイム OS において,タスクの優先度逆転が発生する可能性があるのはどれか。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問10
- ア排他制御
- イポーリング
- ウリエントラント
- エ割込み
正解:ア
解説
優先度逆転は,優先度の低いタスクが,排他制御によって優先度の高いタスクの実行に必要な共有資源(クリティカルセクション)を占有している間,優先度の高いタスクがその資源の解放を待たされてしまい,結果として見かけ上,低優先度タスクが高優先度タスクよりも先に実行されるかのような状態になる現象です。したがって,優先度逆転はミューテックスやセマフォなどの排他制御を用いて共有資源へのアクセスを保護している場合に発生する可能性があります。
選択肢ごとの解説
- ア正しい。排他制御によって共有資源へのアクセスを制御している場合,優先度の低いタスクが資源を占有している間,優先度の高いタスクがその資源の解放を待たされることになり,優先度逆転が発生する可能性があります。
- イ誤り。ポーリングは,周辺装置や資源の状態を定期的に確認する方式であり,それ自体はタスク間の優先度逆転を引き起こす直接の要因にはなりません。
- ウ誤り。リエントラント(再入可能)は,複数のタスクから同時に呼び出されても正しく動作するプログラムの性質であり,優先度逆転の原因にはなりません。むしろ排他制御の必要性を減らす性質です。
- エ誤り。割込みは,発生した時点で通常は現在実行中の処理よりも優先して処理されるものであり,優先度逆転(低優先度タスクが高優先度タスクの実行を遅らせる現象)の直接の原因にはなりません。