Главная » Просмотр файлов » Введение в распределённые алгоритмы. Ж. Тель (2009)

Введение в распределённые алгоритмы. Ж. Тель (2009) (1185665), страница 81

Файл №1185665 Введение в распределённые алгоритмы. Ж. Тель (2009) (Введение в распределённые алгоритмы. Ж. Тель (2009).pdf) 81 страницаВведение в распределённые алгоритмы. Ж. Тель (2009) (1185665) страница 812020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Отсюда следует, что процессы при передаче маркера могут менять окраскус black на white, не нарушая истинности утверждения Р.Правило 5. Сразу после передачи маркера всякий процесс окрашиваетсяв цвет white.При таком режиме перемены окраски можно гарантировать, что после за­вершения базового вычисления какая-нибудь волна рано или поздно окажетсяуспешной. Приведенные здесь рассуждения воплощены в алгоритме 8.7.nТеорема 8.9. Алгоритм Сафры (алгоритм 8.7) является корректнымалгоритмом обнаружения завершения вычислений с асинхронным обменомсообщениями.Д о к а з а т е л ь с т в о .

Рассматриваемый нами алгоритм устроен так, чтоего инвариантом является предикатР, который определяется формулой Pmt\(PoVP\VP2 VlЧтобы обосновать достаточное условие корректности, следует заметить, чтоалгоритм обнаруживает завершение вычисления только тогда, когда выполняютсяравенства t = 0, statePo = passive, colorPo = white и mcPo + q = 0.

Из этихравенств следует выполнимость условий ~^Рз, - 1Р 2 и ^Р\, а это, в свою очередь,308Гл. 8. Обнаружение завершенияозначает, что выполняется условие РтАРо- С учетом того, что statePo = passiveи mcPo+q = 0 , последнее условие влечет за собой выполнимость предиката term.Чтобы обосновать необходимое условие корректности, заметим, что послезавершения базового вычисления счетчики сообщений будут иметь постоянныезначения и сумма их будет равна 0.

Волна, запущенная из такой конфигурации,завершится так, что будет соблюдено равенство тсРо + q = 0 и при этом всепроцессы будут окрашены в цвет white. Следующая за ней волна непременнобудет успешной.□В отличие от алгоритма Дейкстры—Фейджена—ван Гастерена, сложностьв наихудшем случае алгоритма Сафры не ограничена сверху; маркер может пе­редаваться неограниченное число раз, пока все процессы будут пассивны, нокакое-то сообщение будет долгое время пребывать на этапе пересылки. Так жекак и в случае алгоритма Дейкстры—Фейджена—ван Гастерена, математическоеожидание сложности по числу сообщений составляет величину 0(Т + N) длябазового вычисления, имеющего сложность по времени, равную Т.Алгоритм векторного подсчета. Маттерн в работе [141] предложил алго­ритм, сравнимый по эффективности с алгоритмом Сафры, но требующий при этомотдельного счетчика сообщений для каждого процесса-адресата.

В процессе р вкачестве счетчика сообщений используется массив тср[Р]. Когда р отправляетсообщение процессу q, содержимое счетчика процесса р изменяется при помо­щи оператора mcp[q] := mcp[q] + 1 , а когда р получает сообщение, содержимоесчетчика процесса р изменяется при помощи оператора тср[р] := тср [р] ~ 1 .Вместе с маркером передается также и массив счетчиков, и, когда процесс рвладеет маркером, содержимое массива тср передается с маркером, а сам счет­чик сбрасывается в 0 (массив, все компоненты которого равны 0). Завершениевычисления регистрируется, когда массив, переносимый маркером, становитсяравным 0 .Алгоритм векторного подсчета обладает некоторыми преимуществами по срав­нению с алгоритмом Сафры, но у него есть и серьезные изъяны.

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

Этот недостаток может быть не столь серьезным,если число процессов невелико. Другой изъян состоит в том, что для этого ал­8.3. Решения на основе волновых алгоритмов309горитма требуется знание отличительных признаков всех остальных процессов.Если вектор представляется массивом, то каждый процесс должен быть заранееосведомлен о всем многообразии отличительных признаков процессов системы;но это требование может быть ослаблено, если вектор представляется в видемножества пар, каждая из которых состоит из отличительного признака и целогочисла. Первоначально каждый процесс должен знать отличительные признакисоседних процессов (чтобы правильно увеличивать показания счетчика), а всепрочие отличительные признаки будут изучены по ходу вычисления.: (a c t i v e , p a s s i v e ) ;c o lo r p: ( w h it e , b la c k ) ;unackp: in teg er init 0 ;Sp: { s t a t e p = a c t i v e }begin send (m es) ; u n a c k p := u n a c k p + 1c o lo r p := b la c k(* Правило В *)епгЩД: Сообщение (m es) от q доставленоbegin receive (m es) ; s t a t e p := a c t i v e ;send (ack) to q(* Правило A *)var s i a i e p;(* Правило A *)процессу р }endIp \ { s t a t e p = a c t i v e }A p:begin s t a t e p := p a s s i v e en d{Подтверждение (ack) доставлено процессу p }begin receive (ack) ; u n a c k p := u n a c k p — 1 en d(* Правило A *)Приступить к обнаружению завершения вычисления;исполняется один раз процессом р о :begin send (tok, w h i t e ) to р ц - i endТ„: (* Процесс p владеет маркером (tok, c) *){ s ta te p = p a s s iv e A unackp = 0 }begin if p = poth en if c = w h i t e Л c o lo r p = w h i t eth en A n n o u n c eelse send (tok, w h i t e ) to р ц - ie ls e if (c o lo rp = w h i t e )th en send (tok, c) to N e x t pe ls e send (tok, b la c k ) to N e x tp ;c o lo r p := w h i t e(* Правило В *)endАлгоритм 8.8.Обнаружение завершения вычисления с использованием подтверждений8.3.3.

Использование подтвержденийВ алгоритме Сафры проводится подсчет отправленных и полученных базовыхсообщений, чтобы установить, что никакие базовые сообщения не пребываютна этапе пересылки. Это требование можно обеспечить, используя подтвержде­ния; сразу несколько авторов предложили снабдить этим механизмом алгоритм310Гл. 8. Обнаружение завершенияДейкстры—Фейджена—ван Гастерена (см., например, работу [152]). Подобнуюмодификацию основного метода мы обсудим лишь вкратце, поскольку получен­ный в результате алгоритм ни в коей мере не улучшает алгоритм Шави—Франчезаи поэтому уже вышел из употребления.Прежде всего заметим, что утверждение «ни одно сообщение не пребываетна этапе пересылки» равносильно утверждению «для каждого процесса р ни од­но сообщение, отправленное р, не пребывает на этапе пересылки».

На каждыйпроцесс возлагается ответственность за отправленные им сообщения, т. е. про­цесс должен предотвратить вызов процедуры Announce , до тех пор пока он неудостоверится, что все отправленные им базовые сообщения достигли адресата.В рассматриваемом методе обнаружения завершения вычисления для каждогопроцесса р локальное условие quietip) определяется так, чтобы выполняласьимпликацияquietip) =*- {stateр = passive А ни одно сообщение, отправленное процессом р ,не пребывает на этапе пересылки).Тогда будет верно, что (Ур : quiet(p)) ==^ term.Чтобы установить, что ни одно сообщение, отправленное процессом р, не пре­бывает на этапе пересылки, каждое сообщение сопровождается подтверждениеми каждый процесс ведет учет числа подтверждений, которые должны быть имполучены. Точнее говоря, предикат Ра, который определяется соотношениемУр: (unackp =^(сообщения на этапе пересылки, отправленные процессом р)+ # (подтверждения на этапе пересылки, адресованные р)).должен быть инвариантом, что обеспечивается следующим правилом.Правило А.

При отправлении сообщения процесс р увеличивает значениеunackp; при получении сообщения от процесса q, процесс р отправляет процессуq подтверждение; при получении подтверждения процесс р уменьшает значениеunackp.Указанное выше требование для условия quiet (при выполнении условия quietip)процесс р является пассивным, и ни одно сообщение, отправленное процессом р,не пребывает на этапе пересылки) будет теперь соблюдено, если задать условиеquiet следующим соотношениемquietip) = (statep = passive A unackp = 0).Построение нашего алгоритма обнаружения завершения вычисления проводитсяпоэтапно, подобно тому как был построен алгоритм Дейкстры—Фейджена—ванГастерена.

Вначале рассматривается предикат P q, который задается соотноше­ниемР0 = Vi {N > i > t) : quietip).Предикат P i нужно вводить осмотрительно, поскольку активизация процесса р/процессом pi в случае, когда / > t и i ^ t, не происходит совместно с событиемотправления сообщения процессом pi. Однако если процесс pj активизирован8.3. Решения на основе волновых алгоритмов311(вследствие чего предикат P q будет ложным), то соотношениемРь = Ур : (unackp > 0 ==> colorp = black),при помощи правила В, мы приходимРь = Ур : (unackp > 0 ==> colorp = black),при помощи правила В, мы приходим к заключению о том, что, как только преди­кат P q становится ложным, будет выполнено условие Р \, и поэтому утверждение(Р0 У Р i) не будет опровергнуто.Правило В. После отправления сообщения всякий процесс окрашиваетсяв цвет black; всякий процесс имеет окраску white только когда для него вы­полняется условие quiet.В результате мы получим алгоритм 8 .8 , инвариант которого задается форму­лой Ра Л Р& Л (Р0 У Pi У Р2), гдеРа = V/?: (unackp =^(сообщения, отправленные процессом р)-I- # (подтверждения, адресованные р))Рь = Ур: (unackp > 0 =^> colorр = black)Ро = Vt (N > i > t): quiet(p)Pi = 3i (t > / > 0): colorPi = blackP2 = маркер окрашен в цвет black.Теорема 8.10.

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

Тип файла
PDF-файл
Размер
18,19 Mb
Тип материала
Высшее учебное заведение

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

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