12. Clock-Adjust Process (时钟调整进程)
时钟调整进程以一秒为间隔运行,执行实际的系统时钟调整操作。该进程负责应用频率校正和残余偏移的固定百分比。
12.1. 主要功能
时间和频率调整:
- 每秒执行一次时钟调整操作
- 应用频率校正以补偿系统时钟的固有漂移
- 逐步应用残余偏移 theta_r(环路滤波器输出的指数衰减)
- TC参数缩放时间常数以匹配轮询间隔
离散增长:
- 每秒离散值(EPSILON)增加PHI
- 反映时间不确定性随时间的自然增长
12.2. 定时器中断机制
秒计数器 c.t:
- 服务启动时从零开始
- 每秒递增一次
- 用于协调所有时间相关的操作
中断处理流程:
- 每秒产生定时器中断
- 调用
clock_adjust()例程 - 应用时钟调节的时间和频率调整
- 扫描所有关联,检查是否到达 p.next 状态变量指定的时间
- 如果到达,则调用轮询进程发送数据包并计算下一个 p.next 值
12.3. 实现参考
时钟调整进程的示例实现见附录 A.5.6.1 中的 clock_adjust() 例程。
该进程是NTP实现中的关键组件,确保系统时钟平滑且持续地收敛到正确时间,同时维护时间和频率的稳定性。