Linux核心中jiffie的分辨率是什麼

Linux核心中jiffie的分辨率是什麼

Linux核心中jiffie的分辨率是多少?

根據目前的定時器來源(cat /sys/devices/system/clocksource/clocksource0/current_clocksource),Linux 使用 TSC 並且具有奈秒分辨率

根據http://lxr.free-electrons.com/source/include/linux/jiffies.hjiffie不小於1us,但可以更大。

有沒有辦法確定其當前解析度。

答案1

如果你看一下手冊頁man 7 time

HZ 的值因核心版本和硬體平台而異。在 i386 上,情況如下:在 2.4.x 及之前的內核上,HZ 為 100,給出的 jiffy 值為 0.01 秒;從 2.6.0 開始,HZ 提高到 1000,即 0.001 秒。從內核 2.6.13 開始,HZ 值是一個內核配置參數,可以是 100、250(預設值)或 1000,分別產生 0.01、0.004 或 0.001 秒的 jiffies 值。從核心 2.6.20 開始,可以使用更多頻率:300,該數字可均勻劃分常見視訊幀速率(PAL,25 HZ;NTSC,30 HZ)。

times(2) 系統呼叫是一個特例。它以內核常數 USER_HZ 定義的粒度報告時間。使用者空間應用程式可以
使用 sysconf(_SC_CLK_TCK)來確定該常數的值。

您可以查詢CLK_TCK常數:

$ getconf CLK_TCK
100

這告訴你HZ的值,即100。

參考

答案2

根據這些消息來源,該決議吉菲斯1/HZ(無論HZ發生什麼值):

它在與內核相關的頭文件之一中定義,例如,

/usr/include/asm-generic/param.h

其中包括來自

/usr/include/linux/param.h

最終來自<sys/param.h>,它可能位於特定於體系結構的目錄中,例如,

/usr/include/x86_64-linux-gnu/sys/param.h

來源表明它是一個編譯時常數並且取決於您的特定係統。

相關內容