私が理解しているように、USER_HZ
定数は Linux 2.6 で追加され、ユーザー空間の値の期待から生じる問題を解決しました。Linux のHZ
以前のバージョンでは、値を変更するHZ
と、ユーザー空間アプリケーションの値が意図せずにスケーリングされる可能性があります。
USER_HZ
定数がこのスケーリングの問題をどのように解決するかについて混乱しています。たとえば、ユーザー空間アプリケーションが jiffies を秒に変換するとします。
long MY_HZ = sysconf(_SC_CLK_TCK);
/* num_jiffies acquired from /proc but
* simplified to 1000 here for clarity */
long num_jiffies = 1000;
long num_seconds = num_jiffies / MY_HZ;
ユーザー空間アプリケーションは呼び出しHZ
を介して値を決定してsysconf
いるため、スケーリングの問題を防ぐことはできませんか?
一方、ユーザー空間アプリケーションのソースにハードコードされた値があった場合、HZ
定数はスケーリングの問題をどのように防止しますか? ユーザー空間アプリケーションは、システムの.ハードコードされた定数が一致する保証はありませんか?USER_HZ
USER_HZ
USER_HZ
さらに、ユーザー空間で利用可能なすべてのクロックティック値 (例: /proc
) はすでに にスケーリングされていUSER_HZ
ますか? ユーザー空間プログラムは、 jiffiesの値が にスケーリングされているか にスケーリングされているかをどのように認識しますHZ
かUSER_HZ
?