基本情報技術者 2011年 春期 午前(科目A) 問09
問題文
外部割込みが発生するものはどれか。
選択肢
ア:仮想記憶管理での、主記憶に存在しないページへのアクセス
イ:システムコール命令の実行
ウ:ゼロによる除算
エ:入出力動作の終了(正解)
🔒 解説は解答すると表示されます
外部割込みの判別【午前解説】
正解の理由
入出力装置はデータ転送の完了や状態変化をCPUへ信号(IRQ)として伝え、これが外部割込みを引き起こします。したがって「入出力動作の終了」はハードウェア側からの非同期割込みであり、外部割込みに該当します。正解は エ です。
解法ステップ
- 「外部割込み」の定義を確認する(ハードウェア由来、非同期)。
- 各選択肢がハードウェア起因かソフトウェア起因かを判定する。
- 非同期か同期かを判定し、外部割込みの条件を満たすものを選ぶ。
選択肢別の誤答解説
- ア: 仮想記憶管理でのページ不在(ページフォルト)はCPUが命令を実行中に発生する同期例外で、外部割込みではありません。
- イ: システムコールはユーザプログラムからOSへ意図的に制御を移す「ソフトウェア割込み(トラップ)」であり外部割込みではありません。
- ウ: ゼロによる除算は算術例外(同期的な例外)でCPU内部の状態から発生し外部割込みに該当しません。
- エ: エ(入出力動作の終了)はI/O装置など外部ハードウェアからの信号による非同期割込みで、外部割込みに該当します。
よくある誤解
- 「システムコールが割込みだから外部割込みだ」と誤解する人が多いですが、システムコールはソフトウェア起因のトラップ(同期的例外)です。
- ページフォルトやゼロ除算も割込み扱いに見えても、いずれも命令実行と同期して発生する例外であり外部割込みとは起源が異なります。
補足コラム
割込みは大きく「外部割込み(ハードウェア割込み)」と「例外(同期的割込み、トラップ・フォルト)」に分かれます。外部割込みはIRQラインやNMIなどハードウェア信号で非同期に発生し、I/O完了やタイマ割込みが典型例です。一方、例外は命令実行と同期して発生し、ページフォルト、ゼロ除算、システムコールはここに分類されます。OSはそれぞれ異なるハンドラで処理します。
FAQ
Q1: システムコールは「割込み」ではないのですか?
A1: システムコールはソフトウェアが明示的に発生させるトラップ(同期例外)で、外部ハードウェア起因の外部割込みとは区別します。
A1: システムコールはソフトウェアが明示的に発生させるトラップ(同期例外)で、外部ハードウェア起因の外部割込みとは区別します。
Q2: DMA完了は外部割込みですか?
A2: はい。DMAなどのI/O装置からの完了通知は外部割込みに該当します。
A2: はい。DMAなどのI/O装置からの完了通知は外部割込みに該当します。
Q3: 外部割込みは常に非同期ですか?
A3: 原則として非同期ですが、タイミング的に命令境界で処理されるため見かけ上は命令実行中に扱われます。
A3: 原則として非同期ですが、タイミング的に命令境界で処理されるため見かけ上は命令実行中に扱われます。
関連キーワード: 外部割込み、ハードウェア割込み、例外、トラップ、ページフォルト、システムコール、入出力完了、IRQ、DMA、割込みハンドラ

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

