- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
如何在 Linux 中手动将 jiffies 转换为毫秒,反之亦然?我知道内核 2.6 有一个功能,但我正在研究 2.4(家庭作业),虽然我查看了代码,但它使用了很多宏常量,我不知道它们是否在 2.4 中定义。
最佳答案
正如前面的回答所说,jiffies
递增的速率是固定的。
为接受 jiffies
的函数指定时间的标准方法是使用常量 HZ
。
这是 Hertz 的缩写,即每秒的滴答数。在计时器刻度设置为 1 毫秒的系统上,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 毫秒计时器滴答的系统上,HZ/100
为 1,并且精度开始受到影响。您可能会在 0.0001 和 1.999 计时器滴答之间(基本上是 0-2 毫秒)之间得到延迟。如果您尝试在 10ms 滴答系统上使用 HZ/200
,整数除法会给您 0 jiffies!
所以经验法则是,对于微小的值(接近 1 jiffie 的值)使用 HZ 时要非常小心。
要换一种方式,你可以使用:
jiffies / HZ /* jiffies to seconds */
jiffies * 1000 / HZ /* jiffies to milliseconds */
你不应该期望比毫秒精度更好。
关于linux - 将 jiffies 转换为毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2731463/
我搜索了整个 Linux-3.13 代码,但找不到定义。也许这个问题很简单,但是却让我困惑了很久。而且我无法通过 Google 找到类似的主题 :( , 谁能告诉我? 提前致谢! 大家好,我找到了。它
来自 here : The value of HZ varies across kernel versions and hardware platforms. On i386 the situatio
内核维护一个名为 jiffies 的全局变量。它保存系统启动时的滴答/定时器中断数。 每次发生定时器中断时,内部内核计数器的值都会增加。 在无滴答内核/动态滴答中,中断不会定期发生,jiffies 的
我正在使用 msecs_to_jiffies(msecs) 来获得延迟。我需要延迟 16 毫秒。但问题是函数为输入 1-10 返回 1,为 11-20 返回 2,为 21-30 返回 3 等等。因此我
我有一段代码,我想以秒为单位计算时间。虽然我得到的时间是以 jiffies 为单位的,但我如何将它转换为秒? 这是我的内核代码: #include #include #include #incl
我正在尝试添加 davisp/jiffy作为 Ejabberd 中的 rebar 依赖项,因此我可以在模块中进行一些 JSON 解析。我发现this tutorial ,他们将 Jiffy 添加为另一
这个问题在这里已经有了答案: Python: How to get number of mili seconds per jiffy (3 个答案) 关闭 8 年前。 在 linux 上,我正在用
在内核中,我想将 jiffies 与毫秒进行比较。我们可以在 if 语句中用 5 毫秒这样做吗?你能帮帮我吗? 吉菲斯>5 最佳答案 来自include/linux/jiffies.h: extern
我在嵌入式系统上使用 Linux 2.6.36。我尝试用信号量来编程。为此,我需要 jiffies.h 库中的一个函数。到目前为止一切都很好。当我包含 Lib 时 无论是这样 #include 或者
我想获取Linux“jiffies”变量的物理地址,这样我就可以通过读取这个内存地址的内容来读取它。 最佳答案 在内核模式代码(例如可加载内核模块)中,您需要包含 头文件。它包含 jiffies 的定
queue_delayed_work(struct workqueue_struct *wq,struct delayed_work *dwork,unsigned long delay) 在上面的函
据我所知,Linux内核中的“jiffies”是开机后的滴答数,一秒内的滴答数用“HZ”来定义,所以理论上: (uptime in seconds) = jiffies / HZ 但根据我的测试,上述
cat /proc/stat gives values in jiffies cat /proc/[pid]/stat gives values in tick count. tickcount和ji
重启后,jiffies 没有初始化为零,而是初始化为某个高值(接近环绕)。 例如(重启后立即): cat /proc/timer_list | grep jiffies .idle_jiffi
我有一段用户空间代码正在解析/proc/PID/task/TID/stat 以获取 cpu 使用情况。我可以使用 HZ 来获取每秒的 jiffies,但是这段代码可以移动到另一台具有不同配置值的机器。
如何在 Linux 中手动将 jiffies 转换为毫秒,反之亦然?我知道内核 2.6 有一个功能,但我正在研究 2.4(家庭作业),虽然我查看了代码,但它使用了很多宏常量,我不知道它们是否在 2.4
在 Linux 上,jiffies 和 ticks per second 之间有区别吗?我了解 jiffies 和 HZ 之间的关系。但我无法理解每秒滴答数是如何相关的。我在某处读到它是一个内部操作系
假设我们有如下代码: if (timeout > jiffies) { /* we did not time out, good ... */ } else { /* we timed
据我了解,USER_HZ 常量是在 Linux 2.6 中添加的,以解决由用户空间中的 HZ 值期望引起的问题:在以前的版本中Linux,更改 HZ 值可能会导致用户空间应用程序中的值无意间缩放。 我
我正在将 3.14 移植到成功运行 3.2 内核的基于 ARM 的 SOC。 我陷入了校准 jiffies 的代码中。 calibrate_delay_converge()-init/calibrat
我是一名优秀的程序员,十分优秀!