Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
プロトコル処理の基本的な実行コンテキストに注目することにする。
送信処理は、原則送信要求を行ったプロセスのコンテキストでドライバまで走り切る。ただしドライバの能力を越えて送信要求があった場合は送信データをdevice構造体に繋ぎ、BHハンドラにより遅延して再度ドライバの送信処理を起動する。再送機能をサポートするプロトコルではタイマ処理の延長で送信処理が動作することもある。
受信処理において、割り込みハンドラで実行するのはドライバの割り込みハンドラのみであり、その後の処理はBHハンドラに委ねる(backlogキューにデータを繋ぎBHハンドラの起動要求を出す)。BHハンドラは、受信可能な状態にデータを整えsock構造体にリンクするところまでを実行する。プロセスコンテキストで行われる処理はsock構造体からデータを取り出す処理だけである。
この構成は、以下のような効果がある。
(NIS)HirokazuTakahashi
2000年06月11日 (日) 22時29分57秒 JST1
[PageInfo]
LastUpdate: 2008-08-27 14:46:52, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members