Распределенные алгоритмы
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: налоги и налогообложение, план дипломной работы
| Добавил(а) на сайт: Ноздрин.
Предыдущая страница реферата | 14 15 16 17 18 19 20 21 22 23 24 | Следующая страница реферата
Пусть f = (f0 , f1 , f2 ,...) будет последовательностью событий. Эта
последовательность - последовательность событий относящихся к исполнению F
= ((0, (1, (2, ...), если для каждого i, fi применимо в (i и fi ((i) =
(i+1. В этом случае F называется включенным исполнением последовательности
f. Мы хотели бы, чтобы F уникально определялась последовательностью f, но
это не всегда так. Если для некоторого процесса p нет события в p, включенного в f, то состояние процесса p может быть произвольным начальным
состоянием. Однако, если f содержит по крайней мере одно событие из р, то
первое событие в р, скажем (с, х, у, d), определяет, что начальное
состояние процесса р будет с. Поэтому, если f содержит по крайней мере одно
событие в каждом процессе, (0 уникально определено, и это определяет целое
исполнение уникально.
Теперь пусть Е = ((0, (1, (2, ... ) будет исполнением с ассоциированной
последовательностью событий Е’ = (е0 , е1 , е2 , ...) и положим, что f
–перестановка из Е’. Это означает, что существует перестановка (
натуральных чисел (или множества {0, ..., k-1}, если Е – конечное
исполнение с k событиями) таких, что fi = е((i). Перестановка (f0 , f1 , f2
, ...) событий из Е согласующаяся с каузальным порядком, если fi (= fj
подразумевает i ( j, т.е., если нет события, которому предшествует в
последовательности событие, которому оно само каузально предшествует.
Теорема 2.21 Пусть f = (f0 , f1 , f2 , ...) – перестановка событий из
Е, которая согласуется с каузальным порядком исполнения Е. Тогда f
определяет уникальное исполнение F, начинающееся в начальной конфигурации
из Е. F имеет столько же событий сколько и Е, и если Е конечно, то
последняя конфигурация из F такая же как и последняя конфигурация из Е.
Доказательство. Конфигурации из F строятся одна за другой, и чтобы построить (i+1 достаточно показать, что fi применимо в (i. Возьмем (0 = (0.
Предположим, что для всех j < i, fj применимо в конфигурации (j и (j+1
= fj ((j ). Пусть (i = (cp1 , ..., cpN , M) и пусть fi =(c, x, y, d) будет
событие в процессе р, тогда событие fi применимо в (i, если сp = c и х (
М.
Чтобы показать, что сp = c нужно различать два случая. В обоих случаях мы должны помнить, что каузальный порядок исполнения Е абсолютно упорядочивает события в процессе р. Это подразумевает, что события в процессе р появляются в точно таком же порядке и в f и в Е’.
Случай 1: fi - первое событие в р из f, тогда ср – это начальное состояние р. Но тогда fi – также первое событие в р из Е’, что подразумевает, что с – это начальное состояние р. Следовательно, с = ср.
Случай 2: fi – не первое событие в р из f. Пусть последнее событие в р
из f перед fi будет fi' = (c’, x’, y’, d’), тогда ср = d’. Но тогда fi'
также последнее событие в р перед fi из Е’, что подразумевает, что с = d’.
Следовательно, с = ср.
Чтобы показать, что х ( М мы должны помнить, что соответствующие события приема и посылки встречаются в одном порядке и в f и в Е’. Если fi не событие посылки, то х = ( и х ( М выполняется тривиально. Если fi – это событие посылки, пусть fi будет соответствующим событием посылки. Так как fj ( fi , j < i выполняется, т.е., событие посылки предваряет fi в f, следовательно, х ( М.
Мы сейчас показали, что для каждого i, fi применимо в (i, и (i+1 может быть взято как fi((i). Мы должны, наконец, показать, что последние конфигурации из F и Е совпадают, если Е конечно. Пусть (k будет последней конфигурацией из Е. Если Е’ не содержит события в р, то состояние р в (k равно его начальному состоянию. Так как f также не содержит события в р, то состояние р в (k также равно начальному состоянию, отсюда состояние р в (k равняется его состоянию в (k. Иначе, состояние р в (k есть состояние после последнего события в р из Е’. Это также последнее событие в р из f, так что это также состояние р в (k.
Сообщения в процессе передачи в (k есть такие сообщения, для которых событию посылки нет соответствующего события получения в Е’. Но так как Е’ и f содержат один и тот же набор событий, те же сообщения в процессе передачи в последней конфигурации из F. (
Рис. 2.2 Пространственно-временная диаграмма эквивалентная рис. 2.1
Исполнения F и Е имеют один набор событий, и каузальный порядок этих событий – один и тот же для Е и F. Поэтому, также, в этом случае Е – это перестановка событий из F, которая согласуется с каузальным порядком исполнения F. Если применить условие теоремы 2.21, мы можем сказать, что Е и F – эквивалентные исполнения, что обозначается как E ~ F.
Рис. 2.2 показывает временную диаграмму исполнения, эквивалентного
исполнению, изображенному на рис. 2.1. Эквивалентные временные диаграммы
могут быть получены с помощью «трансформаций резиновой ленты» [Mat89c].
Полагая, что временная ось процесса может быть сжата и растянута пока
стрелки сообщений продолжают указывать направо, рис. 2.1 может быть
деформирован до рис. 2.2.
Хотя изображенные исполнения эквивалентны и содержат одинаковый набор событий, они не могут содержать одинаковый набор конфигураций. Рис. 2.1 содержит конфигурацию ((”), в которой сообщение, посланное в событии е и сообщение, посланное в событии l, передаются одновременно . Рис. 2.2 не содержит такой конфигурации, потому что сообщение, посланное в событии l, получено перед свершением события е.
Глобальный наблюдатель, кто имеет доступ к действительной
последовательности событий, может различать два эквивалентных исполнения, т.е. может наблюдать либо одно, либо другое исполнение. Однако, процессы не
могут различать две эквивалентных исполнения, т.к. для них невозможно
решить, какое из двух исполнений имеет место. Это иллюстрируется следующим.
Предположим, что мы должны решить будут ли посылаться сообщения в событии е
и будут в передаче одновременно. Существует булевская переменная sim в
одном из процессов, которая должна установлена в истину, если сообщения
были в передаче одновременно, и ложь иначе. Таким образом, в последней
конфигурации рис. 2.1 значение sim – истина, и в последней конфигурации на
рис 2.2 значение – ложь. По теореме 2.21, конфигурации равны, что
показывает, что требуемое присваивание sim невозможно.
Класс эквивалентности при отношении ~ полностью характеризуется набором событий и каузальным порядком на этих событиях. Классы эквивалентности называются вычислениями алгоритма.
Определение 2.22 Вычисление распределенного алгоритма – это класс эквивалентности (при ~) исполнений алгоритма.
Не имеет смысла говорить о конфигурациях вычисления, потому что
различные исполнения вычисления могут не иметь одних и тех же конфигураций.
Имеет смысл говорить о наборе событий вычисления, потому что все исполнения
вычисления состоят из одного и того же набора событий. Также, каузальный
порядок событий определен для вычисления. Мы будем называть вычисление
конечным, если его исполнения конечны. Все исполнения вычисления начинаются
в одной конфигурации и, если вычисление конечно, завершаются в одной
конфигурации (теорема 2.21). Эти конфигурации называются начальными и
конечными конфигурациями вычисления. Мы будем определять вычисление с
помощью частично упорядоченного множества событий, принадлежащих ему.
Результат из теории частичных порядков подразумевает, что каждый порядок может встречаться для пары конкурирующих событий вычислений.
Факт 2.23 Пусть (Х, , повторная передача слов с inp[0] до inp[i — lq] уже не нужна.
Объяснение псевдокода. После выбора модели нетрудно разработать код
протокола; см. Алгоритм 3.1. Для процесса p введена переменная ap (и aq для
q), в которой хранится самое первое слово, для которого p (или q, соответственно) еще не получил подтверждение..
В Алгоритме 3.1 действие Sp - посылка i-го слова процессом p, действие Rp -
принятие слова процессом p, и действие Lp - потеря пакета с местом
назначения p. Процесс p может послать любое слово, индекс которого попадает
в указанные ранее границы. Когда сообщение принято, в первую очередь
делается проверка - было ли идентичное сообщение принято ранее (на случай
повторной передачи). Если нет, слово, содержащееся в нем, записывается в
выход, и ap и sp корректируются. Также вводятся действия Sq, Rq и Lq , где
p и q поменяны ролями.
var sp, ap : integer init 0, 0 ; inp : array of word (* Посылаемые данные *) ; outp : array of word init udef, udef, ...',
Sp: {ap ( i < Sp+lp} begin send < pack,inp[i],i> to q end
Rp: { < pack, w, i > (Qp } begin receive ; if outp[i] = udef then begin outp[i] := w ; ap := max(ap,i-lp+1) ;
Sp := minj end
(* else игнорируем, пакет передавался повторно *) end
Рекомендуем скачать другие рефераты по теме: педагогические рефераты, реферат машини.
Категории:
Предыдущая страница реферата | 14 15 16 17 18 19 20 21 22 23 24 | Следующая страница реферата