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


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


/p>

а) Строго консистентная память

б) Память без строгой консистентности

 

6.3.2           Последовательная консистентность.

 Строгая консистентность представляет собой идеальную модель для программирования, но ее, к сожалению программистов, невозможно реализовать для распределенных систем. Однако, практический опыт показывает, что в некоторых случаях можно обходиться и более «слабыми» моделями. Все эти методы опираются на то, что должна соблюдаться последовательность определенных событий записи и чтения.

Последовательную консистентность впервые определил Lamport в 1979 г.

По его определению, модель последовательной консистентности памяти должна удовлетворять следующему условию: «Результат выполнения должен быть тот-же, как если бы операторы всех процессоров выполнялись бы в некоторой последовательности, в которой операторы каждого индивидуального процессора расположены в порядке, определяемом программой этого процессора»

Это определение означает, что при параллельном выполнении, все процессы должны «видеть» одну и ту же последовательность записей в память.

Последовательная консистентность не гарантирует, что операция чтения возвратит значение, записанное другим процессом наносекундой или даже минутой раньше, в этой модели только точно гарантируется, что все процессы знают последовательность всех записей в память. Результат повторного выполнения параллельной программы в системе с последовательной консистентностью (как, впрочем, и при строгой консистентности) может не совпадать с результатом предыдущего выполнения этой же программы, если в программе нет регулирования операций доступа к памяти с помощью механизмов синхронизации.

Два примера правильного выполнения одной программы. В примерах используются следующие обозначения:

W(x)1 - запись значения 1 в переменную x;

R(x)0 - чтение значения 0 из переменной x.

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)1

R(x)1

 

<


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



Книжный магазин