平成24年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問11
テクノロジ/ソフトウェア多重割込みを処理するリアルタイムOSの割込みハンドラ処理として,適切なものはどれか。
出典:平成24年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問11
- ア処理の中断を極力避けるために,先頭で一時的に割込みを可能にした後は割込み禁止状態で処理を行う。
- イ先頭でタイマを設定し,一定期間は割込み禁止状態にして処理を行う。
- ウタスクで行う処理を少なくするために,割込みに起因する多くのタスク処理も割込み可能状態にしたまま割込みハンドラの中で行う。
- エ割込み禁止状態での処理を極力減らして,割込み可能状態で動作する。
正解:エ
解説
多重割込みに対応するリアルタイムOSでは,割込みハンドラの中で割込み禁止状態のまま長時間処理を続けると,その間はより優先度の高い割込みも受け付けられなくなり,システム全体の応答性(リアルタイム性)が悪化します。そのため,割込みハンドラでは真に割込みを禁止すべき区間(クリティカルセクション)を必要最小限にとどめ,それ以外はできるだけ割込み可能状態で動作させることが望ましいとされています。
選択肢ごとの解説
- ア誤り。先頭で一時的に割込みを可能にした後,割込み禁止状態のまま処理を続けるという方式は,結局処理の大部分を割込み禁止状態で行うことになり,多重割込みへの応答性を高める設計とはいえません。
- イ誤り。先頭でタイマを設定し,一定期間割込み禁止状態にして処理を行う方式も,その期間中は他の割込みを受け付けられなくなり,多重割込み処理の応答性を悪化させます。
- ウ誤り。割込みに起因する多くのタスク処理を,割込み可能状態のまま割込みハンドラの中で行うと,ハンドラの実行時間が長くなりがちで,本来はタスク側で行うべき処理までハンドラに詰め込むことになり,設計として適切ではありません。
- エ正しい。割込み禁止状態での処理を極力減らし,できるだけ割込み可能状態で動作させることによって,多重割込みへの応答性を高めることができます。