- Межпроцессное взаимодействие
-
Межпроцессное взаимодействие (англ. Inter-Process Communication, IPC) — набор способов обмена данными между множеством потоков в одном или более процессах. Процессы могут быть запущены на одном или более компьютерах, связанных между собой сетью. IPC-способы делятся на методы обмена сообщениями, синхронизации, разделяемой памяти и удаленных вызовов (RPC). Методы IPC зависят от пропускной способности и задержки взаимодействия между потоками и типа передаваемых данных.
IPC также может упоминаться как межпотоковое взаимодействие (англ. inter-thread communication), межпоточное взаимодействие и межпрограммное взаимодействие (англ. inter-application communication).
IPC наряду с концепцией адресного пространства является основой для разграничения адресного пространства.[1]
Содержание
Таблица методов IPC
Метод Реализуется (операционной системой или другим окружением) Файл Все операционные системы. Сигнал Большинство операционных систем; некоторые системы, как например, Windows, только реализуют сигналы в библиотеке запуска Си, но не обеспечивают их полноценной поддержки для использования методов IPC. Сокет Большинство операционных систем. Канал Все системы, соответствующие POSIX. Именованный канал Все системы, соответствующие POSIX. Семафор Все системы, соответствующие POSIX. Разделяемая память Все системы, соответствующие POSIX. Обмен сообщениями
(без разделения)Используется в парадигме MPI, Java RMI, CORBA и других. Проецируемый в память файл Все системы, соответствующие POSIX; несет риск появления состояния гонки в случае использования временного файла. Windows также поддерживает эту технологию, но использует API отличный от POSIX. Очередь сообщений Большинство операционных систем. Почтовый ящик Некоторые операционные системы. Реализации
Существует несколько API, которые могут использоваться для IPC. Вот несколько платформо-независимых API:
- анонимные каналы и именованные каналы
- CORBA
- D-Bus от Freedesktop.org
- Distributed Computing Environment (DCE)
- Шина сообщений (Message Bus или MBUS) (описана в RFC 3259)
- Lightweight Communications and Marshalling (LCM)
- ONC RPC
- Сокеты
- XML XML-RPC или SOAP
- Thrift
- TIPC
- Internet Communications Engine (ICE) от ZeroC
- при обращении к локальному IP функции IPC выполняют сетевые протоколы, для этих целей у каждого компьютера есть специальный IP-адрес.
Ниже указана платформа или язык программирования указанных API:
- Механизм Apple events от Apple Inc. (ранее известный как Interapplication Communications (IAC)).
- Java Remote Method Invocation (RMI)
- Desktop Communications Protocol(DCOP) (часть KDE)
- Libt2n для C++ только под Linux, обрабатывает сложные объекты и исключения
- Порты Machа
- Технологии компании Microsoft: ActiveX, Component Object Model (COM), Microsoft Transaction Server (COM+), Distributed Component Object Model (DCOM), Dynamic Data Exchange (DDE), Object Linking and Embedding (OLE), анонимные каналы, именованные каналы, Local Procedure Call, Message loop, MSRPC, .NET Remoting и Windows Communication Foundation
- SPX компании Novell
- POSIX mmap, очереди сообщений, семафоры и разделяемая память
- Сообщения RISC OS
- Технология Solaris Doors
- Очереди сообщений, семафоры и разделяемая память UNIX System V
- Распределенный Ruby
- Распределенное межпроцессное взаимодействие (Distributed Inter-Process Communication)
См. также
- Сетевое программирование
- .NET Remoting
- Микроядро
- Защищённый вызов процедуры
Ссылки
- ↑ Йохан Лиетке. On µ-Kernel Construction, Proc. 15th ACM Symposium on Operating System Principles (SOSP), декабрь 1995
- Stevens, Richard. UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications. Prentice Hall, 1999. ISBN 0-13-081081-9
- U. Ramachandran, M. Solomon, M. Vernon Hardware support for interprocess communication Proceedings of the 14th annual international symposium on Computer architecture. Pittsburgh, Pennsylvania, United States. Pages: 178—188. Year of Publication: 1987 ISBN 0-8186-0776-9
- Crovella, M. Bianchini, R. LeBlanc, T. Markatos, E. Wisniewski, R. Using communication-to-computation ratio in parallel program designand performance prediction 1-4 December 1992. pp. 238—245 ISBN 0-8186-3200-3
Дополнительные источники
Межпроцессное взаимодействие в информатике Методы Файл · Memory-mapped file · Обмен сообщениями · Message queue and mailbox · Именованный канал · Anonymous pipe · Pipe · Семафор (критическая секция, мьютекс, фьютекс) · Shared memory · Сигнал · Сокет · Unix domain socket Избранные протоколы
и стандартыApple events · COM+ · CORBA · D-Bus · DCE · DCOP · DIPC · ICE · LINX · ONC RPC · POSIX (различные методы) · SOAP · Thrift · TIPC · XML-RPC Категория:- Межпроцессное взаимодействие
Wikimedia Foundation. 2010.