歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

關於Linux的Jiffies/Tick/HZ

關於Linux的Jiffies/Tick/HZ   Linux核心幾個重要跟時間有關的幾個名詞: HZ、tick、jiffies。   1.linux HZ   Linux核心每隔固定周期會發出timer interrupt (IRQ 0),HZ是用來定義每一秒有幾次timer interrupts。舉例來   說,HZ為1000,代表每秒有1000次timer interrupts,比較常見的設置是HZ=100。   可以通過 cat /proc/interrupt 查看timer中斷次數,並於一秒後再次觀察其值,通過前後差值可以估算HZ的值。   要檢查內核源碼中HZ的值是什麼,可以執行命令:   #cat kernel/.config | grep 'CONFIG_HZ='   還可以直接更改文件param.h   2.Tick   Tick是HZ的倒數,意即timer interrupt每發生一次中斷的時間。如HZ為250時,tick為4毫秒(millisecond)。   3.Jiffies   Jiffies為Linux核心變數(32位元變數,unsigned long),它被用來紀錄系統自開機以來,已經過多少的tick。每發生一次timer interrupt,Jiffies變數會被加一。在ARM體系結構中,jiffies被初始化為jiffies_64,而jiffies_64是一個u64位元變數,在kernel/timer.c中定義:   u64 jiffies_64 __cacheline_aligned_in_smp = INITIAL_JIFFIES;   即jiffies在系統開機時,並非初始化成零,而是被設為INITAL_JIFFIES(在文件include/linux/jiffies.h中定義為-300*HZ),即代表系統於開機五分鐘後,jiffies便會溢位。那溢位怎麼辦?事實上,Linux核心定義幾個macro(timer_after、time_after_eq、time_before與time_before_eq),即便是溢位,也能藉由這幾個macro正確地取得jiffies的內容。
Copyright © Linux教程網 All Rights Reserved