読み方 : にゅうしゅつりょくわりこみ
入出力割り込み【I/O interrupt】I/O割り込み
概要

コンピュータにおける「割り込み」(interrupt)とは、CPUが現在実行中の処理を一時中断し、別の処理に切り替える仕組みである。入出力割り込みはその代表的な類型の一つで、ストレージへの読み書き完了、キーボード入力の検出、マウスボタンのクリック、ネットワークからのパケット受信、プリンタの印刷完了など、入力装置や出力装置が特定の状態に達したことをCPUに伝える。
割り込みが発生するまでの流れは次のようになる。CPUは入出力処理を装置に指示した後、無関係な別の処理を進める。装置は与えられた処理が完了すると(あるいはあらかじめ指定されたイベントが発生すると)、割り込み信号をCPUに送出する。
CPUはこの信号を受け取ると現在実行中の命令を区切りのよい箇所で一時停止し、レジスタの内容などをスタックに退避してから、あらかじめ登録された「割り込みハンドラ」(ISR:Interrupt Service Routine)と呼ばれるプログラムを実行する。割り込みハンドラの処理が終わったら、CPUは退避しておいた情報を復元して元の処理に復帰する。
現代のコンピュータでは、CPUが各装置から個別に報告を受けるのではなく、複数の装置からの割り込みを管理する「割り込みコントローラ」がCPUと装置の仲介役となっており、優先度制御の仕組みと組み合わせて使用されることが多い。一方、割り込みの仕組みを使わずにCPUが装置の完了を繰り返し確認し続ける方式は「ポーリング」(polling)と呼ばれる。ポーリングは実装が単純である反面、CPUは装置側の処理待ち状態となるため無駄が多い。