Başlangıçta uzun ve mükemmel bir yorumu olan kernel / sched / loadavg.c dosyasına bakınız. I / O ya da bir kilit üzerinde beklemek).
Yorumun özü şu, ancak tam olarak okumaya değer:
* The global load average is an exponentially decaying average of
* nr_running + nr_uninterruptible.
*
* Once every LOAD_FREQ:
* nr_active = 0;
* for_each_possible_cpu(cpu)
* nr_active += cpu_of(cpu)->nr_running +
* cpu_of(cpu)->nr_uninterruptible;
* avenrun[n] = avenrun[0] *
* exp_n + nr_active *
* (1 - exp_n)
Gerçek hayat, kodu biraz karmaşık hale getirir: CPU başına sayaçlar, tickless çekirdekler, hotswap CPU'lar, sabit nokta exp (n) uygulaması gerektiren kayan nokta kodunun olmaması. Ancak bunların hepsinin yorumda açıklanan yöntemi sadakatle uygulamaya yönelik olduğunu görmek kolaydır.
Linux'un sadece sorunuzu cevaplayan süreçleri değil, konuları da saydığını göreceksiniz .