フリーキーズ | 独学プログラミング

割り込み(interrupt)とは

最終更新日

情報科学とコンピューティングにおいて、「割り込み」とは、ハードウェアデバイスやソフトウェアプログラムがコンピュータの中央処理装置(CPU)に送信する信号で、イベントや状態に直ちに注意を払う必要があることを示すものです。CPUは割り込みを受信すると、現在のタスクを一時的に中断して状態を保存し、割り込みハンドラまたは割り込みサービスルーチン(ISR)と呼ばれる特定のルーチンの実行を開始し、イベントや状態に対処します。ISRが完了すると、CPUは前のタスクに戻り、中断したところから続行します。

割り込みは、CPUとキーボード、マウス、プリンター、ネットワークカードなどの周辺機器との効率的な通信を可能にし、オペレーティングシステムがリソースを管理し、リアルタイムでイベントに対応できるようにするため、コンピュータシステムにおいて極めて重要です。

割り込みの例

1. キーボード入力

キーボードのキーを押すと、割り込み信号が発生し、CPUに送信されます。CPUはキーボードに関連する割り込みハンドラを実行し、押されたキーを読み取って入力処理(画面に文字を表示する、コマンドを実行する、カーソルを移動する等)を行います。

2. マウスの入力

同様に、マウスを動かしたり、ボタンをクリックしたりすると、マウスから割り込み信号が発生します。CPUはマウスの割り込みハンドラを実行し、移動やボタンのクリックを処理してカーソル位置を更新したり、対応する動作(アイテムの選択、ウィンドウのドラッグなど)を実行します。

3. タイマ割り込み

多くのコンピュータシステムでは、1秒間に数回、定期的に割り込みを発生させるタイマーを使用しています。このタイマー割り込みによって、オペレーティングシステムはシステム時間の更新、マルチタスクの管理、ハードウェアデバイスの監視などのタスクを実行できます。

4. ディスクI/Oの完了

CPUとストレージデバイス(ハードディスクやSSDなど)間のデータ転送が完了すると、ストレージデバイスはCPUに通知するための割り込みを発生させます。CPUは割り込みハンドラを実行し、転送されたデータを処理した後、前のタスクを続行します。

5. ネットワーク通信

ネットワークカードがネットワークからデータを受信すると、CPUに通知するための割り込みを発生させます。CPUはネットワークカードの割り込みハンドラを実行し、受信したデータを処理し、アプリケーションに転送したり、ネットワークの状態を更新したりといった適切な処理を行います。

まとめ

要約すると、「割り込み」とは、情報科学とコンピューティングにおける信号で、ハードウェアデバイスやソフトウェアプログラムがCPUに送信し、イベントや状態が直ちに注意を要することを示すものです。割り込みは、CPUと周辺機器との効率的な通信を可能にし、オペレーティングシステムがリソースを管理し、リアルタイムでイベントに対応することを可能にします。割り込みの例としては、キーボード入力、マウス入力、タイマー割り込み、ディスクI/O完了、ネットワーク通信などがあります。