Составители:
Рубрика:
каналы можно рассматривать как абстракцию сетей связи, обеспе-
чивающих физическую связь между вычислительными модулями.
Адаптеры, линки и коммутаторы обычно являются важными эле-
ментами коммуникационной среды. Для удобства програм ми рова-
ния вводятся специальные операции, которые служат для передачи
сообщений.
Параллельные программы, использующие передачу сообщений
называются распределенными программами.
Заметим, что распределенные программы могут работать и на
ВС с разделяемой (общей) памятью: в этом случае каналы генери-
руются с помощью разделяемой памяти.
В распределенных программах каналы чаще всего являются
важными, но не всегда единственными объектами, разделяемыми
вычислительными модулями; кроме каналов могут быть общими
также некоторые другие устройства (например, принтеры).
Пока что будем считать, что каждый процесс выполняется на
своем вычислительном модуле (иначе говоря, поток команд, обраба-
тываемых вычислительным модулем, рассматривается как отдель-
ный п роце сс). В этом случае переменная оказывается локальной по
отношению к своему процессу, который, таким образом, является
ее владельцем (caretaker). Эта переменная никогда не должна ста-
новится объектом параллельного доступа, а значит она нуждается
в использовании механизма взаимного исключения.
Общение процессов между собой происходит разными путями;
при этом должна производиться синхронизация межпроцессорного
взаимодействия. Значение синхронизации здесь не меньше, а воз-
можно и больше, ч ем при программировании систем с разделяемой
памятью: как известно, важно постоянно поддерживать когерент-
ность иерархической памяти системы с распределенной памятью.
Взаимодействие процессов на разных стадиях может быть
– асинхронным (неблок ирующим ),
– синхронным (блокир ующим).
Различают:
1) асинхронную передачу сообщений,
2) синхронную передачу сообщений,
3) удаленный вызов процедур (remote procedure call — RPC),
4) рандеву.
7
Страницы
- « первая
- ‹ предыдущая
- …
- 4
- 5
- 6
- 7
- 8
- …
- следующая ›
- последняя »