Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
割り込みが発生するとCPUは自動的にカーネルモードに移行し、割り込みエントリの先頭に処理を移す。割り込み種別に応じた割り込みハンドラの実行により、割り込まれたプロセスの状態に影響が出ている場合があり、その場合、それに対応した処理を行う。
カレントプロセスに対し、再スケジューリング要求やシグナルが発生している場合であっても、割り込み復帰先がカーネルモード…システムコール処理中、割り込み中(割り込みがネストしている)…の場合は、処理をスキップする。このイベントはプロセスがユーザモードに復帰する時点で処理される。(このタイミングでは処理を行うと、カーネルデータに矛盾を生じる)
common_interrupt() レジスタのセーブ 割り込みハンドラ実行(do_IRQ関数) if(ユーザモードへの復帰) goto ret_with_reschedule (system_callの戻りの途中へジャンプ) レジスタのリカバ do_IRQ() 割り込み種別に対応した割り込みハンドラの呼び出し if(BHハンドラがある) BHハンドラ実行(do_bottom_half関数)
(NIS)HirokazuTakahashi
2000年06月11日 (日) 22時29分57秒 JST1
[PageInfo]
LastUpdate: 2008-08-27 14:46:41, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members