11.2.2. Процедура (алгоритм) кластеризации
Кандидаты из группы основных источников синхронизации помещаются в списке оставшихся претендентов v
в форме наборов параметров (p, θp
, ψp
, λp
), в котором p
— идентификатор виртуального соединения, θp
, ψp
, stratump
— текущие значения сдвига, джиттера и номера «слоя» р-го виртуального соединения, соответственно, а λp
— весовой коэффициент равный выражению stratump
× MAXDIST + λ
, где λ
— корневое расстояние синхронизации для р-го виртуального соединения. Перечень основных источников синхронизации обрабатывается процедурой (алгоритмом) кластеризации, в этой обработке принимает участие вторая часть прикладного процесса clock_select()
:
Пусть набор
p, θp , ψp , λp
определяет кандидат из списка основных источников синхронизации.Классифицируем кандидатов с учётом возрастания
λp
. Пустьn
— число кандидатов, а параметрNMIN
определяет минимально необходимое число кандидатов в списке основных источников синхронизации.Для каждого кандидата определяется селективный джиттер
ψs
:+----- -----+1/2 | n-1 | | --- | | 1 \ | ψs = | ---- * / (θs - θj )2 | | n-1 --- | | j=1 | +----- -----+
Выбираем кандидата с максимальным значением
ψs
и обозначаемψmax
.Выбираем кандидата с минимальным значением
ψp
и обозначаемψmin
.Проверяем неравенства
ψmax < ψmin
илиn ≤ NMIN
. Если они выполняются, то тогда процедура считается выполненной, а оставшиеся кандидаты в списке основных источников синхронизации ранжируются в порядке предпочтения. Первая запись в списке определяет системный удалённый сервер времени, а его переменные в дальнейшем используются для обновления системных переменных. Если неравенства не выполняются, то тогда претендент со значениемψmax
удаляется из списка, значениеn
уменьшается на единицу, а процедура переходит на третью итерацию (λ
).
Данная процедура (алгоритм) функционирует циклически, и при каждом цикле удаляет из списка основных источников синхронизации одного из кандидатов, имеющего максимальный селективный джиттер ψs
. Однако, если значение ψs
меньше минимального значения джиттера удалённого сервера времени ψp
, то тогда добиться улучшения качества синхронизации путём удаления «бракуемых» серверов времени не возможно. В противном случае (ψs
> ψp
), определяется минимальный состав основных источников синхронизации, что позволяет корректно завершить процедуру. После её завершения регистрируется финальное значение ψmax
, так как оно в последующем используется в качестве системного селективного джиттера Ψs
.