図1 ハードウエア割り込みとソフトウエア割り込み。ハードウエア割り込みの場合,即座に割り込みハンドラが実行されます。
図1 ハードウエア割り込みとソフトウエア割り込み。ハードウエア割り込みの場合,即座に割り込みハンドラが実行されます。
[画像のクリックで拡大表示]

 割り込みは,プロセスとハードウエア間で連絡を取り合うための仕組みです。キーボードやネットワーク・インタフェース・カード,USB機器といったさまざまなハードウエアは,この割り込みを利用しています。

 これらのハードウエアから割り込みが発生すると,カーネルは実行中の処理を中断し(あるいは終了後に),割り込みが要求する処理ルーチンを実行します。この処理ルーチンを「割り込みハンドラ」と呼びます。

 割り込みハンドラには,割り込みが発生した場合に備えてあらかじめ処理内容を登録しておきます。例えば,「キーボードから文字が入力されたらその文字を受け付ける」「通信相手が送信したパケットを受信する」など,ハードウエアの種類によってさまざまな処理が登録されています。

 割り込みには「ハードウエア割り込み」と「ソフトウエア割り込み」の2種類があります(図1)。

 ハードウエア割り込みは即時性が求められる処理に使われます。キーボード入力など,即時に処理しないと使い勝手が悪くなるような場合などです。

 一方,ソフトウエア割り込みは,割り込みが発生しても実行中のプロセスを中断しません。実行中のプロセスの終了後(あるいはCPUが空いた時間)に割り込みハンドラを実行します。ディスクI/Oの処理などにソフトウエア割り込みを用います。