令和4年度 秋期 応用情報技術者試験 午前 問18
テクノロジ組込み・IoT
優先度に基づくプリエンプティブなスケジューリングを行うリアルタイムOSにおける割込み処理の説明のうち,適切なものはどれか。ここで,割込み禁止状態は考慮しないものとし,割込み処理を行うプログラムを割込み処理ルーチン,割込み処理以外のプログラムをタスクと呼ぶ。
解答・解説
正解: ウ. 割込み処理ルーチンは,最も優先度の高いタスクよりも優先して実行される。
リアルタイムOSにおける 割込み処理 に関する知識を問う問題です。
プリエンプティブなスケジューリング方式において、各タスクには優先度が割り当てられ、優先度が高いものが優先的に実行されます。
しかし、外部からのイベントなどにより発生する 割込み処理ルーチン は、OSが管理するタスクよりもさらに高い優先度で処理される必要があります。したがって、割込みが発生すると、現在実行中のタスクの優先度に関わらず、タスクを中断して直ちに割込み処理ルーチンが実行されます。
よって、正解は ウ です。
各選択肢の解説
- ア: タスクの切替え(ディスパッチ)を禁止しても、割込みそのものが禁止されるわけではありません。そのため、割込みが発生すれば割込み処理ルーチンは呼び出されます。
- イ: 割込み処理ルーチンが実行されている間はタスクの実行が一時停止します。そのため、割込み処理ルーチンの処理時間が長くなると、タスクの実行が遅れ、システムの 応答性(リアルタイム性)に悪影響 を与えます。
- ウ: 正解です。割込み処理ルーチンは、最も優先度の高いタスクよりもさらに優先して実行されます。
- エ: 割込み処理ルーチンは、割り込まれたタスクとは独立した 別のコンテキスト(割込み用のスタックやレジスタ状態など) で実行されます。同一のコンテキストで実行されるわけではありません。