Межпроцессная коммуникация
-
Определение и типы IPC
- IPC (Inter-Process Communication) — взаимодействие между процессами в компьютерной системе.
- Различают два типа IPC: синхронный и асинхронный.
-
Синхронный IPC
- Включает в себя механизмы, которые обеспечивают немедленную реакцию на сообщения.
- Примеры: POSIX семафоры, очереди сообщений, общая память.
-
Асинхронный IPC
- Использует механизмы, которые позволяют процессам взаимодействовать, но не требуют немедленной реакции на сообщения.
- Примеры: D-Bus, ZeroC, CORBA.
-
Примеры IPC в операционных системах
- Linux: System V IPC, TIPC, D-Bus, удаленное взаимодействие .NET.
- Windows: RPC, удаленное взаимодействие .NET, COM, DCOM, OLE.
- Unix: D-Bus, POSIX семафоры, очереди сообщений, общая память.
- Mac OS X: D-Bus, POSIX семафоры, очереди сообщений.
-
API и платформы
- Множество API и платформ поддерживают IPC, включая C++, PHP, Ruby, CORBA.
- Некоторые API зависят от платформы или языка программирования, но не реализуют IPC напрямую.
-
Рекомендации и библиография
- Стивенс, Ричард. Сетевое программирование UNIX, Том 2: Межпроцессные коммуникации. Прентис-холл, 1999 год.
- Рамачандран, М., Соломон, М. Аппаратная поддержка межпроцессного взаимодействия. Материалы 14-го ежегодного международного симпозиума по компьютерной архитектуре, 1987 год.
- Кровелла, М., Бьянкини, Р., Леблан, Т., Маркатос, Э., Вишневски, Р. Использование соотношения «связь-вычисление» при разработке параллельных программ и прогнозировании производительности. 1-4 декабря 1992 года.
Полный текст статьи: