![]() |
|
|
Реферат: Распределенные алгоритмыСледовательно, на втором этапе алгоритма, процессы образуют
индуцированный подграф графа После завершения Алгоритма 13.1 каждый корректный процесс получил набор преемников каждого из своих потомков, позволяя таким образом вычислить уникальный узел в G. Согласие и выбор. Поскольку все корректные процессы договариваются об узле корректных процессов, избрать процесс теперь тривиально; избирается процесс с самым большим идентификатором в K. Теперь так же просто достигнуть согласия. Каждый процесс вещает, вместе со своими преемниками, свой вход (x). После вычисления K, процессы принимают решение о значении, которое является функцией совокупности входов в K (например, значение, которое встречается наиболее часто, ноль в случае ничьей). Алгоритмы узел-соглашения, согласия, и выбора обменивают Любой алгоритм выбора, выбирая корректный процесс в качестве лидера также решает проблему согласия; лидер вещает свой вход и все корректные процессы принимают решения по нему. Следовательно, вышеупомянутые верхние границы остаются в силе также для проблемы согласия для изначально-мертвых процессов. В модели аварий, однако, наличие лидера не помогает в решении проблемы согласия; сам лидер может отказать до вещания своего входа. Кроме того, проблема выбора не разрешима в модели аварийного отказа, что будет показано в следующем разделе. 13.3 Детерминированно Достижимые Случаи Проблема согласия, изучаемая до сих пор, требует, чтобы каждый процесс принял решение об одном и том же значении; этот раздел изучает разрешимость задач, которые требуют менее близкой координации между процессами. В Подразделе 13.3.1 представлено решение практической проблемы, а именно, переименование совокупности процессов в малом пространстве имен. В Подразделе 13.3.2 выведенные ранее результаты о невозможности расширяются, чтобы охватить больший класс проблем решения. Распределенная задача описывается множествами возможных входных и выходных значений X и D, и (возможно частичным) отображением
Интерпретация отображения T: если вектор Определение 13.10 Алгоритм является t-аварийно устойчивым решением для задачи T если он удовлетворяет следующим утверждениям. (1) Завершение. В каждом t-аварийно законном выполнении, все корректные процессы принимают решение. (2)
Непротиворечивость. Если все процессы корректны, вектор
решения Условие непротиворечивости подразумевает, что в выполнении, где
подмножество процессов принимает решение, частичный вектор решений всегда можно
расширить до вектора в (1) Пример: согласие. Проблема согласия требует, чтобы все решения были равны, т.е., (2) Пример: выбор. Проблема выбора требует, чтобы один процесс принял решение 1, а другие 0, т.е., (3)
Пример: приблизительное соглашение. В проблеме (4) Пример: переименование. В проблеме переименования каждый процесс имеет отдельный идентификатор, который может браться из произвольно большой области. Каждый процесс должен принять решение о новом имени, из меньшей области 1, ..., K, так, чтобы все новые имена различались. В сохраняющей порядок версии проблемы переименования,
новые имена должны сохранять порядок старых имен, то есть, 13.3.1 Разрешимая Проблема: Переименование В этом подразделе будет представлен алгоритм для переименования
Аттийи и других [ABND+90]. Алгоритм допускает до Верхняя граница t. Мы сначала покажем, что никакой алгоритм переименования не сможет выдержать N/2 или большее количество сбоев; фактически, почти все аварийно-устойчивые алгоритмы имеют ограничение t<N/2 на число неисправностей, и приведенное ниже доказательство можно адаптировать к другим проблемам. Теорема 13.11 При Доказательство. Если По утверждению 13.4, для каждой начальной конфигурации Некорректное выполнение теперь создается следующим образом.
Начальная конфигурация Далее предполагается, что t < N/2. var begin while true do begin receive<set, V> if begin if
(* end else if skip (*Игнорировать “старую” информацию*) else (*новый вход; обновить Vp и начать счет заново*) begin if end end end Алгоритм 13.2 Простой алгоритм переименования. Алгоритм переименования. В алгоритме переименования
(Алгоритм 13.2), процесс p сохраняет множество Далее, p считает (в переменной Говорят, что процесс p, достигает устойчивого множества
V если Лемма 13.12
Устойчивые множества полностью упорядочены, то есть, если q достигает
устойчивого множества Доказательство. Предположим, что q достигает устойчивого
множества
Лемма 13.13 Каждый корректный процесс по крайней мере однажды достигает устойчивого множества в каждом законном t-аварийном выполнении. Доказательство. Пусть p - корректный процесс; множество Однако, это надмножество не строгое; иначе
корректный процесс послал бы строгое надмножество После достижения устойчивого множества V впервые, процесс p
останавливается на паре (s, r), где s - размер V, и r - положение Теорема 13.14
Алгоритм 13.2 решает проблему переименования с выходным пространством имен
размера Доказательство. Так как, в любом законном t-аварийном
выполнении каждый корректный процесс достигает устойчивого множества, каждый
корректный процесс останавливается на новом имени. Чтобы показать, что все
новые имена различны, рассмотрим устойчивые множества Обсуждение. Заметьте, что процесс не завершает Алгоритм 13.2 после принятия решения о своем имени; он продолжает алгоритм, чтобы "помочь" другим процессам тоже принять решение. Aттийя и другие [ABND+90] показывают, что это необходимо, потому что алгоритм должен справиться с ситуацией, когда некоторые процессы настолько медленны, что выполняют первый шаг после того, как некоторые другие процессы уже приняли решение. Простой алгоритм, представленный здесь не самый лучший в отношении размера пространства имен, используемого для переименования. Aттийя и другие [ABND+90] привели более сложный алгоритм, который назначает имена в диапазоне от 1 до N + t. Результаты следующего подраздела предполагают нижнюю границу размера нового пространства имен для аварийно-устойчивого переименования N + 1. Aттийя и другие предложили также алгоритм для
переименования, сохраняющего порядок. Он осуществляет переименование на целые
числа в диапазоне от 1 до 13.3.2 Расширение Результатов Невозможности Результат о невозможности согласия (Теорема 13.8) был обобщен
Мораном и Вольфшталом [MW87] для более общих проблем решения. Граф решения
задачи T - граф E = {( Задача T называется связной, если (1)
Нетривиальность. Для каждого Теорема 13.15 Нетривиального 1-аварийно-устойчивого алгоритма решения для несвязной задачи T не существует. Доказательство. Предположим, напротив, что такой алгоритм,
A, существует; из него можно получить алгоритм согласия А', что противоречит
Теореме 13.8. Чтобы упростить аргументацию, мы полагаем, что Алгоритм А’ сначала моделирует A, но вместо того, чтобы остановиться на значении d, процесс “выкрикивает” <vote, d> и ждет получения N-1 сообщений голосования. Тупика не возникает, потому что все корректные процессы принимают решение в A; следовательно по крайней мере N-1 процессов “выкрикивают” сообщение голосования. Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42 |
|
|||||||||||||||||||||||||||||
![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |