将jiffies转换为毫秒
如何在Linux中手动将抖动转换为毫秒,反之亦然?我知道内核2.6具有此功能,但是我正在研究2.4(家庭作业),尽管我看了一下代码,但它使用了许多宏常量,我不知道它们是否在2.4中定义。
回答:
如先前的回答所述,jiffies
增量的速率是固定的。
为接受的函数指定时间的标准方法jiffies
是使用常数HZ
。
那是Hertz的缩写,或每秒的刻度数。在计时器滴答设置为1ms的系统上,HZ = 1000。一些发行版或体系结构可能使用另一个数字(以前是100)。
指定jiffies
函数计数的标准方法是使用HZ
,如下所示:
schedule_timeout(HZ / 10); /* Timeout after 1/10 second */
在最简单的情况下,这可以正常工作。
2*HZ /* 2 seconds in jiffies */HZ /* 1 second in jiffies */
foo * HZ /* foo seconds in jiffies */
HZ/10 /* 100 milliseconds in jiffies */
HZ/100 /* 10 milliseconds in jiffies */
bar*HZ/1000 /* bar milliseconds in jiffies */
最后两个有一个问题,但是,在具有10
ms计时器滴答的系统上,该HZ/100
值为1,并且精度开始受到影响。您可能会在0.0001到1.999之间的任何时间间隔内获得延迟(本质上是0-2毫秒)。如果您尝试HZ/200
在10ms的滴答系统上使用,则整数除法会给您0个捷夫!
因此,经验法则是,请小心使用HZ来获取微小值(接近1个吉菲)。
要进行另一种转换,可以使用:
jiffies / HZ /* jiffies to seconds */jiffies * 1000 / HZ /* jiffies to milliseconds */
您不应该期望比毫秒精度更好的东西。
以上是 将jiffies转换为毫秒 的全部内容, 来源链接: utcz.com/qa/429526.html