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

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

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

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

Получив г, Pk проверяет отметку времени vt(r) и реша­ет отложить доставку до того момента, пока не будут приняты все сообщения,которые по соображениям причинности идут перед г. Если подробнее, сообще­ние г будет доставлено только в случае выполнения двух условий:> vt(r)U] = Vklj] + 1.> vt(r)[I] < Vk[i] для всех zVj.Первое условие означает, что г — следующее сообщение, получаемое Pk отпроцесса Pj. Второе условие означает, что Pk видит все те же сообщения, которыевидел процесс Pj, отправляя сообщение г. В частности, это означает, что процесс Pkуже получил сообщение а.292Глава 5.

СинхронизацияЗамечание по упорядоченной доставке сообщенийНекоторые системы промежуточного уровня, например ISIS и ее преемницаHorus [54], предоставляют поддержку полностью упорядоченной и упорядочен­ной в плане причинности (надежной) групповой рассылки. В свое время шлиспоры о том, должна ли эта поддержка быть реализована как часть уровня обменасообщениями или упорядочиванием должны заниматься приложения (см., к при­меру, [59, 99].В том чтобы поручить выяснение очередности сообщений уровню обмена со­общениями, имеется две основные проблемы.

Во-первых, поскольку уровень об­мена сообщениями не знает, что на самом деле содержится в сообщениях, возмо­жен учет лишь потенциальной причинности. Так, например, два сообщения отодного отправителя, абсолютно независимые, на уровне обмена сообщениямивсегда будут считаться имеющими причинно-следственную связь. Подобный под­ход слишком ограничен и может привести к проблемам с эффективностью.Вторая проблема состоит в том, что не всякую причинно-следственную связьудается выявить. Рассмотрим еще раз службу новостей. Представим себе, чтоАлиса написала письмо. Если затем она позвонит Бобу и обсудит с ним написан­ное, Боб может написать ей в ответ другое письмо, не читая послания Алисыв группе новостей. Другими словами, между письмом Боба и письмом Алисы име­ется причинно-следственная связь, обусловленная внешним взаимодействием.Такая причинно-следственная связь не выявляется системой сетевых новостей.В сущности, вопросы упорядочивания, как и множество других вопросов свя­зи, относящихся к приложению, могут в достаточной мере быть решены путемрассмотрения приложений, с которыми осуществляется взаимодействие.

Это явле­ние [393] известно в проектировании систем под названием сквозного аргумента{end-to-end argument). Оборотная сторона опоры исключительно на решенияприкладного уровня — в том, что разработчик вынужден сосредоточиваться навопросах, которые не относятся непосредственно к базовой функциональностиприложения. Так, например, упорядочение может не быть важнейшей пробле­мой при разработке системы сообщений, например, сетевых новостей. В этомслучае наличие базового уровня передачи данных, обслуживающего упорядочен­ность, может оказаться весьма кстати. Мы еще не раз вернемся к сквозным аргу­ментам, в частности, при рассмотрении вопросов безопасности в распределен­ных системах.5.3.

Глобальное состояниеВо многих случаях полезно знать глобальное состоянию, в соответствии с кото­рым распределенная система функционирует в данное время. Глобальное состоя­ние {global state) распределенной системы включает в себя локальные состояниякаждого процесса вместе с находящимися в пути сообщениями (то есть послан­ными, но еще не доставленными). Что именно считать локальным состояниемпроцесса, зависит от того, что нас интересует [197]. В случае распределенной ба­зы данных в него могут входить только те записи, из которых складывается часть2935.3. Глобальное состояниебазы данных, а временные записи, используемые для вычислений, можно исклю­чить.

В нашем примере сборки мусора путем трассировки, который рассматри­вался в предыдущей главе, локальное состояние могло бы состоять из перемен­ных, представляющих метки для тех заместителей, скелетонов и объектов,которые содержатся в адресном пространстве процесса.Знание глобального состояния распределенной системы может быть полезнопо многим причинам. Так, например, если известно, что локальные вычисленияпрекратились и ни одного сообщения в пути нет, ясно, что система перешла в со­стояние прекращения всяческой деятельности. Анализируя глобальное состоя­ние, можно заключить, что мы либо зашли в тупик [71], либо распределенныевычисления были корректно завершены.

Пример такого анализа рассматривает­ся ниже.В простом способе непосредственный записи глобального состояния распре­деленной системы, предложенном в [89], вводится понятие распределенногоснимка состояния {distributed snapshot), отражающего состояние, в котором нахо­дилась распределенная система. Важным его свойством является то, что он отра­жает непротиворечивое глобальное состояние. В частности, это означает следую­щее: если в снимке записано, что процесс Р получил сообщение от процесса Q, тотам также должно быть записано, что процесс Q послал это сообщение. В про­тивном случае снимок состояния содержал бы записи о сообщениях, которые бы­ли приняты, но никогда никем не посылались.

Тем не менее допустима обратнаяситуация, когда процесс Q послал сообщение, а процесс Р его еще не получил.Противоречивый срезНепротиворечивый срезW\Р1m^/время 1\WР1тЗР2m1Р2/11\N.^-ч^рЗ/-^^^т2РЗ //УВремя-'--.-^^^^^^"-^2РЗ/Отправителя сообщения т 2по этому срезу определить невозможноабРис. 5.9. Непротиворечивый срез (а). Противоречивый срез (б)Понятие глобального состояния может быть представлено графически припомощи так называемого среза {cut). На рис. 5.9, а непротиворечивый срез, пока­занный пунктирной линией, пересекает оси времени трех процессов — Р1, Р2иРЗ. Срез отражает последнее записанное событие для каждого из процессов.В этом случае мы можем легко убедиться, что для всех записей о пришедших со­общениях зафиксированы соответствующие события их отправки.

В противопо­ложность этому на рис. 5.9, б показан противоречивый срез. Приход сообщеният2 в процесс РЗ был записан, но в снимке состояния не зафиксировано соответ­ствующего события его отправки.294Глава 5. СинхронизацияДля упрощения объяснения алгоритма создания распределенного снимка со­стояния мы предположим, что распределенную систему можно представить в ви­де набора процессов, соединенных друг с другом посредством однонаправленныхпрямых коммуникационных каналов. Так, например, процессы могут на первомэтапе взаимодействия устанавливать соединения TCP.Инициировать алгоритм может любой процесс. Инициировавший получениераспределенного снимка состояния процесс, скажем Р, начинает с записи собст­венного локального состояния.

Затем он посылает маркер по каждому из своихисходящих каналов, давая понять, что получатель этого сообщения должен при­нять участие в записи глобального состояния.Когда процесс Q получает из входящего канала С маркер, все зависит от того,записал он уже свое локальное состояние или нет. Если нет, он сначала записыва­ет свое локальное состояние, а затем также рассылает маркеры по всем исходящимканалам. Если же Q уже записал свое состояние, маркер, пришедший из кана­ла С, показывает, что Q должен записать состояние канала. Это состояние скла­дывается из последовательности сообщений, которые были приняты процессом Qс момента записи им своего локального состояния и до прихода маркера. Записьэтого состояния иллюстрирует рис.

5.10.МаркерF ~ ~ ^ Локальная^'**-—^ файловаясистемаНТКЕНёН Q-DOQHЩШЦНЕЕLUEEEЗаписанноесостояниеРис. 5.10. Организация процесса и каналов в распределенном снимке состояния (а).Процесс О получает маркер впервые и записывает свое локальное состояние (б).Процесс О записывает все входящие сообщения {в).Процесс О получает маркер из входящего канала и заканчивает записьсостояния входящего канала (г)Процесс сообщает о том, что он закончил свою часть алгоритма, после полу­чения и обработки маркера от каждого из своих входящих каналов. В этот мо­мент записанное локальное состояние, а также состояние, записанное для каждо­го из входящих каналов, собираются вместе и посылаются, например, процессу,инициировавшему создание снимка состояния.

Последний может затем проана-5.3. Глобальное состояние295лизировать текущее состояние. Отметим, что тем временем распределенная сис­тема в целом продолжает работать обычным образом.Следует отметить, что поскольку алгоритм может быть инициирован любымпроцессом, одновременно может создаваться несколько снимков состояния. По­этому маркер должен иметь идентификатор (а возможно, и номер версии) про­цесса, который инициировал алгоритм. Только после того, как процесс получитэтот маркер по всем входным каналам, он может закончить построение своейчасти ассоциированного с маркером снимка состояния.Пример — определение момента завершенияВыяснив, как приложение получает снимок состояния, рассмотрим, как опреде­лить момент завершения распределенных вычислений.

Если процесс Q получаетмаркер, запрашиваюгций снимок состояния, в первый раз, он рассматривает про­цесс, приславший этот маркер, как предшественника. Когда Q завершает созданиесвоей части снимка состояния, он посылает своему предшественнику сообщениеГОТОВО. Рекурсивным образом, когда инициатор создания распределенногоснимка состояния получает сообщения ГОТОВО от всех своих преемников, онзнает, что снимок состояния полностью готов.Однако снимок состояния может показать глобальное состояние, в которомсообщения еще находятся в пути.

В частности, представим себе записи процессао том, что он получил сообщение по одному из своих входящих каналов в периодмежду записью локального состояния и получением маркера из этого канала.Ясно, что мы не можем сделать заключения об окончании распределенных вы­числений, поскольку это сообщение может породить новые сообщения, которыеуже не будут частью снимка состояния.Нам нужно получить снимок состояния со всеми пустыми каналами. Соот­ветствующая несложная модификация алгоритма описывается ниже. Когда про­цесс Q заканчивает создание своей части снимка состояния, он посылает предшест­веннику либо сообщение ГОТОВО, либо сообщение ПРОДОЛЖИТЬ. СообщениеГОТОВО возвращается только в том случае, если выполнены условия:4 все предшественники Q вернули сообщение ГОТОВО;4^ между записью своего состояния и получением маркера процесс Q не при­нимал сообщений ни по одному из своих входящих каналов.Во всех прочих случаях процесс Q посылает предшественнику сообщениеПРОДОЛЖИТЬ.Существенно, что инициатор создания снимка состояния, скажем, процесс Р,может получать от каждого из своих преемников либо сообщение ПРОДОЛЖИТЬ,либо сообщение ГОТОВО.

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

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

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