Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
Linuxの時計処理は二つに分けられている。一つがハードウェア割り込みハンドラとして動作する部分であり、もう一つがBHハンドラとして動作する部分である。
割り込みハンドラとして動く時計(do_timer)はjiffiesと呼ばれるシステム起動からの時刻を数える変数を更新と、カレントプロセスに関する処理を行う。それ以外の処理は全て遅延処理として実現している。
カレントプロセスに対する処理は、v2.4でBHハンドラから割り込みハンドラの処理へ移された。
クロック処理本体(timer_bh関数)はBHハンドラとして起動される。この関数では以下にあげた処理を実行する。割り込みハンドラと異なり大きく処理が遅延させられる事もありうる。その場合、このBHハンドラ(timer_bh関数)が起動される前に、割り込みハンドラ(do_timer関数)が複数回動いていることもあるので、その場合timer_bh関数では数クロック分の処理をまとめて行わねばならない。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[PageInfo]
LastUpdate: 2008-08-27 14:18:39, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members