Intel CPUは例外種別毎に独立したエントリを設けることができる。linuxでは、起動する例外ハンドラをセットした後は、全て同じ例外エントリルーチンを共用する。上記ページフォルトもこのルーチンを共用している。
Linuxにとって特に意味を持たない例外は、例外を発生させたプロセスに送るシグナルを生成するだけである。
各種例外エントリ()
例外ハンドラ情報をセット
goto error_code
error_code:
レジスタのセーブ(割込み発生時と同じように積み替える)
例外種別に応じた例外ハンドラを呼び出す
ret_from_exception:
if(ソフト割り込み要求がある) ソフト割り込み実行(do_softirq関数)
if(ユーザモードへの復帰)
goto ret_with_reschedule (system_callの戻りの途中へジャンプ)
レジスタのリカバ
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1