平成27年度 春期 午前Ⅱ 問9
オペレーティングシステム
多重割込みに関する問題
多重割込みを処理するリアルタイムOSの割込みハンドラの説明として,適切なものはどれか。
- ア処理の中断を極力避けるために,先頭で一時的に割込みを可能にした後は割込み禁止状態で処理を行う。
- イ先頭でタイマを設定し,一定期間は割込み禁止状態にして処理を行う。
- ウタスクで行う処理を少なくするために,割込みに起因する多くの処理は割込み可能状態にしたまま,割込みハンドラの中で行う。
- エ割込み禁止状態での処理を極力減らして,割込み可能状態で動作する。
答えと解説を見る
✓ これが正解エ割込み禁止状態での処理を極力減らして,割込み可能状態で動作する。
解説
割込み禁止の時間を短くし、ほとんどを割込み可能な状態で動かします。
多重割込みを扱うリアルタイムOSでは、ある割込みを処理している最中にも、より緊急度の高い割込みを受け付けられることが大切です。見分ける軸は、割込み禁止状態をどれだけ短くできるかです。割込み禁止状態が長く続くと、その間に起きた割込みへの応答が遅れ、決められた時間内に反応するという要求を満たせなくなります。そこで割込みハンドラは、割り込まれては困る部分だけを割込み禁止状態で処理し、残りは割込み可能状態で動かします。時間のかかる処理はタスクへ回し、ハンドラ自体は短く保つのが基本の形です。割込み禁止の時間は短く、ハンドラは軽く、と覚えると選べます。
ほかの選択肢はなぜ違うのか
- ア処理の中断を極力避けるために,先頭で一時…:先頭だけ割込みを許し、その後を割込み禁止状態で処理すると、ハンドラの大部分で新しい割込みを受け付けられません。優先度の高い割込みへの応答が遅れるため、多重割込みを処理する考え方とは逆です。
- イ先頭でタイマを設定し,一定期間は割込み禁…:タイマで決めた一定期間を割込み禁止状態にすると、その間に起きた割込みは緊急かどうかにかかわらず待たされます。応答の遅れが長くなり、多重割込みを素早く受け付けるという狙いに反します。
- ウタスクで行う処理を少なくするために,割込…:割込みに起因する多くの処理をハンドラの中で行うと、ハンドラが長くなり、その間タスクの処理は進みません。リアルタイム性を保つには、重い処理をタスクへ回し、ハンドラを短く保つほうが向いています。
出典:平成27年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問9
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)