Распределенное программирование. Схемы взаимодействия

Клиент-сервер

Архитектура клиент-сервер один из вариантов построения систем, состоящих из наборов серверов, предоставляющих определенные сервисы; наборы клиентов, использующие эти сервисы; и средств связи, обеспечивающих передачу информации

Сопоставление программ смониторами и с передачей сообщений

С мониторами С передачей сообщений
Постоянные переменные Локальные переменные сервера
Идентефикаторы процедур Канал запроса
Вызов процедуры SEND request(); recieve replu
Вход в монитор Receive reply()
Возврат в процедуру Сохранение ожидающих запросов
Операция WAIT Получение и обрабокта ожидающего запроса
Операция SIGNAL Ветки оператора выбора по видам переменной
Тело процедуры  

Взаимодействующие равные. Обмен значениями.

Есть n процессов, имеющих переменную V. Требуется найти min и macx среди этих значений

- централизованное решение

- симметричное решение

1. Централизованное решение

Выделяется процесс который собирает n чисел, находит max и min и рассылает остальные процессы.

2. Симметричное решение

В этом случае все процессы работают одинаково каждый процесс отправляет свое значение всем остальным, затем все процессы параллельно вычисляют max и min из полученных значений

3. Кольцевое решение

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

Вычисление происходит в 2 этапа:

1) процесс получает 2 числа, определячет min и max из них и своего значения и отправляет результаты дальше

2) Процесс получает глобальное значение min и max и передает результаты дальше

1 процесс выступает как инициатор процесса.

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

Сообщения оправляются и передаются параkлельно => надо учитывать характеристики каналов связи (если необходимо ставить задержки)

Чем больше передаются сообщения, тем меньше скорость.

Централизованное и кольцевое решение используют линейное число сообщений но имеют разные схемы взаимодействия:

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

- В кольцевом решении все процессы являются одновременно и производителями и потребителями соединенные в круговой конвенер, т. е. Последний процесс в кольце доолжен рождаться пока кажды процесс получает сообщение выполнит вычисление и отправит результаты другому процессу => оптимизировать это решение путем совмещения передачи сообщений невозможно.

Поэтому это решение непроизвод. Это решение приемлимо в том случае, если каждый процесс выполнит значительное количество вычислений.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: