2013年4月18日 星期四

Linux 中的 HZ, tick and jiffies

最近看了一些 Linux Driver 相關的的 code,但是我發現了 HZ 這個變數,但我找不到它是哪裡來的,還有一個不知道幹嘛用的全域變數 jiffies。

沒辦法的情況下,只好問 Google 了。

Google 大大給了我這個網址:
Linux Kernel: 簡介HZ, tick and jiffies

裡面說明這這三個變數都是系統的變數,都跟時間有關。


為了避免連結失效,我就把內容重新整理一下吧。


HZ
Linux 核心每隔固定週期會發出 timer interrupt (IRQ 0),HZ 是用來定義每一秒有幾次 timer interrupts。舉例來說,HZ 為1000,代表每秒有1000次 timer interrupts。HZ 可在編譯核心時設定


Tick
Tick 是 HZ 的倒數,意即 timer interrup t每發生一次中斷的時間。如HZ為 250 時,tick 為4毫秒 (millisecond)。


Jiffies
Jiffies為Linux核心變數(32位元變數,unsigned long),它被用來紀錄系統自開幾以來,已經過多少的tick。每發生一次 timer interrupt,Jiffies 變數會被加一。

  timer_after
  time_after_eq
  time_before
  time_before_eq
為四個取得 jiffies 的 marco,可以在 jiffies 溢位的情況下還可以正確的取得 jiffies。

原文為作者 trace Linux Kernel 得來的結果,這樣抄已經很不好意思。其它內容,還是到作者的網址看吧。


沒有留言:

張貼留言