【发布时间】:2023-03-16 22:24:01
【问题描述】:
在 Linux 中,xtime 变量(Linux 内核中 timespec 类型的结构)存储当前时间和日期。它有两个字段 - tv_sec 存储自 1970 年 1 月 1 日以来的秒数,tv_nsec 存储上一秒内经过的纳秒数。
xtime 的值作为板载可编程间隔定时器产生的中断的中断处理例程的一部分进行更新。默认情况下,Linux 内核将其编程为每 1 毫秒(称为滴答声)发生一次。
我知道除了更新系统时钟之外,内核还依赖于中断来处理许多其他事情,但为什么我们实际上在每次滴答时都编辑 xtime 变量呢?这不是没有意义,因为我们基本上会用相同的值覆盖它吗?
【问题讨论】:
-
它必须始终是最新的。在什么情况下为了避免更新分支而付出代价是值得的?
标签: linux linux-kernel interrupt-handling systemtime