Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Фирсов.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.95 Mб
Скачать

Синхронизация

Проблема:

разное время на локалььных часах (файл должен быть скомпелирован заного, но по времени – не должен, ибо время указано разное).

Решение:

синхронизация физических часов. Используется механизм КРистиана:

Есть сервреное время. Оно вялется эталонным.

Для корректировки обращаются к серверу времени и он отправляет ему время и он синхронезируется.

Проблемы:

  1. Время доставки пакета не нулевое, поэтому время которое в пакете – будет уже не точное.

  2. Если часы убежали вперёд, а время которого… (ПЕРЕВОД ВРЕМЕНИ НАЗАД).

Как с ними бороться:

  1. Засекается на часах клиента время отправки запроса и время получения запроса (ищется разница этого времени). На маленьком промежутке првмени ошибка будет не большой, поэтому можно разделить на 2 то время которое между отправкой и обратным получением.

  2. Решается, за счёт особенности таймера котороый используется в современных компьютерах (с программируемым интервалом). Чтобы перевести часы назад, можно увеличить интервал через который срабатывает это прерывание,поэтому часы будут идти медленнее пока их нужно подвести назад, но зато не будет противоречия, что часы шли назад!

Алгоритм Беркли

/Сервер отправляется запрос о их текущем времени, принемается ответы – как их текущее время отличается от его времени. Ищет среднее время, устанавливает у себя часы на среднее время и посылает…

Оба этих алгоритма – централизованные!

Децентрализованный алгоритм:

{Время делится на интервалы синхронизации, в моменты времени, котгда по локальным часам вычислительного узла наступает…}

Время делится на синхронизационные интервалы длины R. В момент начала кинхронного интервала To+i*R по локальным часа делается широковещаетельная рассылка текущего времени. Принимаются сообщения с текущим временем других узлов, усредняется и устанавливается в качестве текущего времени локальных часов.

Вариации:

- Игнорировать m максимальных и минимальных значений

- Учесть время, затрачиваемое на передачу сообщения

Логические часы. Временные отметки Лэмпорта:

Для двух событий определяется отношение “Происходит раньше”

a<b, если:

- a и b – события, произошедние на одном и том же вычислительном узле и a произошло раньше чем b

- Событие a – отправка некоторогосообщения с одного узла, а b – получение этого же сообщения на другом узле.

- Если сущетсвует событие c, такое что a<c и c<b. Если не выполняется a<b и b<a, то события a и b – параллельные.

C(a) – логическое время. Условия:

- Если a<b, to C(a)<C(b)

-Время может идти только вперёд

……. (кушать ходил)…….

Взаимное исключение в распределённых системах:

- Централизованный алгоритм

Требует выбора лидара

- алгоритм забияки

- кольцевой лагоритм

- Децентрализованный алгоритм (центрального узла нету)

в этом алгоритме используются временные отметки Лэмпарда, когда узел хочет зайт ив критчиескую секуцию – отправляет всем остальным критическим узлам запрос на вход, если нету других желающих зайти в критчиескую секцию, то он заходит в область, если желающие есть, то сравниваются временные метки (кто когда захотел зайти в критическую секцию) и заходит тот, у кого временная метка меньше! После того, как тот кто зашёл уже сделал там всё что хотел, он отправляется следующему ОК и тот залезает.

- Алгоритм макерного кольца

Все процессы упорядочеваются в логическое кольцо, по увеличению номера и в кольце завидится маркер, этот маркер передается от одного вычилительного узла следующему. И в критическую секцию может зайт ив только вычислительный узел обладающий маркером. Если же некоторый вычисилтельный узел получил маркер ,но ему не надо зваходить в критическую секуцию, он передаёт маркер следующему.