Skip to main content

11. System Process (系统进程)

系统进程包含缓解算法(mitigation algorithms),用于处理时钟过滤算法产生的样本数据。这些算法包括选择算法(selection)、聚类算法(cluster)、组合算法(combine)和时钟调节算法(clock discipline)。

11.1. 系统进程变量

系统进程使用的主要变量包括:

名称 (Name)公式 (Formula)描述 (Description)
tt更新时间 (update time)
pp系统对等体标识符 (system peer identifier)
leapleap闰秒指示器 (leap indicator)
stratumstratum层级 (stratum)
precisionrho精度 (precision)
offsetTHETA组合偏移 (combined offset)
jitterPSI组合抖动 (combined jitter)
rootdelayDELTA根延迟 (root delay)
rootdispEPSILON根离散 (root dispersion)
vv幸存者列表 (survivor list)
refidrefid参考ID (reference ID)
reftimereftime参考时间 (reference time)

关键常量:

  • NMIN = 3: 最小幸存者数量
  • CMIN = 1: 最小候选者数量

11.2. 系统进程操作

11.2.1. 选择算法 (Selection Algorithm)

选择算法的目标是识别并剔除"假时钟"(falsetickers),保留"真时钟"(truechimers)。该算法基于一致性原则,构建一个多数派集团。

工作原理:

  1. 扫描所有关联,评估每个对等体的同步距离
  2. 使用区间交集原理识别一致的时间源
  3. 淘汰那些与多数派不一致的时间源
  4. 产生候选者列表供后续算法使用

11.2.2. 聚类算法 (Cluster Algorithm)

聚类算法通过统计方法进一步精炼候选者列表,移除离群值。

处理步骤:

  1. 计算所有候选者的质心(centroid)
  2. 在每轮中,移除距离质心最远的候选者
  3. 重复此过程,直到剩余指定数量的幸存者
  4. 从幸存者中选择一个作为系统对等体(system peer)

选择标准:

  • 优先选择同步距离最小的对等体
  • 考虑层级(stratum)和抖动(jitter)指标

11.2.3. 组合算法 (Combine Algorithm)

组合算法基于加权平均计算最终的系统偏移和抖动。

计算方法:

THETA = Σ(w_i * theta_i) / Σ(w_i)

其中权重 w_i 与同步距离 lambda 成反比:

w_i = 1 / lambda_i

输出:

  • 系统偏移(THETA):用于调节系统时钟
  • 系统抖动(PSI):表示时间质量的统计度量
  • 根延迟(DELTA)和根离散(EPSILON):传播给依赖的客户端

11.3. 工作流程

  1. 输入:时钟过滤算法产生的样本 (theta, delta, epsilon, jitter, t)
  2. 选择:识别并淘汰假时钟,产生候选者列表
  3. 聚类:通过统计方法精炼候选者,选择系统对等体
  4. 组合:计算加权平均的系统偏移和抖动
  5. 输出:最终偏移传递给时钟调节算法

11.4. 特殊情况处理

  • 如果选择算法无法产生多数派集团,系统保持当前状态
  • 如果没有足够的幸存者,系统进入非同步状态(leap = 3, stratum = 16)
  • 初始化时,所有变量清零,leap设为3(未同步),stratum设为MAXSTRAT(16)

系统进程的实现示例见附录 A.5.5.6 中的 clock_select() 例程。