Skip to main content

12. Clock-Adjust Process (时钟调整进程)

时钟调整进程以一秒为间隔运行,执行实际的系统时钟调整操作。该进程负责应用频率校正和残余偏移的固定百分比。

12.1. 主要功能

时间和频率调整:

  • 每秒执行一次时钟调整操作
  • 应用频率校正以补偿系统时钟的固有漂移
  • 逐步应用残余偏移 theta_r(环路滤波器输出的指数衰减)
  • TC参数缩放时间常数以匹配轮询间隔

离散增长:

  • 每秒离散值(EPSILON)增加PHI
  • 反映时间不确定性随时间的自然增长

12.2. 定时器中断机制

秒计数器 c.t:

  • 服务启动时从零开始
  • 每秒递增一次
  • 用于协调所有时间相关的操作

中断处理流程:

  1. 每秒产生定时器中断
  2. 调用 clock_adjust() 例程
  3. 应用时钟调节的时间和频率调整
  4. 扫描所有关联,检查是否到达 p.next 状态变量指定的时间
  5. 如果到达,则调用轮询进程发送数据包并计算下一个 p.next 值

12.3. 实现参考

时钟调整进程的示例实现见附录 A.5.6.1 中的 clock_adjust() 例程。

该进程是NTP实现中的关键组件,确保系统时钟平滑且持续地收敛到正确时间,同时维护时间和频率的稳定性。