最終更新日:2026年7月25日
fe fe-technology computer-system
まず結論
割込み(Interrupt)とは、実行中の処理をいったん中断して、優先して別の処理を行う仕組みです。
英語の interrupt は「割り込む」「中断させる」という意味です。
基本情報技術者試験では、まず次のように切り分けると分かりやすいです。
実行中のプログラムが原因
→ 内部割込み
タイマー・入出力装置・外部信号が原因
→ 外部割込み
「インターバルタイマーによって、指定時間経過時に生じる割込み」と出たら、外部割込み と判断します。
直感的な説明
CPUは、プログラムを順番に実行しています。
しかし、実行中でも、すぐ対応したいことが起きる場合があります。
例えば、
タイマーで一定時間が経過した
入出力装置から処理完了の通知が来た
計算中にゼロ除算が起きた
存在しないページへアクセスした
このようなとき、今の処理をいったん止めて、先に必要な処理を行います。
これが割込み(Interrupt)です。
ポイントは、割込みの原因がどこにあるか です。
プログラムの実行中に、そのプログラムが原因で起きる
→ 内部割込み
プログラムの外側から通知される
→ 外部割込み
定義・仕組み
割込みは、CPUが実行中の処理を一時停止し、割込みに対応する処理を行ってから、元の処理に戻る仕組みです。
大きく分けると、内部割込みと外部割込みがあります。
| 種類 | 原因 | 例 |
|---|---|---|
| 内部割込み | 実行中のプログラムが原因 | ゼロ除算、オーバーフロー、ページフォールト、ソフトウェア割込み |
| 外部割込み | 実行中のプログラム以外が原因 | タイマー割込み、入出力装置からの通知、外部信号 |
内部割込み
内部割込みは、実行中のプログラムが原因で発生する割込みです。
例えば、次のような場合です。
0で割ろうとした
計算結果が表せる範囲を超えた
存在しないページへアクセスした
ソフトウェア割込み命令を実行した
これらは、実行中の命令やプログラムの動作がきっかけになっています。
外部割込み
外部割込みは、実行中のプログラム以外の原因で発生する割込みです。
例えば、次のような場合です。
タイマーで指定時間が経過した
入出力装置から処理完了の通知が来た
外部機器から信号が来た
インターバルタイマーは、CPU内部の計算ミスではなく、タイマーによる通知です。
そのため、外部割込みに分類されます。
公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。割込みは、CPUやOS、コンピュータシステムの基本動作と関係が深い内容です。
科目Aでどう出る?
科目Aでは、割込みの例から、内部割込みか外部割込みかを選ぶ問題が出やすいです。
選択肢を切るときは、原因を見ます。
| 問題文のキーワード | 判断 |
|---|---|
| インターバルタイマー、指定時間経過 | 外部割込み |
| 入出力装置からの通知 | 外部割込み |
| オーバーフロー | 内部割込み |
| ゼロによる除算 | 内部割込み |
| 存在しないページへのアクセス | 内部割込み |
| ソフトウェア割込み命令 | 内部割込み |
例えば、次のように、
インターバルタイマーによって、指定時間経過時に生じる割込み
とあれば、タイマーが原因です。
実行中のプログラムの計算結果や命令エラーが原因ではないので、外部割込みです。
一方、
演算結果のオーバーフロー
ゼロによる除算
は、実行中のプログラムが原因なので内部割込みです。
どんな場面で使う?
OSや入出力処理、タスク制御の問題では、割込みの考え方が役立ちます。
例えば、次のような説明が出たときです。
- 入出力処理が完了したのでCPUに知らせる
- タイマーで一定時間ごとに処理を切り替える
- 異常な命令実行を検出して例外処理を行う
- ページフォールトが発生して必要なページを読み込む
このときは、まず次のように見ます。
外部からの通知か
プログラム実行中の異常か
外部からの通知なら外部割込み、プログラム実行中の異常なら内部割込みです。
よくある誤解・混同
一番混同しやすいのは、タイマー割込みを内部割込みだと思ってしまうことです。
| 混同しやすい点 | 正しい理解 |
|---|---|
| タイマーはCPUが使うので内部割込み | タイマー通知は実行中プログラムの原因ではないので外部割込み |
| ゼロ除算は外部から起きる | ゼロ除算は実行中プログラムが原因なので内部割込み |
| ページフォールトはメモリの話なので外部割込み | 存在しないページへのアクセスは実行中プログラムが原因なので内部割込み |
| ソフトウェア割込みは外部割込み | ソフトウェア割込み命令の実行なので内部割込み |
判断に迷ったら、次の一文で考えます。
実行中のプログラムが原因か?
原因がプログラム側にあれば内部割込みです。
原因がタイマーや入出力装置など、プログラムの外側にあれば外部割込みです。
まとめ(試験直前用)
- 割込み(Interrupt)は、実行中の処理を一時中断して優先処理を行う仕組み
- 実行中プログラムが原因なら 内部割込み
- タイマー、入出力装置、外部信号が原因なら 外部割込み
- ゼロ除算、オーバーフロー、ページフォールト、ソフトウェア割込みは内部割込み
- インターバルタイマーによる指定時間経過は外部割込み