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


         

Это переменные, показывающие, что произошли


Это переменные, показывающие, что произошли определенные события.
Для объявления события служит оператор POST(имя переменной), для ожидания события - WAIT (имя  переменной). Для чистки (присваивания нулевого значения) - оператор CLEAR(имя переменной).
Варианты реализации   -     не хранящие информацию (по оператору POST из ожидания выводятся только те процессы, которые уже выдали  WAIT) , однократно объявляемые (нет оператора чистки).
Метод последовательной верхней релаксации (SOR) с использованием  массива событий.
 
float  A[ L1 ][ L2 ];
struct event  s[ L1 ][ L2 ];
for ( i = 0; i < L1; i++)  
for ( j = 0; j < L2; j++)   { clear( s[ i ][ j ]) };
for ( j = 0; j < L2; j++)   { post( s[ 0 ][ j ]) };
for ( i = 0; i < L1; i++)   { post(
s[ i ][ 0 ]) };
..............
..............
parfor ( i = 1; i < L1-1; i++)
       parfor ( j = 1; j < L2-1; j++)
{  wait( s[ i-1 ][ j ]);
wait( s[ i ][ j-1 ]);
A[ i ][ j ] = (A[ i-1 ][ j ] + A[ i+1][ j ] + A[ i ][ j-1 ] + A[ i ][ j+1 ]) / 4;
post( s[ i ][ j ]);
       }
     
 
Обмен сообщениями (message passing)
 
Хоар (Xoare) 1978 год, "Взаимодействующие параллельные процессы". Цели - избавиться от проблем разделения памяти и предложить модель взаимодействия процессов для распределенных систем.
send (destination, &message, msize);
receive ([source], &message, msize);
Адресат - процесс. Отправитель - может не специфицироваться (любой).
С буферизацией (почтовые ящики) или нет (рандеву - Ада, Оккам).
Пайпы  ОС UNIX - почтовые ящики, заменяют файлы  и  не хранят границы сообщений (все сообщения объединяются в одно большое, которое можно читать произвольными порциями.
Пример использования буферизуемых сообщений.
#define  N   100                                 /* максимальное число сообщений */
                                                           /* в буфере*/
#define  msize  4                                /* размер сообщения*/
typedef  int message[msize]; 

Содержание  Назад  Вперед