Распределенные автоматизированные системы
Лычёв А.В. © изд-во ВМИРЭ © 2007 год
159
времени состоит в синхронизации системных часов всех ЭВМ
системы с сервером единого времени.
Рассмотрим принцип синхронизации системных часов ЭВМ с
текущим временем. Пусть значение текущего времени на сис-
темных часах сервера единого времени равно t, а значение
времени на системных часах рабочей станции равно C(t).
В идеале C(t) = t, то есть
dt
tdC
)(
= 1.
Реально системные часы рабочей станции либо отстают,
либо спешат, то есть 1 – ρ ≤
dt
tdC
)(
≤ 1 + ρ, где ρ – это мак-
симальная скорость дрейфа. Максимальная скорость дрейфа –
это та величина, про которую мы говорим, произнося фразу,
что «мои часы отстают на две минуты в сутки» или «мои часы
спешат на тридцать секунд в неделю». Максимальную скорость
дрейфа можно определить только экспериментально путем на-
блюдений за системными часами конкретной ЭВМ.
Если два процесса хотят гарантировать синхронность
своей взаимной работы не хуже, чем на время δ, то синхрони-
зация часов этих процессов должна производиться не реже,
чем через каждые
ρ
2
единиц времени. Выбор конкретных еди-
ниц времени (секунд, минут, часов и т.д.) зависит от точно-
сти измерения времени в конкретной системе.
Для синхронизации системных часов рабочей станции с
сервером единого времени используются два алгоритма:
1. Алгоритм Кристиана. Периодически, не реже чем через
каждые
ρ
2
единиц времени, каждая рабочая станция посылает
серверу единого времени запрос о текущем времени. Сервер
так быстро, как это возможно, отвечает сообщением, содержа-
щим значение текущего времени. Алгоритм имеет две проблемы:
а) Если системные часы рабочей станции спешат, то зна-
чение текущего времени, полученное от сервера единого вре-
мени, может оказаться меньшим, чем показания системных ча-
сов рабочей станции в этот момент. Эта ситуация может вы-
звать серьезные отказы в процессах, развивающихся эволюци-
онно во времени (например, процесс счисления пути движуще-
гося объекта). Решение данной проблемы заключается в приве-
дении показаний системных часов рабочей станции в соответ-
ствие текущему времени не скачком, а путем искусственного
замедления работы системных часов ЭВМ;
б) Передача сообщений к серверу единого времени и об-
ратно требует определенного промежутка времени, длитель-
ность которого зависит от текущей загрузки сети. Эту за-
держку можно учесть путем фиксации моментов времени посылки
запроса на сервер единого времени Т
П
и получения ответа о