Операционные системы распределенных вычислительных систем


Реализация распределенных файловых систем. - часть 14


/p>

В этом примере процессы «видят» записи в порядке W(z)1, W(x)1,W(y)1  или W(x)1, W(z)1,W(y)1.

P1:

W(x)1

 

 

W(y)1

 

 

P2:

 

 

W(z)1

 

 

 

P3:

 

R(x)0

R(y)1

R(z)0

R(y)1

 

P4:

 

R(x)1

R(y)1

R(z)0

R(x)1

 

В этом примере процессы «видят» записи в порядке W(x)1, W(y)1,W(z)1.

Два примера неправильного выполнения той же программы.

P1:

W(x)1

 

 

W(y)1

 

 

P2:

 

 

W(z)1

 

 

 

P3:

 

R(x)0

R(y)0

R(z)1

R(y)0

 

P4:

 

R(x)0

R(y)1

R(z)0

R(x)1

 

Процессы Р3 и Р4 «видят» записи W(y)1 и W(z)1 в разном порядке.

P1:

W(x)1

 

 

W(y)1

 

 

P2:

 

 

W(z)1

 

 

 

P3:

 

R(x)1

R(y)0

R(z)1

R(y)1

 

P4:

 

R(x)0

R(y)1

R(z)1

R(x)0

 

Процесс Р4  «видит» записи W(x)1 и W(y)1 не в том порядке, как они выполнялись в процессе Р1.

Описанный выше миграционный алгоритм реализует последовательную консистентность.

Последовательная консистентность может быть реализована также следующим образом. Страницы, доступные на запись, размножаются, но операции с разделяемой памятью не должны начинаться до тех пор, пока не завершится выполнение предыдущей операции записи, выданной каким-либо процессором, т.е. будут скорректированы все копии соответствующей страницы (все записи выполняются последовательно, блокируя на время своего выполнения работу всех процессов). В системах с упорядоченным механизмом широковещания запрос на операцию модификации памяти рассылается всем владельцам копий соответствующей страницы (включая и себя). При этом, работа процессов не блокируется. Одним процессором могут быть выданы несколько запросов на модификацию данных. Любая операция чтения не должна выполняться до того как будут выполнены все выданные данным процессором запросы на модификацию (процессор получит и выполнит «свои» запросы).




Начало  Назад  Вперед