割込みハンドラとは?わりこみはんどら
割込みハンドラとは、割込みの発生時に起動される処理ルーチン。タスクとは別の実行コンテキストで動作し、多くのRTOSでは待ちを伴うサービスコールを呼べないという制約が課される。ここで何をしてどこから先をタスクへ回すかが、システム全体の応答時間を決める。
最終更新:2026-10-06
この語が出る過去問を解く →背景
割込み処理はタスクより上の位置で走るため、その間はどのタスクも動けず、同等以下の優先度の割込みも受け付けられない。つまりハンドラの実行時間はそのまま他の処理の最悪応答遅延に足し込まれる。この構造から、ハンドラは「事象を取りこぼさないための最小限」に切り詰め、判断や加工はタスク側へ譲るという分担が定石になった。待ちを伴うAPIが禁じられるのも、待っている間に系全体が止まってしまうためである。
具体例
TOPPERS/ASPのようなμITRON系RTOSでは、受信割込みハンドラでFIFOからデータを吸い出してリングバッファへ積み、セマフォやイベントフラグでタスクを起こすまでを行い、解析処理はタスク側に置く。Linuxのトップハーフ/ボトムハーフも同じ考え方を別の名前で実装したものになる。
試験での引っ掛け
ハンドラを長くすると他の割込みの応答が遅れる、という因果を「CPU性能が足りない」と取り違えないこと。ハンドラとタスクが共有する変数は、割込み禁止や専用の排他手段で守る必要があり、タスク間のセマフォと同じ扱いでは足りない。多重割込みを許すかどうかで、スタック消費の見積りも変わる。
関連用語
出た過去問
出典:平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7(IPA)解説で登場
リアルタイムシステムにおいて、アプリケーションタスクの要求によって入出力を行うデバイスドライバのタスク部が、要求された処理が完了したときに行う通知処理はどれか。
正解:イベントフラグを使って入出力要求元のタスクに入出力完了を通知する。
要点:完了通知はOSでなく要求元タスクへ同期機能で行う
デバイスドライバのタスク部は、割込みハンドラから処理完了を受け取ったあと、その事実を要求元のアプリケーションタスクへ知らせる必要がある。リアルタイムOSではイベントフラグやセマフォといった同期機能を使い、完了を待って待ち状態になっているタスクを実行可能状態へ戻す。通知の相手はOSやハードウェアではなく、あくまで待っているタスクである。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。