優先度に基づくプリエンプティブなスケジューリングを行うリアルタイムOSにおける割込み処理の説明のうち,適切なものはどれか。
ここで,割込み禁止状態は考慮しないものとし,割込み処理を行うプログラムを割込み処理ルーチン,割込み処理以外のプログラムをタスクと呼ぶ。
正答3
解説
正解は3です。
優先度に基づいてタスクを切り替えるリアルタイムOSで、割込み処理がどう扱われるかを問う問題です。
プリエンプティブとは、優先度の高い処理が来たら実行中の処理を中断して切り替える方式です。
【選択肢別解説】
1:× タスクの切替え(ディスパッチ)を禁止しても、割込みそのものは禁止されていません。
割込みが発生すれば割込み処理ルーチンは呼び出されます。
2:× 割込み処理ルーチンの実行中はタスクが動けません。
処理時間が長いほどタスクの実行が遅れるので、システムの応答性に影響します。
3:○ 割込み処理ルーチンは、ハードウェアの割込みを契機に実行され、どのタスクよりも優先されます。
最も優先度の高いタスクも中断されます。
4:× 割込みが発生すると、割り込まれたタスクのコンテキスト(レジスタの内容など)は退避されます。
割込み処理ルーチンは、そのタスクとは別のコンテキストで実行されます。
【ポイント】
リアルタイムOSでは、割込み処理ルーチンをできるだけ短くし、時間のかかる処理はタスクに任せるのが定石です。
そうすることで、応答性を保てます。