[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:BHハンドラ
}}}
= BHハンドラ = #SECTION06490000000000000000
BHハンドラもシステム上に一つしか存在できない。do_bottom_half関数でBHハンドラを起動する前にチェックを行っている。
また、BHハンドラと割り込みハンドラ、割り込み禁止区間の関係も微妙である。あまり凝った仕掛けを入れるのはあきらめ、大雑把な排他としたようだ。
* BHハンドラの起動条件。以下の条件が満たされないときは、 BHハンドラの起動をあきらめる。次にdo_bottom_half関数 が呼び出された時点でまとめて処理する。
* 他のCPU上でBHハンドラが動いていないこと
* 他のCPU上で割り込みハンドラが動いていないこと
* 他のCPUが割り込み禁止区間を走行していないこと
* 割り込みハンドラの起動条件。 カレントのCPU上でBHハンドラ、割り込みハンドラが動いている時は、 単にその上に割り込んで起動してしまう。(ハンドラのネスト)
* 他のCPUが割り込み禁止区間を走行していないこと
* 割り込み禁止区間走行条件。以下の条件が揃うまでの間、 ビジーウェイトすることになる。
* 他のCPUが割り込み禁止区間を走行していないこと
* 他のCPU上で割り込みハンドラを実行していないこと
* 他のCPU上でBHハンドラを実行していないこと
----
''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]