関数が定期的に呼び出されて実行されている、ということです。あって、これがロードアベレージの計算をする関数です。ハードウェアタイマ割り込み毎にロードアベレージを計算して値を更新しているのが分かります。中身は以下になります。1分、5分、15分のロードアベレージ値を保存しています。キモに近づいてきました。プロセススケジューラの実装です。いう二つの数を引っ張りだして足しこんでいます。いずれも特定の状態のプロセスの数を表す数字です。いうメンバがあって、このメンバを見るといまプロセスがどのような状態にあるかが分かるようになっています。メンバの主な値はTASK_RUNNING実行中もしくは実行可能でCPU割り当てを待っている状態TASK_INTERRUPTIBLE割り込み可能な待ち状態。ユーザーからの入力待ちなど比較的時間がかかる事象。TASK_UNINTERRUPTIBLE割り込み不可能な待ち状態。ディスクI/O待ちなど短い事象。(他にもいくつかあります。実行可能にして...ということをランキュー(やウェイトキュー)に対してやっているわけです。状態のものの数を数えて単位時間で割って、ロードアベレージの値としている、というのが分かります。待ちなどのプロセス数もロードアベレージに加えられているというのもポイントではないでしょうか。使用率の実装を見てみます。CPU使用率の統計取得はプロセスアカウンティングなどと呼ばれることからも分かるとおり、個別のプロセスの統計から取っていくようになっています。ごとに統計が取られています。毎に周期的に割り込みを発生させるデバイス(ローカルAPIC)の割り込みハンドラから呼ばれるとなっています。