内部割り込み【internal interrupt】ソフトウェア割り込み/software interrupt
概要

コンピュータにおける「割り込み」(interrupt)とは、実行中の処理を一時中断して別の処理へ制御を移す仕組みである。内部割り込みはCPUが現在実行している命令の処理と連動して発生する。発生した割り込みに対して、あらかじめ定められた処理ルーチン(割り込みハンドラ)が呼び出され、対応が完了すると元の処理へ復帰する。
内部割り込みが発生する原因は、エラー、例外によるものと、プログラムが意図的に発行するものとに分けられる。前者の例としてゼロ除算、存在しない命令の実行、書き込みが禁止されたメモリ領域へのアクセスなどがある。CPUがこれらの異常を検知すると対応する例外ハンドラへ制御を移し、オペレーティングシステム(OS)がエラーの内容に応じてメッセージの表示や異常終了などの処理を行う。
後者は、利用者プログラムがOSの中核部である「カーネル」(kernel)の機能を呼び出す際に発生する。アプリケーションがカーネルの機能を呼び出すことはできないため、専用の割り込み命令を実行してCPUの実行モードをユーザーモードからカーネルモードへ切り替え、制御をOSに渡す。この仕組みを「システムコール」(system call)と呼び、その際に行われる割り込みを「SVC割り込み」(スーパーバイザコール割り込み)と呼ぶ。ファイル操作や入出力処理、プロセス管理といったOSの機能は、この経路を通じて安全に利用される。
これに対し、実行中のプログラムとは無関係な外部要因によって発生する割り込みを「外部割り込み」(external interrupt)または「ハードウェア割り込み」(hardware interrupt)という。キーボード入力やタイマーの満了、ディスクI/Oの完了、ネットワーク機器からの通知などがその例であり、プログラムの進行とは非同期に発生する。CPUは内部割り込みと外部割り込みをそれぞれ区別して処理し、対応する割り込みハンドラへ制御を移すことでシステム全体の動作を管理している。
関連用語
他の辞典等による「内部割り込み」の解説 (外部サイト)
- ウィキペディア「ソフトウェア割り込み」
- Insider's Computer Dictionary「ソフトウェア割り込み」
- Techopedia (英語)「Internal Interrupt」
- PC Magazine (英語)「internal interrupt」