Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
linuxではハードウェア割り込みハンドラを応答性の必要な部分とそうでない部分の二段階で処理している。クロック処理、TCP/IPプロトコル処理などはソフト割り込みハンドラで実現されている。このハンドラはlinuxカーネルが行う処理が一区切りついたタイミング(システムコール出口、割り込みハンドラ出口、スケジューラ)で実行される。
もともとLinuxにはBHハンドラと呼ばれる遅延処理用のソフト割り込みハンドラとしてBHハンドラメカニズムが実装されていた。ただし、このメカニズムはマルチプロセッサシステムでは性能が発揮できないため、SMP対応強化のため旧型のBHハンドラに代わり設計された。UNIプロセッサで利用する範囲では恩恵にあずかれないが、旧BHハンドラとことなりSMPではソフト割り込みハンドラがマルチスレッド動作できるため、性能向上が期待できる。ネットワーク処理ハンドラなどがBHハンドラからこちらハンドラに書き換えられている。詳しくはマルチプロセッサの章で説明する。
現時点では、4種類のソフト割り込みレベルが定義されている。ソフト割り込みの要求(__cpu_raise_softirq関数)を行うと、しばらく後にdo_softirqが呼び出され、その中から各レベルに登録されたソフト割り込みハンドラが起動される。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[ページ情報]
更新日時: 2008-08-27 15:05:33, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー