Реферат: Распределенные алгоритмы
: integer;
begin ;
: = 0; shout <set,
>;
while true
do begin receive<set, V>
if then
begin ;
if
and
then
(* впервые не изменялось:
принять решение*)
end
else if then
skip (*Игнорировать “старую” информацию*)
else (*новый вход; обновить Vp и начать счет заново*)
begin if then
else
;
; shout<set,
>
end
end
end
Алгоритм 13.2 Простой алгоритм переименования.
Алгоритм переименования. В алгоритме переименования
(Алгоритм 13.2), процесс p сохраняет множество входов
процесса, которые p видел; первоначально,
содержит
только
. Каждый раз, когда p
получает множество входов, включая те, которые являются новыми для p,
расширяется новыми входами.
При старте и каждый раз, когда
расширяется,
p “выкрикивает” свое множество. Как видно, множество
растет только в течение
выполнения, т.е., последующие значения
полностью
упорядочиваются при включении, и, кроме того,
содержит
самое большее N имен. Следовательно, процесс p “выкрикивает” свое множество
самое большее N раз, что показывает, что алгоритм завершается и что сложность
по сообщениям ограничена
.
Далее, p считает (в переменной )
сколько раз он получил копии своего текущего множества
. Первоначально
равна 0, и увеличивается
каждый раз, когда получается сообщение, содержащее
.
Получение сообщения <set, V>
может вызвать рост
, что требует
сброса
. Если новое значение
равняется V (то есть, если
V - строгое надмножество старого
),
устанавливается в 1, иначе
в 0.
Говорят, что процесс p, достигает устойчивого множества
V если становится равным N-t, когда значение
- V.
Другими словами, p получил в (N-t)-й раз текущее значение V Vp.
Лемма 13.12
Устойчивые множества полностью упорядочены, то есть, если q достигает
устойчивого множества и r достигает устойчивого множества
,
то
или
.
Доказательство. Предположим, что q достигает устойчивого
множества и r
достигает устойчивого множества
. Это
подразумевает, что q получил <set,
> от
N-t процессов и r получил <set,
>
от N-t процессов. Так как 2(N-t)
> N, то есть по крайней мере один процесс, допустим p, от которого q получил
<set,
> и r получил <set,
>.
Следовательно, как
так и
- значения
, что означает, что одно включено
в другое. o
Лемма 13.13 Каждый корректный процесс по крайней мере однажды достигает устойчивого множества в каждом законном t-аварийном выполнении.
Доказательство. Пусть p - корректный процесс; множество может только расширяться, и
содержит самое большее N входных имен. Следовательно, для
достигается максимальное
значение
. Процесс p “выкрикивает”
это значение, и сообщение <set,
>
получается каждым корректным процессом, что показывает, что каждый корректный
процесс в конечном счете имеет надмножество
.
Однако, это надмножество не строгое; иначе
корректный процесс послал бы строгое надмножество к
p, что противоречит выбору
(как
самого большого множества когда-либо побывавшего в p). Следовательно, каждый
корректный процесс q имеет значение
по
крайней мере один раз при выполнении, и следовательно каждый корректный процесс
посылает p сообщение <set,
>
в течение выполнения. Все эти сообщения получаются при выполнении, и, поскольку
никогда не увеличивается за
пределы
, они все подсчитываются и
заставляют
стать устойчивым в p. o
После достижения устойчивого множества V впервые, процесс p
останавливается на паре (s, r), где s - размер V, и r - положение в V. Устойчивый множество
было получено от N-t процессов, и следовательно
содержит по крайней мере N-t входных имен, что
показывает
. Положение в множестве размера
s удовлетворяет
. Число возможных
решений, следовательно,
, что
равняется
; если нужно, можно
использовать фиксированное отображение пар на целые числа в диапазоне 1,..., K
(Упражнение 13.5).
Теорема 13.14
Алгоритм 13.2 решает проблему переименования с выходным пространством имен
размера .
Доказательство. Так как, в любом законном t-аварийном
выполнении каждый корректный процесс достигает устойчивого множества, каждый
корректный процесс останавливается на новом имени. Чтобы показать, что все
новые имена различны, рассмотрим устойчивые множества и
, достигаемые процессами q и
r соответственно. Если эти множества имеют различные размеры, решения q и r
различны, потому что размер включается в решение. Если множества имеют один и
тот же размер, то по Лемме 13.12, они равны; тогда q и r имеют различный ранг в
множестве, что снова показывает, что их решения различны. o
Страницы: 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, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105