割り込みハンドラ

linuxとしては、デバイスからの割り込みがどのCPUに入っても問題がないように作られている。

割り込み禁止区間は割り込みハンドラの実行はできない。他のCPUが割り込み禁止区間走行中に当CPUが割り込みを受けた場合、他のCPU上の割り込み禁止区間終了を当CPUはスピンロックして待ち続ける。逆に、他のCPUで割り込みハンドラの実行中の時は、当CPUは割り込み禁止区間に入ることはできず、当CPUはスピンロックして待ち続ける。

下図に、二つのCPU上での割り込みハンドラと割り込み禁止区間が相互に同期を取りながら実行する様子を示す。縦軸は時間を表し、時間の経過に従って下方向へ進んで行く。

img75.gif

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