Организация ЭВМ и систем: Курс лекций (Позиционные системы счисления. Процессоры семейства IA-32. Лазерные принтеры), страница 47

Каналы связи дуплексные. Скорость передачи данных 1,28 Гбод в обоих направлениях. Размер пакетов неограничен.

Платы содержат программируемый процессор и ОЗУ.

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

15.5.  Программное обеспечение систем с раздельной памятью

15.5.1. Технологии организации взаимодействия узлов

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

—  синхронная передача сообщений,

—  буферная передача сообщений,

—  неблокируемая передача сообщений.

15.5.2. Синхронная передача сообщений

После выполнения операции «послать» отправитель блокируется до тех пор, пока получатель не выполнит операцию «получить». Управление возвращается отправителю только тогда, когда операция пересылки сообщения завершена.

Данная технология проста в использовании и не требует буферизации. Недостатком её является простаивание процесса-отправителя даже в том случае, если его работа может продолжаться и до получения сообщения получателем.

15.5.3. Буферная передача сообщений

Если получатель не готов принять отправленное сообщение, то оно сохраняется в буфере до тех пор, пока получатель не заберёт его оттуда. Отправитель продолжает работу сразу же по приёму сообщения в буфер. Буфер может принять множество сообщений и отправляет их в порядке очереди.

Технология даёт время ожидания, меньшее, чем синхронная передача, но не даёт никаких гарантий получения сообщения. Даже при надёжной системе коммуникаций получатель мог сломаться ещё до получения сообщения.

15.5.4. Неблокируемая передача сообщений

Отправитель продолжает работу сразу же после системного вызова «послать», возможно, ещё до того, как сообщение будет буферизовано. Таким образом, в данной технологии работа отправителя не блокируется ни при каких обстоятельствах. Буферизация сообщения производится тогда, когда система простаивает.

Время ожидания минимально. К недостаткам технологии, помимо отсутствия гарантий получения, относится отсутствие определённого порядка буферизации сообщений, если запрос на посылку второго сообщения поступил до того, как первое было буферизовано или переслано. Всё упорядочение работы возлагается на программное обеспечение.

15.5.5. Parallel Virtual Machine

Технология изначально разработана для сетей рабочих станций, работающих под управлением ОС UNIX. Сейчас она представляет собою самодостаточную технологию управления процессами и операциями ввода-вывода.

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

Когда PVM начинает работу, она считывает конфигурационный файл, указывающий, какие машины включаются в состав системы. На каждой из этих машин запускается сторожевой процесс. В процессе работы также можно добавлять и удалять узлы.

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

Процессы в PVM взаимодействуют с помощью передачи сообщений. Каждый процесс имеет по одному активному посылочному и приёмному буферу. Библиотечные функции, выполняющие пересылку данных, устроены таким образом, что вместе с данными посылается их описание, которое позволяет получателю прочитать их, даже если форматы данных у отправителя и получателя различные.

Технически PVM используется следующим образом. Когда сообщение скомпоновано, отправитель вызывает библиотечную процедуру pvm_send. Получатель может пользоваться одной из следующих процедур: