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ページを見てみるとman 7 time

HZ の値はカーネルのバージョンやハードウェア プラットフォームによって異なります。i386 では状況は次のようになります。カーネル 2.4.x までは HZ は 100 で、jiffy 値は 0.01 秒でした。2.6.0 以降では HZ は 1000 に上げられ、jiffy は 0.001 秒になります。カーネル 2.6.13 以降では、HZ 値はカーネル構成パラメータで、100、250 (デフォルト)、または 1000 に設定でき、jiffy 値はそれぞれ 0.01、0.004、または 0.001 秒になります。カーネル 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 を示します。この値は 1 秒あたりの jiffy 数です。

参考文献

答え2

これらの情報源によると、ジフィー1/HZ(値が何でHZあれ)次のようになります。

これはカーネル依存のヘッダーファイルの1つで定義されます。例:

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

含まれるもの

/usr/include/linux/param.h

そして最終的には<sys/param.h>、アーキテクチャ固有のディレクトリにある から取得されます。例:

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

ソースを見ると、これはコンパイル時の定数であり、特定のシステムに依存することがわかります。

関連情報