マナビング基本情報技術者

内部割込みと外部割込みの見分け方は?

基本情報技術者試験 平成30年度春期 午前 問10 / コンピュータ構成要素 › プロセッサ

過去問にチャレンジ

平成30年度春期 午前 問10

内部割込みに分類されるものはどれか。

  1. ア

    商用電源の瞬時停電などの電源異常による割込み

  2. イ

    ゼロで除算を実行したことによる割込み

  3. ウ

    入出力が完了したことによる割込み

  4. エ

    メモリパリティエラーが発生したことによる割込み

会話形式の解説

講師講師
割込みを分類するときは、何が発生のきっかけになったかを確かめます。どの事象が命令の実行によって起きていますか。
受験者受験者
電源異常はエラーなので、内部割込みかと思いました。
講師講師
エラーという名前だけでは決まりません。電源異常は実行中の命令が引き起こしたものではないため、外部割込みです。
受験者受験者
では、ゼロで除算する場合は、演算命令を実行したことが原因ですか。
講師講師
そのとおりです。ゼロ除算は命令の実行によって生じるので、内部割込みです。
受験者受験者
入出力の完了も処理に関係しますが、命令そのものが割込みを起こすわけではないのですね。
講師講師
はい。入出力の完了は入出力装置からCPUへ通知されるため、その割込みは外部割込みです。
受験者受験者
メモリパリティエラーはどうですか。エラーなので、ゼロ除算と同じ分類に見えます。
講師講師
紛らわしいところです。メモリパリティエラーによる割込みは、この問題では外部割込みに分類します。
受験者受験者
内部割込みに当たるのはゼロ除算ですね。エラーかどうかではなく、命令の実行が原因かどうかを見ます。
講師講師
その見方で判断できます。処理の完了を知らせる割込みと、命令の実行が原因の割込みも区別しましょう。

まとめ

内部割込みは、実行中の命令そのものが原因で生じる割込みです。ゼロ除算は演算命令の実行によって生じるため、正解です。電源異常、入出力完了、メモリパリティエラーによる割込みは、この問題では外部割込みに分類します。エラーという名前だけで判断せず、発生要因を確かめます。

解答・解説

正解はイです

この問題のテーマ

割込みを発生要因から内部割込みと外部割込みに分類する問題です。

解き方の考え方

実行中の命令そのものが原因なら内部割込み、命令とは別の要因から生じたなら外部割込みと判断します。各選択肢で、何が割込みを起こしたのかを確認します。

選択肢ごとの解説

  1. ×ア  商用電源の瞬時停電などの電源異常による割込み
    電源異常は、実行中の命令が引き起こしたものではありません。商用電源の瞬時停電などによる割込みは外部割込みです。
  2. ○イ  ゼロで除算を実行したことによる割込み
    ゼロ除算は、演算命令を実行したときに生じます。命令の実行が原因なので、内部割込みに当たります。
  3. ×ウ  入出力が完了したことによる割込み
    入出力の完了は、入出力装置からCPUへ通知されます。その通知による割込みは外部割込みです。
  4. ×エ  メモリパリティエラーが発生したことによる割込み
    メモリパリティエラーによる割込みは、本問では外部割込みに分類します。したがって、内部割込みを選ぶ設問の答えにはなりません。

POINT

  • 割込みの分類は、発生した事象の名前だけでなく、その発生要因に着目します。
  • エラーであっても、すべてが内部割込みになるわけではありません。
  • 処理の完了を知らせる割込みと、命令の実行が原因の割込みは区別します。

※出典:平成30年度春期 基本情報技術者試験 午前 問10