Главная » Все файлы » Просмотр файлов из архивов » Документы » 2016 Алгоритм Раны_ инвариант и корректность (подробное решение)

2016 Алгоритм Раны_ инвариант и корректность (подробное решение), страница 2

2020-08-25СтудИзба

Описание файла

Документ из архива "2016 Алгоритм Раны_ инвариант и корректность (подробное решение)", который расположен в категории "". Всё это находится в предмете "распределенные алгоритмы" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Онлайн просмотр документа "2016 Алгоритм Раны_ инвариант и корректность (подробное решение)"

Текст 2 страницы из документа "2016 Алгоритм Раны_ инвариант и корректность (подробное решение)"

При этом tok от любой другой волны в процессе s будет в пункте 5.3.3 иметь меньшую метку, и потому волна будет прерываться (не произойдёт события решения и пересылки токена (нарушение 2-го пункта из свойств волнового алгоритма, а значит волновой алгоритм не завершится))

Всё это строилось на допущении, что алгоритм посылки tok - это волновой алгоритм, однако это

  1. сказано, согласно формулировке алгоритма Раны.

  2. можно доказать по сформулированным процедурам, процедуры идентичны (за исключением строки 5.3.3? прокомментированной выше, а часы Лемпорта в процедуре на условие посылки токена не влияют (они просто обновляются и посылаются)) процедурам кольцевого алгоритма, его формулировка и доказательство см. лекция 7.

Таким образом, волновой алгоритм с максимальным по времени токеном завершится, т.к. он начнётся через конечное число шагов, после выполнения условия term (это доказано выше) + конечное число шагов выполнения волнового алгоритма (согласно его 1-му свойству), т.е. decide (Announce) - произойдёт обязательно и через конечное число шагов.

(A)

Если выполнен term (т.е. базовый алгоритм таки завершился, то согласно доказательству (B) Announce обязательно произойдёт, причём через конечное число шагов).

Осталось доказать, что Announce переводит все процессы в конечное состояние, для этого докажем, что в каждом процессе произойдёт событие решения halt этого алгоритма.

Начальный процесс s выполняет процедуру Announce, это приводит к тому, что он посылает сообщение stop всем своим соседям, каждый сосед получив это сообщение повторяет эту процедуру и посылает сообщение stop всем своим соседям. Так как граф связный, то найдётся путь от начальной вершины s до любой другой вершины p, и по этому пути будут посланы сообщения stop от одного процесса к другому процессу, однако если у одной из вершин q на этом пути произошло выполнение halt, то она больше не обрабатывает приходящие сообщения и следовательно не перешлёт stop, тем самым цепочка s -1-> q -> p нарушена, однако если в процессе q произошёл halt, то это значит, что она хоть раз приняла сообщение stop и сразу после этого, но перед halt выполнила Announce разослав stop своим соседям, таким образом существовала цепочка s -2-> q по которой распространилось сообщение stop а значит есть цепочка s -2-> q -> p от исходной вершины s до любой другой вершины p.

(рассуждения приведены для случая, если halt в цепочке случился только в одной вершине, однако аналогичным образом они распространяются и на k вершин (если в цепочке у k вершин случился halt, то есть пусть распространения stop до последней вершины, в которой случился halt, а оттуда путь до p))

Итак stop распространится по всем вершинам, это значит, что для любой вершины p все её соседи рано или поздно получат stop и выполнят Announce прислав вершине p сообщения stop, но тогда переменная RecStop из алгоритма будет после последнего stop == #In, а значит будет выполнена операция halt.

Таким образом, если Выполнен term, то через конечное количество шагов выполнится Announce, а Announce за конечное количество шагов (потому что каждый процесс может принять не более #In сообщений, после чего он выключится через halt) переведёт каждый процесс в конечное состояние.

(С)

Announce - является событием decide для волнового алгоритма используемого в алгоритме Раны в процессе s (причём в конкретно нашем случае - циклического волнового алгоритма). Это означает, что согласно пункту 3 волновых алгоритмов, в каждом процессе, ему предшествовало хотя бы одно событие связанное с этим алгоритмом (5.3.3.1), т.е. это процедура I (для процесса инициатора это ещё могла быть процедура A), т.е. для каждого процесса было выполнено условие 5.3.3 и 5.3, т.е. каждый процесс находился в состоянии quiet в момент передачи tok.

Пойдём от противного - допустим term не выполнен, в момент decide волнового алгоритма, это значит, что либо один из процессов active, либо было послано mes в канал, но mes послал кто-то - это процесс, который выполнил процедуру S, т.е. был active, причём это случилось в момент decide - т.е. после передачи tok этой волны, возьмём первый процесс из тех, которые передали tok, а после этого стали active, т.е. перестали удовлетворять quiet, этот процесс p - мог стать active только в результате получения сообщения mes в процедуру R (нету другого кода, меняющего состояние на active), однако это сообщение послал другой процесс q, и он ещё не передавал tok (т.к. если он уже передал tok, а после этого послал сообщение, т.е. стал active, то вместе с сообщением он послал своё времечко, => θp >= θq +1 => p - не самый первый процесс, который стал active после передачи tok, противоречие).

Таким образом p - первый процесс нарушитель передал tok процесса инициатора s с временем qts потом получил сообщение mes от процесса q с временем θq > θ, и отправил ему ack с временем θ > θq и θ > qts,процесс q, получив ack обновит своё время на новое θ+1, и т.к. он не находился в состоянии quiet, рано или поздно перейдёт в состояние quiet (ведь только в этом состоянии можно передать tok, который согласно утверждению, что decide случился и волновой алгоритм завершился, - должен быть передан по свойству волнового алгоритма), однако при переходе в quiet qtq >= θ+1 > qts, что приводит к невыполнению условия 5.3.3 и глушит волну.

Это противоречит тому, что волна закончилась => исходное предположение ложь, и term выполнен в момент decide волнового алгоритма.

всё, что нужно было доказать - доказали

ч.т.д.

8/8

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