2.1 割り込み処理とは

 プロセスがLinuxカーネル機能を呼び出すときにはシステムコールを利用しますが、ハードウェア側からLinuxカーネル機能を呼び出す場合は、割り込みと呼ばれる仕組みを利用します。

 Linuxカーネル2.6の割り込み機構は、Linuxカーネル2.4以前のものとほぼ同じ構造をしています。伝統的なUNIXの方式を採用せず、少々異なる方針に基づいて実装されています。2.6では、古いデバイスドライバに対応するために残されていた旧式の機能も削られ、マルチプロセッサ環境で、多くのデバイスを扱える構造になります。

 OSから効率良くデバイスを制御するためには、割り込み機構が必要です。割り込みを利用することによって、実際にハードウェアが利用可能な状態になるまで、CPUは別の作業に専念できます。割り込み機構があることで、効率の良いマルチタスク処理も可能となっています。

 入出力処理中のプロセスは、割り込みによって、入出力完了が通知されるまで実行権を手放します。対話型プロセスの場合は、端末から入力割り込みがあるまで、待機状態を続けます。

 また、割り込み機構があることによって、同時に複数のデバイスに対して処理を行うことも可能です。あるデバイスへ入出力要求を出した後、その完了を待たずに、ほかのデバイスに対して別の入出力要求を出せます。割り込みには、その割り込み要因を通知する仕組みがあり、割り込み発生時にどのデバイスに対する割り込みかを識別し、対応する入出力処理を再開できます。