Обычно, псевдолинейная СУОС, рассмотренная выше, выполняет функцию настройки системных часов. Однако, возможны случаи, когда использование нелинейного алгоритма приводит к значительному улучшению характеристик синхронизации. Одним из таких случаев является ситуация при которой, процедура корректировки времени начинается без какой-либо исходной информации о частоте встроенных часов. При использовании псевдолинейной СУОС необходимо несколько часов, чтобы достигнуть высокой точности измерения, и при этом в течении большей части этого периода времени невозможно увеличить интервал опроса. А при использовании нелинейной СУОС этот период времени уменьшается до 15 минут. Другим случаем является ситуация, при которой возникают случайные «всплески» (большие значения) джиттера в следствие сетевых перегрузок. Процедурная характеристика обеспечивает защиту от ошибок, вызванных такими «всплесками» джиттера, продолжающимися в течении менее, чем 15 минут.
На рис.24 представлены переменные (в нижнее регистре) и параметры (в верхнем регистре), используемые в процедуре корректировки времени.
Если не оговорено обратного, то тогда все переменные обозначаются префиксом с
. Переменные t
, tc
, state
, hyster
и count
являются целочисленными величинами, а остальные переменные имеют удвоенные значения с плавающей точкой.
Процедура настройки часов реализуется с помощью прикладного процесса local_clock()
, обращение к которому происходит при функционировании прикладного процесса clock_update()
. Прикладной процесс local_clock()
состоит из двух этапов:
- на первом этапе определяется состояние часов;
- на первом этапе определяется временная константа и, таким образом, интервал опроса.
Наименование | Значение | Описание |
---|---|---|
t | таймер | Счётчик секунд |
offset | Θ | Суммарный сдвиг времени |
resid | Θr | Остаточный сдвиг времени |
freq | φ | Частота генератора часов |
jitter | ψ | Джиттер сдвига времени |
wander | ω | Отклонение частоты генератора часов |
tc | τ | Временная константа (log2 ) |
state | state | Состояние |
adj | adj | Корректировка частоты |
hyster | hyster | Счётчик запаздывания фазы |
STEPT | 125 | Пошаговое значение сдвига (0,125 сек) |
WATCH | 900 | Предельное значение сдвига (сек) |
PANICT | 1000 | Критическое пороговое значение сдвига (сек) |
LIMIT | 30 | Предел запаздывания фазы |
PGATE | 4 | Интервал запаздывании фазы |
TC | 16 | Шкала временной константы |
AVG | 8 | Постоянная усреднения |
Рис.24. Параметры и переменные, используемые в процедуре корректировки времени |