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

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

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

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

Алгоритм обнаружения завершения вычисления может начать работу в лю­бой момент, после того как было запущено базовое вычисление, т. е. начинаяс произвольной конфигурации базового вычисления.Если соблюдаются эти допущения, то алгоритм обнаружения завершения вы­числения, не отправивший контрольного сообщения по некоторому особо выде­ленному ребру, например pq, будет вынужден принять неверное решение. Непо­средственно перед запуском контрольного алгоритма базовое вычисление отправ­ляет одно дополнительное сообщение по каналу pq.

Это сообщение не будетзарегистрировано контрольным алгоритмом, в результате чего он придет к оши­бочному выводу о завершении вычисления. Алгоритм Чандрасекарана и Венкатесана отправляет контрольные сообщения по каждому каналу, вследствие чеговсе сообщения, отправленные перед запуском контрольного алгоритма, будут до­ставлены по назначению еще до того, как будет принято решение о завершениивычисления.Проводя рассуждения, аналогичные тем, которые применялись в работе [43],можно показать, что задача вообще не имеет решения, если соблюдается допуще­ние С2, а допущение С1 не имеет места. В этой главе мы будем предполагать, чтоконтрольный алгоритм начинает работу в начальной конфигурации базового вы­числения, т.

е. в базовом вычислении до начала работы контрольного алгоритмане происходит ни одного незарегистрированного события. Если принять указан­ное предположение вместо допущения С2, то наша задача будет иметь решениетогда и только тогда, когда во всех каналах соблюдается очередность сообщений,и такое решение найдено в работе [43].8.1.3.

Как остановить процессыЧтобы оповестить о завершении вычисления все процессы, по сети широ­ковещательно распространяется сообщение (stop). Каждый процесс отправляеттакое сообщение всем своим соседям, но делает это не более одного раза, либосовершая локальный вызов процедуры Announce , либо после получения первогосообщения (stop). Когда сообщение (stop) будет получено от всех соседей, про­цесс выполняет оператор stop и в результате этого переходит в заключительноесостояние. Указанный метод оповещения представлен в алгоритме 8.2.Алгоритм 8.2 можно применять для связных сетей произвольной топологии,включая ориентированные сети; в нем не предусматривается наличия лидера, от­личительных признаков и какой-либо осведомленности об особенностях тополо­гии.8.2.

Деревья и леса вычисленийvar SentStoppRecStopp289: boolinit false ;: integer init 0 ;Procedure Announce:begin if not SentStopp thenbegin SentStopp := true ;fоrail q € Outp do send (stop) to qendend{Сообщение (stop) поступило процессу p}begin receive (stop) ; RecStopp := RecStopp + 1 ;Announce ;if RecStopp=#!nP then haltendАлгоритм 8.2. Алгоритм оповещения8.2.

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

чтобы сообщенияпо каждому каналу можно было отправлять в обе стороны. В §8.2.1 описанорешение рассматриваемой задачи для централизованных базовых вычислений,в которых граф вычислений представляет собой дерево, корнем которого являетсяинициатор. В §8.2.2 приведено обобщение этого решения для децентрализован­ных базовых вычислений с использованием леса, в котором каждый инициаторбазового вычисления является корнем одного из деревьев.8.2.1. Алгоритм Дейкстры—ШолтенаАлгоритм Дейкстры—Шолтена [65] обнаруживает завершение централизо­ванного базового вычисления (такое вычисление в работе [65] называют диф­фузным вычислением).

Инициатор базового вычисления (который в работе [65]называется окружением) играет также особую роль в алгоритме обнаружениязавершения вычисления; мы будем обозначать этот процесс символом ро.Алгоритм обнаружения завершения строит и постоянно обновляет дерево вы­числения Т = [Vj, Ej), которое обладает следующими двумя свойствами.1. Граф Т либо является пустым, либо представляет собой ориентированноедерево, корнем которого является вершина ро.Гл.

8. Обнаружение завершения2902. Множество Vj включает все активные процессы и все базовые сообщения,находящиеся на этапе пересылки.Инициатор ро вызывает процедуру Announce , если ро /eVp, согласно первомусвойству граф Т в таком случае является пустым, а согласно второму свойствуэто означает, что вычисление завершилось.Чтобы указанные свойства дерева вычислений сохранялись по мере продви­жения базового вычисления, граф Т должен быть расширен в случае отправле­ния базового сообщения или в том случае, когда процесс, не входящий в составдерева, становится активным.

Когда процесс р отправляет базовое сообщение(mes), это сообщение добавляется к дереву в качестве вершины (mes), при­чем родительской вершиной для нее становится процесс р. Когда процесс р, невходящий в состав дерева, становится активным после получения сообщения отпроцесса q, вершина q становится родительской вершиной для процесса р. Что­бы обозначить явно отправителя сообщения, всякое базовое сообщение (mes),отправленное процессом q, будет обозначаться записью (mes, q).var statepscpfatherp: (active , passive): integer:Pinit if p = po then active else passive ;init 0 ;init if p = po then p else udef ;Sp: { statep = active }begin send (mes, p) ; scp := scp + 1 endR^: {Сообщение (mes, q ) достигло процесса p }begin receive (mes, q ) ; statep := active ;if fatherp = udef then fatherp := q else send (sig, q) to qendlp: { statep = active }begin statep := passive ;if scp = 0 then(* Удалить p из T *)begin if fatherp = pthen Announceelse send (sig, fatherp) to fatherp ;fatherp := udefendendAp: { Сигнал (sig, p) достигает p }begin receive (sig, p) ; scp := scp — 1 ;if scp = 0 and statep = passive thenbegin if fatherp = pthen Announceelse send (sig, fatherp) to fatherp ;fatherp ■= udefendАлгоритм 8.3.

Алгоритм Дейкстры— Шолтена8.2. Деревья и леса вычислений291Удалять вершины из дерева Т также необходимо, и на то есть две причины.Во-первых, базовое сообщение удаляется, как только оно будет получено. Вовторых, чтобы контрольный алгоритм сработал, дерево должно исчезнуть спустяконечное число шагов после завершения базового алгоритма. Сообщения яв­ляются листьями дерева Т\ в каждом процессе есть переменная, используемаядля подсчета числа вершин-последователей этого процесса в дереве Т. Удалениеиз дерева вершины, являющейся последователем процесса р, осуществляетсясовсем в другом процессе q\ это происходит в результате того, что вершинапоследователь либо соответствует сообщению, которое достигло процесса q, либосоответствует самому процессу q.

Чтобы в процессе р не нарушался учет вершинпоследователей, этому процессу может быть отправлено сигнальное сообщение(sig, р), когда удаляется вершина-последователь процесса р. Это сообщение за­мещает удаленную вершину-последователя процесса р, а удаление этой вершиныиз дерева осуществляется самим процессом р после получения указанного сиг­нала; при этом р уменьшает значение счетчика последователей на единицу.Все эти действия описаны в алгоритме 8.3. Каждый процесс р наделен пере­менной fatherp. Значение этой переменной полагается равным udef, если р £УтЕсли же р является корнем дерева, то значением переменной fatherp являетсяимя процесса р.

И наконец, если р является некорневой вершиной дерева Т, тозначением переменной fatherр служит имя родительской вершины данного про­цесса. Переменная scp служит для подсчета числа последователей вершины рв дереве Т.При обосновании корректности алгоритма мы покажем строго формально, чтоопределенный таким образом граф Т является деревом и при этом становитсяпустым только в том случае, когда базовое вычисление завершилось.

Для всякойконфигурации у алгоритма 8.3 определим два множестваVj ={р : fatherp ф udef} U {(mes, р) на этапе пересылки}U {(sig, р) на этапе пересылки}Ет={(р, fatherp): fatherр ф udef A fatherр ф р}U {((mes, р), р): (mes, р) на этапе пересылки}U {((sig, р), р): (sig, р) на этапе пересылки}.Свойство безопасности нашего алгоритма обеспечивается предпосылкой Р, ко­торая определяется следующим образом:Р=statep = active ==>• p e V jA (и, v) € Ет ==>• и € Vt A v € Vt П PA scp = ф{и: (u, p) e ET}(1)(2)(3)A Vt ф 0 => T — дерево с корнем poA (statep = passive A scp = 0) ==>• p£ Vt.(4)(5)Содержательный смысл этого инварианта таков. Согласно определению множе­ство вершин графа Т включает все сообщения (как базовые, так и контрольные),а также, согласно соотношению (1), все активные процессы. Соотношение (2)292Гл.

8. Обнаружение завершенияиграет вспомогательную роль; в нем утверждается, что Т действительно являетсяграфом и все дуги направлены к процессам. Соотношение (3) гласит о том, чтоподсчет вершин-последователей проводится каждым процессом корректно, а всоотношении (4) утверждается, что Т является деревом и процесс р о — это егокорень. Соотношение (5) служит для того, чтобы показать, что это дерево дей­ствительно исчезает, если базовое вычисление завершится. Для доказательствакорректности нужно иметь в виду, что из предпосылки Р следует, что равенствоfatherp = р соблюдается только тогда, когда р = ро.Лемма 8.4.

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

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

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

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