Linux のハードウェアタイマーの話
Linux 方面も最近動きが活発ですね.
カーネル2.6.13-rc1にて、タイマー割り込みの頻度「HZ」が変更可能になりました。その際に、デフォルトの値が以前の
HZ=1000
から
HZ=250
になりました。このデフォルト値変更は多くの議論を巻き起こしました。
デフォルト値を250から1000に戻してほしいという要求に対して、Linusは「それが必要なユーザーが1000に変更したらよいだけだろう」と反論しました。そして、「『デフォルトを1000にするべきだ』と主張するのであれば、それが本当に良いということを示すデータを見せろ」というのです。
議論の焦点となっているHZは、前述したとおりシステムの割り込みの頻度です。その頻度で割り込み処理が発生し、プロセスの切り替えを行ったり、Linuxが内部的にクロックを数え上げるために利用している「jiffies」という変数の値が増大したりします。
あと上の Windows の資料でちらっと書いてあった One-shot Timer で面白い実験をしている人もいるようです.
http://japan.linux.com/kernel/05/07/09/1345253.shtml?topic=1
他にも Linux は HPET のテストも積極的に行っているようで,検索してみるとちらほらひっかかりますね.
また基本的な実装についてソースレベルで追いかけるには,以下のページが参考になりました.
http://mowamowa.p.utmc.or.jp/~amedama/cgi-bin/wiki/wiki.cgi?page=Kernel%A5%E1%A5%E2+%BB%FE%B4%D6%B4%C9%CD%FD%CA%D4