基本情報技術者 2019年 春期 午前(科目A) 問09
問題文
外部割込みの原因となるものはどれか。
選択肢
ア:ゼロによる除算命令の実行
イ:存在しない命令コードの実行
ウ:タイマによる時間経過の通知(正解)
エ:ページフォールトの発生
🔒 解説は解答すると表示されます
外部割込みの原因【午前解説】
正解の理由
ウ(タイマによる時間経過の通知)は外部ハードウェア(タイマ)から生成される割込みであり、CPU実行中の命令とは独立して非同期に発生します。したがって「外部割込みの原因」として正しいです。タイマ割込みはハードウェア割込みの代表例で、割込みコントローラ経由でCPUに通知され、割込みハンドラにより処理されます。
解法ステップ
- 各選択肢が「どのように発生するか」を判別する(外部装置起点か命令実行起点か)。
- 「外部装置起点で非同期に発生」するものを外部割込みと判断する。
- 同期的に命令実行に紐づく例は例外(内部割込み)として除外する。
- 選択肢を当てはめて最も合致するものを選ぶ(この問題ではタイマ通知)。
選択肢別の誤答解説
- ア: ゼロによる除算命令の実行
- 誤り。ゼロ除算は実行中の命令によって引き起こされる同期的な例外(例外/トラップ)であり、外部装置からの割込みではありません。
- イ: 存在しない命令コードの実行
- 誤り。無効命令はCPUが命令デコーディング時に検出する内部例外で、外部割込みではありません。
- ウ: タイマによる時間経過の通知
- 正解。ウは外部ハードウェア(タイマ)が生成する非同期通知であり、外部割込みの典型例です。
- エ: ページフォールトの発生
- 誤り。ページフォルトはメモリアクセス命令に伴って同期的に発生する例外(フォルト)で、外部割込みとは異なります。
よくある誤解
- ページフォルトを「外部割込み」と誤認する:ページフォルトはメモリアクセス命令実行時に同期的に発生する例外であり外部割込みではありません。
- ゼロ除算や無効命令をハードウェア割込みと混同する:これらは命令の実行によって生じる同期的な例外(トラップ/フォルト/例外)です。
- 割込みと例外を同義と考える:両者は類似点もありますが、発生起点(外部装置 vs 命令実行)や同期性で区別されます。
補足コラム
外部割込み(ハードウェア割込み)はIRQラインやAPIC経由でCPUへ伝達され、マスク可能割込み(通常のデバイス割込み)とマスク不可割込み(NMI:非マスク不可割込み)があります。タイマ割込みはプリエンプティブマルチタスクの心臓部で、OSのスケジューラがこれを使って実行中のプロセスを切り替えます。一方、例外(例:ゼロ除算、無効命令、ページフォルト)は命令ストリームに対して同期的に発生し、エラー処理やメモリ管理機構で扱われます。
FAQ
Q: ページフォルトはハードウェアが関係するので外部割込みではありませんか?
A: ページフォルトはMMUやメモリサブシステムが検出しますが、発生は特定の命令実行に同期して生じる「例外」です。したがって外部割込みとは区別します。
A: ページフォルトはMMUやメモリサブシステムが検出しますが、発生は特定の命令実行に同期して生じる「例外」です。したがって外部割込みとは区別します。
Q: 割込みと例外は処理方法で違いがありますか?
A: 両者とも割込みハンドラ/例外ハンドラにより処理されますが、発生起点や同期性、リトライ可能性(フォルトはリトライ可能)など実装上の意味合いが異なります。
A: 両者とも割込みハンドラ/例外ハンドラにより処理されますが、発生起点や同期性、リトライ可能性(フォルトはリトライ可能)など実装上の意味合いが異なります。
Q: タイマ通知は常に外部割込みですか?
A: はい。タイマは外部ハードウェア(周辺装置)であり、その通知は外部割込みに分類されます。ただしソフトウェアタイマ(内部カウンタを用いた)など実装により扱いは異なります。
A: はい。タイマは外部ハードウェア(周辺装置)であり、その通知は外部割込みに分類されます。ただしソフトウェアタイマ(内部カウンタを用いた)など実装により扱いは異なります。
関連キーワード: 割込み、外部割込み、ハードウェア割込み、例外、トラップ、フォルト、ページフォルト、タイマ割込み、割込みコントローラ、IRQ、プリエンプション、例外処理

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

