基本情報技術者 2014年 秋期 午前(科目A) 問10
問題文
内部割込みに分類されるものはどれか。
選択肢
ア:商用電源の瞬時停電などの電源異常による割込み
イ:ゼロで除算を実行したことによる割込み(正解)
ウ:入出力が完了したことによる割込み
エ:メモリパリティエラーが発生したことによる割込み
🔒 解説は解答すると表示されます
内部割込みの分類【午前解説】
正解の理由
内部割込み(例外)は、CPU が命令実行の結果として同期的に発生する割込みを指します。演算中にゼロで除算を行った場合は、命令実行に伴って即座に発生する「実行時例外」であり、これは内部割込みに該当します。したがって、ゼロ除算による割込み(イ)が内部割込みに分類されます。
また補足として、ソフトウェア割込み(trap)はプログラムが意図的に発生させる同期的な例外であり、分類上は内部割込み(例外)に含めて扱われることが多い点に注意してください。トラップは意図的な同期例外、ゼロ除算は意図しない実行時例外という違いがあります(発生原因の違い)。
解法ステップ
- 「内部」と「外部」を区別する観点を確認する:同期的か非同期的か(命令実行に直接紐づくかどうか)。
- 各選択肢が命令の実行によって生じるものか、外部ハードウェアや電源など外因によるものかを判定する。
- 命令実行に起因する同期的なものを内部割込みと判断する。
この問題では、ゼロ除算は1命令の実行時に発生する同期的な例外なので内部割込みです。対して、電源障害や入出力完了は外部要因(非同期)です。メモリパリティエラーはハードウェア検出のエラーで、通常は外部(非同期)として扱われます。
選択肢別の誤答解説
-
ア: 商用電源の瞬時停電などの電源異常による割込み
- 電源変動は外部物理要因に由来し、CPU の外部から非同期に発生するため「外部割込み(外的割込み)」に分類されます。たとえば電源異常はノンマスカブル割込み(NMI)や機械チェックに相当する扱いになることが多いです。
-
イ: ゼロで除算を実行したことによる割込み
- 命令の実行結果として即座に発生する同期的な実行時例外であり、内部割込み(例外)に該当します。したがって本問の正解です。
-
ウ: 入出力が完了したことによる割込み
- I/O 完了はデバイス(外部)のイベントであり、CPU の外から非同期に発生する割込みです。外部割込みに分類されます。
-
エ: メモリパリティエラーが発生したことによる割込み
- メモリパリティエラーはハードウェア側で検出される故障で、命令実行そのものに同期して必ず発生するとは限りません。一般には非同期のハードウェア異常として扱われ、外部割込み(あるいは機械チェック系の例外)に分類されることが多いです。
よくある誤解
-
ソフトウェア割込み(trap)は常に「外部」だと思い込む
- 実際はトラップはプログラムが意図的に発生させる同期的な例外であり、内部割込み(例外)に含めて扱うことが一般的です。発生の同期性(命令に紐づくかどうか)が分類の鍵です。
-
「ハードウェア由来 = 外部」と単純に考える誤り
- ハードウェア検出のエラーでも、命令実行に同期して必ず発生する(例:命令によるメモリアクセスで発生するページフォルトなど)ものは内部扱いされることがあります。重要なのは発生のタイミング(同期/非同期)です。
-
メモリ関連のエラーは常に内部だと思う誤り
- パリティエラーや機械故障は非同期で起きることが多く、外部(機械チェック)扱いになる場合が多い点に注意してください。
補足コラム
- 内部割込み(例外)と外部割込み(割込み)は次の観点で整理されます:
- 同期(synchronous) = 内部(例外、trap、実行時エラーなど)
- 非同期(asynchronous) = 外部(I/O 割込み、電源障害、外部信号など)
- さらに「マスク可能(maskable)」か「マスク不可(non-maskable)」かで処理優先度や応答方法が異なります。電源障害や機械チェックは NMI に相当し、OS でも特別扱いされます。
- OS は内部例外と外部割込みをそれぞれ異なるハンドラで処理します。内部例外はフォールト処理や例外復帰、外部割込みはデバイスサービスルーチンが対応します。
FAQ
Q1: トラップと割込みは同じですか?
A1: 厳密には区別されます。トラップ(ソフトウェア割込み)はプログラムが意図的に発生させる同期例外で、外部デバイス由来の割込みは非同期です。分類上は両方とも CPU に通知される「割込み」の一種ですが、同期性と発生原因で区別します。
A1: 厳密には区別されます。トラップ(ソフトウェア割込み)はプログラムが意図的に発生させる同期例外で、外部デバイス由来の割込みは非同期です。分類上は両方とも CPU に通知される「割込み」の一種ですが、同期性と発生原因で区別します。
Q2: ページフォルトは内部割込みですか?
A2: はい。ページフォルトは命令実行中に発生する同期的な例外で、内部割込み(例外)に分類されます。
A2: はい。ページフォルトは命令実行中に発生する同期的な例外で、内部割込み(例外)に分類されます。
Q3: メモリパリティエラーは内部割込みに含まれますか?
A3: 一般にはハードウェアが非同期に検出する故障として扱われ、外部(機械チェック系)に分類されることが多いです。ただし教科書や体系によって扱いが異なる場合があるため、分類基準(同期性)で判断してください。
A3: 一般にはハードウェアが非同期に検出する故障として扱われ、外部(機械チェック系)に分類されることが多いです。ただし教科書や体系によって扱いが異なる場合があるため、分類基準(同期性)で判断してください。
関連キーワード: 内部割込み、例外、同期割込み、非同期割込み、トラップ、ゼロ除算、ノンマスカブル割込み、メモリパリティエラー

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

