Главная » Просмотр файлов » Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)

Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 74

Файл №1162619 Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)) 74 страницаЭ. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619) страница 742019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 74)

Один из наиболее часто используемых алгоритмов в Интернете — этопротокол сетевого времени {Network Time Protocol, NTP), описанный в [293]. NTPизвестен тем, что позволяет обеспечить точность (глобальную) 1-50 мс. Такаяточность достигается путем использования усовершенствованных алгоритмовсинхронизации часов, дальнейшие их усовершенствования описаны в [294].Множественные внешние источники точного времениДля систем, которым необходима особо точная синхронизация по UTC, можнопредложить использование нескольких приемников WWV, GEOS или других ис­точников иТС. Однако из-за врожденной неточности самих источников времении флуктуации на пути сигнала лучшее, что могут сделать операционные систе­мы, — это установить интервал, в который попадает UTC. В основном различныеисточники точного времени будут порождать различные диапазоны, и машины,к которым они присоединены, должны прийти к какому-то общему соглашению.Чтобы достичь этого соглашения, каждый процессор с источником UTC мо­жет периодически делать широковещательную рассылку своих данных, напри­мер, точно в начале каждой минуты по UTC.

Ни один процессор не получитпакеты значений времени мгновенно. Что еще более печально, задержка междупосылкой и приемом будет зависеть от длины кабеля и числа маршрутизаторов,через которые должен будет пройти пакет. Эти значения различны для каждойпары (источник UTC, процессор). Будут также играть свою роль и другие факто­ры, такие как задержка по причине коллизий, когда несколько машин попытают­ся послать что-то по Ethernet в один и тот же момент.

Более того, если процессорзанят обработкой предыдущего пакета, он, возможно, не сумеет просмотреть па­кет значений времени за оговоренное число миллисекунд, что внесет дополни­тельную неясность.5.1.3. Использование синхронизированных часовЗа прошедшие несколько лет стали легкодоступными необходимая аппаратураи программное обеспечение, предназначенные для синхронизации часов в глобаль­ном масштабе (то есть во всем Интернете). Благодаря этим новым технологиямможно синхронизировать миллионы часов с точностью до нескольких миллисе­кунд по иТС.

Стали появляться новые алгоритмы, использующие эти синхрони­зированные часы. Один из примеров касается того, как добиться доставки серве­ру не более одного сообщения, даже в случае сбоев [269]. Традиционный подходсостоит в том, что каждому сообщению приписывается уникальный номер сооб­щения, а каждый сервер сохраняет все номера сообщений, которые он принял,чтобы можно было отличить новое сообщение от повторной посылки. Проблемаэтого алгоритма состоит в том, что при сбое и перезагрузке сервера он теряет эту5.2. Логические часы285таблицу номеров сообщений. Неясно также, сколько времени хранить эти номерасообщений.С использованием времени традиционный алгоритм модифицируется сле­дующим образом.

Итак, каждое сообщение имеет идентификатор связи (выбран­ный отправителем) и метку времени. Для каждого соединения сервер заноситв таблицу последнюю полученную метку времени. Если какое-либо входящее со­общение имеет отметку времени меньшую, чем отметка, сохраненная в таблицедля этого соединения, сообщение считается дубликатом и не рассматривается.Чтобы можно было удалить старую метку времени, каждый сервер постоянноподдерживает глобальную переменную G, определяемую следующим образом:G = CurrentTime - MaxLifetime - MaxClockSkew.Здесь MaxLifetime — максимальное время жизни сообщения, а MaxClockSkewуказывает на то, как далеко от времени UTC могут уйти часы. Любая метка вре­мени старше G может быть легко удалена из таблицы, поскольку все сообщениястарше С уже прошли.

Если входящее сообщение имеет неизвестный идентифи­катор связи, оно будет принято, если его метка времени более ранняя, чем G,и отвергнуто, если она более поздняя, чем С, поскольку всякое более позднее со­общение — это, несомненно, дубликат. В действительности G — это сумма номе­ров всех старых сообщений. Каждые AT текущее время сбрасывается на диск.В случае сбоя и последующей перезагрузки сервера он загружает значение Gиз файла, сохраненного на диске, и увеличивает его в ходе периода обновления, AT.Любое входящее сообщение с отметкой времени старше G — это дубликат.

В ре­зультате каждое сообщение, которое могло быть принято до сбоя, теперь отвер­гается. Некоторые новые сообщения могут быть отвергнуты ошибочно, но присоблюдении всех условий алгоритм поддерживает семантику «не более одногосообщения».Вдобавок к этому алгоритму в [269] также описано, как можно использоватьсинхронизированные часы для достижения непротиворечивости кэша, как ис­пользовать посылки тайм-аута для аутентификации распределенных систем и какобработать обязательства по атомарным транзакциям. Мы обсудим некоторые изэтих алгоритмов в следующих пунктах.

По мере улучшения синхронизации тай­меров для них, несомненно, будут найдены и другие приложения.5.2. Логические часыВо многих случаях необходимо, чтобы все машины договорились об использова­нии одного и того же времени. Не столь уж и важно, чтобы это время совпадалос истинным временем, которое каждый час объявляют по радио. Для работы про­граммы make, например, достаточно, чтобы все машины считали, что сейчас 10:00,даже если на самом деле сейчас 10:02. Так, для некоторого класса алгоритмов по­добная внутренняя непротиворечивость имеет гораздо большее значение, чем то,насколько их время близко к реальному. Для таких алгоритмов принято говоритьо логических часах {logical clocks).286Глава 5.

СинхронизацияВ своей классической статье (см. [249]) Лампорт (Lamport) показал, что хотясинхронизация часов возможна, она не обязательно должна быть абсолютной.Если два процесса не взаимодействуют, нет необходимости в том, чтобы их часыбыли синхронизированы, поскольку отсутствие синхронизации останется незаме­ченным и не создаст проблем. Кроме того, он указал, что обычно имеет значениене точное время выполнения процессов, а его порядок. В примере с программойmake, который мы приводили в предыдущем разделе, нас интересовало, чтобыфайл input.c был более старым или более новым, чем input.o, а не абсолютное вре­мя их создания.В этом пункте мы обсудим алгоритм Лампорта, предназначенный для син­хронизации логических часов.

Кроме того, мы рассмотрим расширение методаЛампорта, векторные отметки времени. Лампорт сделал дополнения к своей ра­боте в [251].5 . 2 . 1 . Отметки времени ЛампортаДля синхронизации логических часов Лампорт определил отношение под названи­ем «происходит раньше». Выражение а-^Ь читается как «а происходит раньше Ь»и означает, что все процессы согласны с тем, что первым происходит событие а,а позже — событие Ь, Отношение «происходит раньше» непосредственно испол­няется в двух случаях.4- Если а и й — события, происходящие в одном и том же процессе, и а про­исходит раньше, чем й, то отношение а-^Ь истинно."¥ Если а — это событие отсылки сообщения одним процессом, а й — событиеполучения того же сообщения другим процессом, то отношение а-^Ь так­же истинно. Сообщение не может быть получено до отсылки или дажев тот же самый момент, когда оно было послано, поскольку для пересылкинеобходимо конечное ненулевое время.Отношение «происходит раньше» — это транзитивное отношение, то естьв случае, если а->Ь и Ь-^с, выполняется условие а-^с.

Если два события, х и г/,происходят в разных процессах, которые не обмениваются сообщениями (ни не­посредственно, ни через третий процесс), то отношение х-^у не истинно, впро­чем, как и у-^х. Такие события называются параллельпыми {concurrent). В дан­ном случае это означает только то, что никто не может (или не хочет) знать отом, где и какое из этих событий произошло.Нам нужен способ измерения времени каждого события, который позволилбы поставить в соответствие каждому событию а отметку времени С(<2), котораяподошла бы всем процессам. Эти отметки времени должны быть такими, чтобыпри <2->6 соблюдалось соотношение С(а)<С(Ь).

Перефразируя условие, котороемы ранее установили, если аи b — два события одного процесса и а происходитраньше, чем 6, то С(а)<С(Ь). Например, если а — это посылка сообщения однимпроцессом, Sib — прием этого сообщения другим процессом, то С(а) и С(Ь) долж­ны быть назначены так, чтобы значения С(а) и С(Ь) соответствовали отношениюС(а)<С(Ь). Кроме того, время по часам. С, всегда идет вперед (увеличивается).5.2. Логические часы287а назад — никогда (не уменьшается).

Коррекция времени должна производитьсятолько путем добавления к нему положительного значения, а не его вычитанием.Давайте теперь рассмотрим алгоритм Лампорта, применяемый для присвое­ния времен событиям. Обсудим три процесса, описанные на рис. 5.7, а. Процес­сы запущены на различных машинах, каждая из которых имеет собственные ча­сы и скорость работы. Как можно увидеть по рисунку, когда часы процесса Опоставят отметку времени 6, в процессе 1 они покажут 8, а в процессе 2 — 10. Ка­ждые часы идут с постоянной скоростью, но эти скорости различны из-за разни­цы в кристаллах.Го"Го~~о"Т"0^6 -->,,^А8106 --^^А8101216201216201824 -..В^301824 --..В3024324024324030405030405036480^-^ 6036480^^60^^^^^.^70425670426148648048D...---69805472907072906080100|7680100^ ^ ^Рис. 5.7.

Три процесса, каждый с собственными часами, которые ходят с разнойскоростью (а). Подстройка часов по алгоритму Лампорта (б)В момент 6 процесс О посылает сообщение А процессу 1. Сколько времени этосообщение проведет в пути, зависит от того, каким часам мы верим. В любомслучае, когда оно придет в процесс 1, его часы будут показывать 16. Если сооб­щение будет содержать время отправки, 6, процесс 1 сочтет, что на пересылкуушло 10 тиков. Это значение вполне разумно. В соответствии с этими рассужде­ниями сообщение В от процесса 1 процессу 2 будет доставлено за 16 тиков, этовновь разумное значение.Перейдем к самой забавной части наших рассуждений.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6502
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее