歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 關於Linux的Jiffies/Tick/HZ

關於Linux的Jiffies/Tick/HZ

日期:2017/3/1 13:53:10   编辑:關於Linux
關於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