平成24年度 春期 午前Ⅱ 問11
オペレーティングシステム
割込みハンドラ処理
多重割込みを処理するリアルタイムOSの割込みハンドラ処理として,適切なものはどれか。
- ア処理の中断を極力避けるために,先頭で一時的に割込みを可能にした後は割込み禁止状態で処理を行う。
- イ先頭でタイマを設定し,一定期間は割込み禁止状態にして処理を行う。
- ウタスクで行う処理を少なくするために,割込みに起因する多くのタスク処理も割込み可能状態にしたまま割込みハンドラの中で行う。
- エ割込み禁止状態での処理を極力減らして,割込み可能状態で動作する。
答えと解説を見る
✓ これが正解エ割込み禁止状態での処理を極力減らして,割込み可能状態で動作する。
解説
割込み禁止の区間を極力減らし、割込み可能状態で動作させます。
多重割込みを扱う割込みハンドラで大切なのは、ほかの割込みへの応答をできるだけ遅らせないことです。割込み禁止の状態が長いと、その間に発生したほかの割込みは受け付けられず、応答が遅れます。そこで、割込み禁止の状態で行う処理は、共有データの更新のように欠かせない部分だけに絞り、それ以外は割込み可能状態で動作させます。時間のかかる処理を割込みハンドラから外し、タスクに任せるのも同じ考え方です。割込みハンドラは短く、禁止区間はさらに短く、と覚えましょう。
ほかの選択肢はなぜ違うのか
- ア処理の中断を極力避けるために,先頭で一時…:先頭で一時的に割込みを可能にした後、残りを割込み禁止状態で処理すると、その長い区間でほかの割込みを受け付けられず、応答が遅れます。中断を避けることを優先して応答性を損なう、逆向きの方針です。
- イ先頭でタイマを設定し,一定期間は割込み禁…:タイマで一定期間を決めて割込み禁止にするやり方では、その期間に起きたほかの割込みが一律に待たされます。禁止区間を必要な処理の長さに合わせて最小にするという考え方と合いません。
- ウタスクで行う処理を少なくするために,割込…:割込みに起因するタスク処理まで割込みハンドラの中で行うと、ハンドラの処理が長くなり、ほかのタスクや後から来る割込みの処理が遅れます。時間のかかる処理はタスクに任せ、ハンドラは短く保つのが基本です。
出典:平成24年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問11
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)