最終更新日:2026年7月25日
fe fe-technology computer-system
まず結論
割込みとは、実行中の処理をいったん止めて、優先して別の処理を行う仕組みです。
基本情報技術者試験では、外部割込みと内部割込みは、次のように切り分けます。
| 分類 | 原因 | 判断の合図 |
|---|---|---|
| 内部割込み | 実行中のプログラムが原因 | 0除算、オーバーフロー、ページフォールト、SVC |
| 外部割込み | CPU外部や装置側の要因 | 入出力割込み、タイマ割込み、機械チェック割込み |
特に、ハードウェアが異常を検知したときに発生する割込み は、機械チェック割込みとして 外部割込み に分類されます。
直感的な説明
割込みは、授業中に先生が説明している場面で考えると分かりやすいです。
先生が説明している途中で、次のようなことが起きたとします。
生徒が質問する
チャイムが鳴る
校内放送が入る
先生が板書ミスに気づく
このとき、先生は説明をいったん止めて、先に対応することがあります。
コンピュータでも同じです。
CPUがプログラムを実行している途中で、優先して対応すべきことが起きると、現在の処理をいったん中断して、割込み処理を行います。
ここで大事なのは、何が原因で割込みが起きたか です。
実行中のプログラムが原因
→ 内部割込み
CPU外部や装置側の原因
→ 外部割込み
例えば、プログラムの計算でオーバーフローが起きたなら、実行中のプログラムが原因なので内部割込みです。
一方で、ハードウェアが異常を検知した場合は、装置側の要因なので外部割込みです。
定義・仕組み
割込みは、実行中のプログラムをいったん中断し、割込みの原因に応じた処理を優先して実行する仕組みです。
割込みには、大きく分けて内部割込みと外部割込みがあります。
| 分類 | 意味 |
|---|---|
| 内部割込み | 実行中のプログラムや命令の実行が原因で起こる割込み |
| 外部割込み | CPU外部の装置やハードウェア側の要因で起こる割込み |
内部割込みの例は、次のようなものです。
| 例 | 内容 |
|---|---|
| 0除算 | 0で割ろうとしたときに発生する |
| オーバーフロー | 演算結果が扱える範囲を超えたときに発生する |
| ページフォールト | 主記憶にないページを参照しようとしたときに発生する |
| SVC割込み | プログラムがOSにサービスを依頼するときに発生する |
| 不正命令 | 実行できない命令を実行しようとしたときに発生する |
| メモリ保護違反 | アクセスしてはいけない領域へアクセスしたときに発生する |
外部割込みの例は、次のようなものです。
| 例 | 内容 |
|---|---|
| 入出力割込み | 入出力装置の処理完了などで発生する |
| タイマ割込み | 一定時間の経過などで発生する |
| 機械チェック割込み | ハードウェア異常を検知したときに発生する |
| 電源異常割込み | 電源異常や停電の検知で発生する |
| コンソール割込み | 操作員や外部操作によって発生する |
FE試験では、細かいCPU制御よりも、
原因がプログラム側か、装置・ハードウェア側か を見ることが大切です。
このテーマは、基本情報技術者試験の「コンピュータ構成要素」や「OS」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、割込みの説明から、内部割込みか外部割込みかを選ぶ問題が出やすいです。
判断するときは、まず発生原因を見ます。
| 説明の中心 | 分類 | 理由 |
|---|---|---|
| 主記憶に存在しないページをアクセスしようとした | 内部割込み | 実行中のプログラムによるページフォールト |
| OSに対してサービスを依頼した | 内部割込み | SVC割込み |
| ハードウェアが異常を検知した | 外部割込み | 機械チェック割込み |
| 浮動小数点演算でオーバーフローが起きた | 内部割込み | 演算処理が原因 |
選択肢以外にも、次の例を押さえておくと安全です。
| 割込みの例 | 分類 | 判断の合図 |
|---|---|---|
| 0で割ろうとした | 内部割込み | プログラムの演算が原因 |
| 不正な命令を実行しようとした | 内部割込み | 命令実行が原因 |
| アクセス権のないメモリを参照した | 内部割込み | プログラムのアクセスが原因 |
| 入出力装置が処理完了を通知した | 外部割込み | 装置側からの通知 |
| タイマが一定時間の経過を通知した | 外部割込み | タイマ装置が原因 |
| 電源異常を検出した | 外部割込み | ハードウェア・電源側の原因 |
試験では、次の一言でかなり切りやすくなります。
プログラムが原因なら内部
装置・ハードウェアが原因なら外部
どんな場面で使う?
OSやCPUの処理の流れを読むときに、割込みの考え方が役立ちます。
例えば、CPUがプログラムを実行している途中で、入出力装置から処理完了の通知が来たとします。
この場合、CPUは実行中の処理を一時的に中断し、入出力完了に対応する処理を行います。
通常の処理を実行
↓
入出力装置から通知
↓
割込み処理を実行
↓
元の処理に戻る
このように、割込みは「今の処理を止める」だけでなく、必要な処理を先に済ませて、元の処理へ戻るための仕組みです。
問題文で読むときは、次の点を確認すると理解しやすくなります。
1. 何が原因で割込みが発生したか
2. 実行中のプログラムが原因か
3. 外部装置やハードウェアが原因か
4. 割込み処理後に元の処理へ戻るか
よくある誤解・混同
誤解1:OSに依頼するのでSVC割込みは外部割込みだと思う
SVC割込みは、OSにサービスを依頼するときに発生する割込みです。
名前だけ見ると、OSという外側のものに依頼しているように感じます。
しかし、SVC割込みは、実行中のプログラムが命令によって発生させる割込みです。
そのため、分類は 内部割込み です。
OSに依頼する
でも、実行中のプログラムが原因
→ 内部割込み
誤解2:ページフォールトを外部割込みだと思う
ページフォールトは、主記憶に存在しないページを参照しようとしたときに発生します。
ディスクからページを読み込むことがあるため、外部装置の話に見えるかもしれません。
しかし、発生のきっかけは、実行中のプログラムがそのページを参照したことです。
そのため、ページフォールトは 内部割込み です。
誤解3:ハードウェア異常を内部割込みだと思う
ハードウェア異常は、CPUや装置側で検知される外部要因です。
そのため、機械チェック割込みとして、外部割込みに分類されます。
ハードウェアが異常を検知
→ 機械チェック割込み
→ 外部割込み
誤解4:オーバーフローを外部割込みだと思う
オーバーフローは、演算結果が扱える範囲を超えたときに発生します。
演算中に起きるため、実行中のプログラムが原因です。
そのため、オーバーフローは 内部割込み です。
| 迷いやすい例 | 正しい分類 |
|---|---|
| ページフォールト | 内部割込み |
| SVC割込み | 内部割込み |
| オーバーフロー | 内部割込み |
| 機械チェック割込み | 外部割込み |
| 入出力割込み | 外部割込み |
| タイマ割込み | 外部割込み |
まとめ(試験直前用)
- 割込みは、実行中の処理をいったん中断して優先処理を行う仕組み
- 実行中のプログラムが原因 なら内部割込み
- CPU外部・装置・ハードウェアが原因 なら外部割込み
- SVC、ページフォールト、オーバーフローは内部割込み
- 入出力、タイマ、機械チェックは外部割込み