プロトコル実行コンテキスト

プロトコル処理の基本的な実行コンテキストに注目することにする。

送信処理は、原則送信要求を行ったプロセスのコンテキストでドライバまで走り切る。ただしドライバの能力を越えて送信要求があった場合は送信データをdevice構造体に繋ぎ、BHハンドラにより遅延して再度ドライバの送信処理を起動する。再送機能をサポートするプロトコルではタイマ処理の延長で送信処理が動作することもある。

受信処理において、割り込みハンドラで実行するのはドライバの割り込みハンドラのみであり、その後の処理はBHハンドラに委ねる(backlogキューにデータを繋ぎBHハンドラの起動要求を出す)。BHハンドラは、受信可能な状態にデータを整えsock構造体にリンクするところまでを実行する。プロセスコンテキストで行われる処理はsock構造体からデータを取り出す処理だけである。

img115.gif

この構成は、以下のような効果がある。

  • 割り込みハンドラのコンテキストで実行する区間を 最小限に絞り、受信応答性を上げることができる。
  • 可能な限り同一のコンテキストで走行することにより、 処理の遅延を招きにくい。

(NIS)HirokazuTakahashi
2000年06月11日 (日) 22時29分57秒 JST
1