Linux 的主要时钟类型
CLOCK_TAI 的含义
CLOCK_TAI
代表 International Atomic Time (国际原子时)。这是 Linux 内核提供的一种时钟类型,用于高精度时间敏感应用。
CLOCK_TAI 特点:
-
无闰秒的时间尺度:
- TAI 是连续递增的时标
- 不受国际地球自转服务(IERS)引入的闰秒影响
-
与 UTC 的关系:
- CLOCK_TAI = CLOCK_REALTIME + 当前的闰秒数
- 截至 2023 年,CLOCK_TAI ≈ CLOCK_REALTIME + 37 秒
-
用途:
- 时间敏感网络(TSN)
- 工业自动化和实时系统
- 需要连续时间测量的科学应用
Linux 的主要时钟类型
Linux 支持多种时钟类型,以下是主要的时钟类型及其用途:
时钟类型 | 描述 | 特点 | 适用场景 |
---|---|---|---|
CLOCK_REALTIME | 系统实时时间(挂钟时间) | 受用户设置和NTP调整影响 | 通用时间显示 |
CLOCK_MONOTONIC | 单调递增时间 | 从系统启动开始计算,不受调整影响 | 基准测试、超时计算 |
CLOCK_MONOTONIC_RAW | 未经NTP调整的单调时间 | 更稳定的时间基准 | 高精度测量 |
CLOCK_BOOTTIME | 包含系统挂起的时间 | 包括系统暂停的时间 | 系统运行时间统计 |
CLOCK_PROCESS_CPUTIME_ID | 进程CPU时间 | 测量进程使用的CPU时间 | 性能分析 |
CLOCK_THREAD_CPUTIME_ID | 线程CPU时间 | 测量线程使用的CPU时间 | 多线程分析 |
CLOCK_TAI | 国际原子时 | 连续、无闰秒的时间参考 | TSN、工业控制 |
特殊时钟:
-
CLOCK_REALTIME_COARSE
(Linux 2.6.32+)
快速但精度较低的挂钟时间 -
CLOCK_MONOTONIC_COARSE
(Linux 2.6.32+)
快速但精度较低的单调时间 -
CLOCK_POWERPC_ALTIVE
(特定平台)
PowerPC 平台专用时钟
TSN 中使用 CLOCK_TAI 的优势:
- 连续性:闰秒不会导致时间跳跃
- 确定性:为时间敏感网络提供稳定的时间参考
- 精确性:适用于需要高精度时间同步的应用
- 统一性:全球统一的时间参考标准
在您的 tc taprio
命令中:
clockid CLOCK_TAI
这样配置确保时间敏感网络的调度使用连续、无间断的国际原子时作为时间参考,避免因闰秒调整导致的网络调度问题,非常适合工业自动化、音视频传输等需要精确时间控制的场景。