エンベデッドシステムスペシャリスト 2020年 午前2 問03
問題文
外部割込みの要因となる事象として、適切なものはどれか。
選択肢
ア:アクセスしようとしたページが主記憶に存在しないので、ページフォールトが発生した。
イ:システム管理命令を一般ユーザモードで実行しようとしたので、特権命令違反が発生した。
ウ:数値演算命令を実行したときに、除数が小さ過ぎたので、演算オーバフローが発生した。
エ:入出力動作が終了したので、DMAコントローラからプロセッサへの通知が発生した。(正解)
🔒 解説は解答すると表示されます
外部割込みの発生要因【午前2解説】
正解の理由
外部割込みは、プロセッサの外部にある装置などから通知される割込みです。入出力装置の処理完了やタイマの満了など、現在実行中の命令とは別に発生する事象が原因になります。
入出力動作が終了したとき、DMAコントローラがプロセッサへ通知するのは、外部装置からの通知です。そのため、外部割込みの要因として適切なのはエです。
解法ステップ
- 割込みの原因が、実行中の命令にあるのか、プロセッサの外部にあるのかを確認します。
- ページフォールトや特権命令違反など、命令の実行に伴って発生するものは内部要因と判断します。
- 入出力完了のように、外部装置から通知されるものを外部割込みとして選びます。
選択肢別の誤答解説
-
ア:ページフォールト
必要なページが主記憶にないとき、メモリへのアクセスを契機として発生します。プロセッサが実行中の命令に関連する例外であり、外部割込みではありません。 -
イ:特権命令違反
一般ユーザモードでシステム管理命令を実行しようとしたことが原因です。命令の実行に伴ってプロセッサ内部で検出される例外です。 -
ウ:演算オーバフロー
数値演算の結果などに異常が生じたとき、演算命令の実行に関連して発生する例外です。外部装置からの通知ではありません。 -
エ:DMAコントローラからの通知
入出力動作の完了を、DMAコントローラがプロセッサへ知らせています。外部装置に関係する非同期の通知なので、外部割込みに該当します。
よくある誤解
-
「主記憶にページがない」ので外部割込みだと思う
ページの読み込みにストレージが関係していても、ページフォールト自体はメモリアクセス時に検出される内部の例外です。 -
「異常が起きた割込み」はすべて外部割込みだと思う
割込みや例外は、異常の有無ではなく、発生原因がプロセッサ内部か外部かで分類します。 -
DMAを使うと割込みが発生しないと思う
DMAはデータ転送をプロセッサの負担を抑えて行いますが、転送完了をプロセッサに知らせるために割込みを利用することがあります。
補足コラム
内部割込みは、命令の実行やその結果に関連して発生します。ページフォールト、特権命令違反、演算例外などが代表例です。一方、外部割込みは、入出力装置からの通知やタイマなど、プロセッサの外部で発生する事象を知らせます。
外部割込みは、実行中の命令とは独立して発生するため、一般に非同期の割込みとして扱われます。
FAQ
Q. 入出力処理の完了通知は、なぜ外部割込みなのですか?
A. 入出力装置やDMAコントローラ側で発生した処理完了を、プロセッサへ通知するためです。実行中の命令そのものが原因ではありません。
A. 入出力装置やDMAコントローラ側で発生した処理完了を、プロセッサへ通知するためです。実行中の命令そのものが原因ではありません。
Q. ページフォールトは、ページの読み込みを待つので外部割込みではありませんか?
A. ページを読み込む処理に外部記憶装置が関わることはありますが、ページフォールトはメモリアクセス時にプロセッサが検出する例外です。原因の分類では内部要因です。
A. ページを読み込む処理に外部記憶装置が関わることはありますが、ページフォールトはメモリアクセス時にプロセッサが検出する例外です。原因の分類では内部要因です。
Q. 外部割込みは、必ず入出力装置から発生しますか?
A. いいえ。タイマなど、入出力装置以外の外部要因によっても発生します。
A. いいえ。タイマなど、入出力装置以外の外部要因によっても発生します。
関連キーワード: 外部割込み、内部割込み、例外、ページフォールト、DMA、入出力完了通知

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

