Модель процесс/канал
Модель процесс/канал характеризуется следующими свойствами:
- Параллельное
вычисление состоит из одного или более одновременно исполняющихся
процессов, число которых может изменяться в течение времени выполнения
программы.
- Процесс
- это последовательная программа с локальными данными. Процесс
имеет входные и выходные порты, которые служит интерфейсом к
среде процесса.
- В дополнение
к обычным операциям процесс может выполнять следующие действия:
послать сообщение через выходной порт, получить сообщение из
входного порта, создать новый процесс и завершить процесс.
- Посылающаяся
операция асинхронная - она завершается сразу, не ожидая того,
когда данные будут получены. Получающаяся операция синхронная:
она блокирует процесс до момента поступления сообщения.
- Пары
из входного и выходного портов соединяются очередями сообщений,
называемыми каналами (channels). Каналы можно
создавать и удалять. Ссылки на каналы (порты) можно включать в
сообщения, так что связность может измениться динамически.
- Процессы
можно распределять по физическим процессорам произвольным способами,
причем используемое отображение (распределение) не воздействует
на семантику программы. В частности, множество процессов можно
отобразить на одиночный процессор.
Понятие
процесса позволяет говорить о местоположении данных: данные,
содержащихся в локальной памяти процесса - расположены ``близко
", другие данные ``удалены". Понятие канала обеспечивает
механизм для указания того, что для того, чтобы продолжить вычисление
одному процессу требуются данные другого процесса (зависимость
по данным).