Межпроцессное взаимодействие Реферат на тему:

advertisement
Реферат на тему:
Межпроцессное взаимодействие
План:
Введение



1 Таблица методов IPC
2 Реализации
3 Дополнительные источники
Введение
Межпроцессное взаимодействие (англ. Inter-Process Communication, IPC) — набор
способов обмена данными между множеством потоков в одном или более процессах.
Процессы могут быть запущены на одном или более компьютерах, связанных между
собой сетью. IPC-способы делятся на методы обмена сообщениями, синхронизации,
разделяемой памяти и удаленных вызовов (RPC). Методы IPC зависят от пропускной
способности и задержки взаимодействия между потоками и типа передаваемых данных.
IPC также может упоминаться как межпотоковое взаимодействие (англ. inter-thread
communication), межпоточное взаимодействие и межпрограммное взаимодействие
(англ. inter-application communication).
IPC наряду с концепцией адресного пространства является основой для разграничения
адресного пространства.[1]
1. Таблица методов IPC
Метод
Файл
Сигнал
Сокет
Канал
Именованный
канал
Семафор
Разделяемая
память
Обмен
сообщениями
(без разделения)
Проецируемый в
память файл
Очередь
сообщений
Почтовый ящик
Реализуется (операционной системой или другим окружением)
Все операционные системы.
Большинство операционных систем; некоторые системы, как
например, Windows, только реализуют сигналы в библиотеке запуска
Си, но не обеспечивают их полноценной поддержки для
использования методов IPC.
Большинство операционных систем.
Все системы, соответствующие POSIX.
Все системы, соответствующие POSIX.
Все системы, соответствующие POSIX.
Все системы, соответствующие POSIX.
Используется в парадигме MPI, Java RMI, CORBA и других.
Все системы, соответствующие POSIX; несет риск появления
состояния гонки в случае использования временного файла. Windows
также поддерживает эту технологию, но использует API отличный от
POSIX.
Большинство операционных систем.
Некоторые операционные системы.
2. Реализации
Существует несколько 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)
KDE's Desktop Communications Protocol (DCOP)
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)
Download