Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Вычислительная сетка система , которая соединяет множество персональных компьютеров через Интернет с помощью межпроцессной сети связи

В информатике , межпроцессного взаимодействия или межпроцессного взаимодействия ( IPC ) относится конкретно к механизмам операционная система обеспечивает , чтобы позволить процессам для управления общими данными. Обычно приложения могут использовать IPC, классифицируемые как клиенты и серверы , где клиент запрашивает данные, а сервер отвечает на запросы клиентов. [1] Многие приложения являются одновременно клиентами и серверами, как это обычно бывает в распределенных вычислениях .

IPC очень важен для процесса проектирования микроядер и наноядер , которые сокращают количество функций, предоставляемых ядром. Эти функции затем достигаются путем связи с серверами через IPC, что приводит к значительному увеличению обмена данными по сравнению с обычным монолитным ядром. Интерфейсы IPC обычно включают в себя изменяемые аналитические структуры. Эти процессы обеспечивают совместимость между многовекторными протоколами, на которых основаны модели IPC. [2]

Механизм IPC бывает синхронным или асинхронным. Примитивы синхронизации могут использоваться для обеспечения синхронного поведения с асинхронным механизмом IPC.

Подходы [ править ]

Различные подходы к IPC были адаптированы к различным требованиям к программному обеспечению , таким как производительность , модульность и системные обстоятельства, такие как пропускная способность сети и задержка . [1]

Приложения [ править ]

Интерфейсы удаленного вызова процедур [ править ]

  • Java «S Remote Method Invocation (RMI)
  • ONC RPC
  • XML-RPC или SOAP
  • JSON-RPC
  • Шина сообщений (Mbus) (указана в RFC 3259 )
  • .NET Remoting
  • gRPC

Стек связи платформы [ править ]

Ниже перечислены системы обмена сообщениями и информационные системы, которые используют механизмы IPC, но сами не реализуют IPC:

  • KDE «S Desktop Communications Protocol (DCOP) - устаревший D-Bus
  • D-автобус
  • OpenWrt использует архитектуру микроавтобуса ubus
  • MCAPI Multicore Communications API
  • SIMPL Проект синхронного межпроцессного обмена сообщениями для Linux (SIMPL)
  • 9P (протокол файловой системы Plan 9)
  • Распределенная вычислительная среда (DCE)
  • Бережливость
  • ZeroC «S Internet Communications Engine (ICE)
  • ØMQ
  • Enduro / X Промежуточное ПО
  • YAMI4

Стек связи операционной системы [ править ]

Ниже перечислены API, зависящие от платформы или языка программирования:

  • Прозрачное межпроцессное взаимодействие Linux (TIPC)
  • События Apple Computer от Apple , ранее известные как Interapplication Communications (IAC)
  • Enea LINX для Linux (с открытым исходным кодом) и различные DSP и универсальные процессоры под OSE
  • Маха ядра Ports Маха
  • Microsoft «s ActiveX , Component Object Model (COM), Microsoft Transaction Server ( COM + ), Distributed Component Object Model (DCOM), динамический обмен данных (DDE), связывание и внедрение объектов (OLE), анонимные трубы , названные трубы , локальная процедура Вызов , почтовые ящики , цикл сообщений , MSRPC , .NET Remoting и Windows Communication Foundation (WCF)
  • Novell «s SPX
  • POSIX mmap , очереди сообщений , семафоры , [4] и разделяемая память
  • Сообщения ОС RISC
  • Двери Solaris
  • Очереди сообщений, семафоры и разделяемая память System V
  • OpenBinder Открыть подшивку
  • Служба PPS (постоянная публикация / подписка) QNX

Распределенные объектные модели [ править ]

Ниже перечислены API, специфичные для платформы или языка программирования, которые используют IPC, но сами не реализуют его:

  • Libt2n для C ++ только под Linux, обрабатывает сложные объекты и исключения
  • Сессии PHP
  • Распределенный Ruby
  • Общая архитектура брокера объектных запросов (CORBA)

См. Также [ править ]

  • Программирование компьютерных сетей
  • Взаимодействие с последовательными процессами (парадигма CSP)
  • Служба распространения данных
  • Вызов защищенной процедуры

Ссылки [ править ]

  1. ^ а б «Межпроцессное взаимодействие» . Microsoft.
  2. ^ Камурати P (1993). «Межпроцессные коммуникации для проектирования системного уровня». Международный семинар по проектированию аппаратного и программного обеспечения .
  3. ^ «Взаимодействие Windows / WSL с AF_UNIX» . Microsoft . Проверено 25 мая 2018 .
  4. ^ « Параллельное программирование - связь между процессами »
  • Стивенс, Ричард . Сетевое программирование UNIX, Том 2, Второе издание: Межпроцессное взаимодействие. Prentice Hall, 1999. ISBN 0-13-081081-9 
  • У. Рамачандран, М. Соломон, М. Вернон Аппаратная поддержка межпроцессного взаимодействия Труды 14-го ежегодного международного симпозиума по компьютерной архитектуре. Питтсбург, Пенсильвания, США. Страницы: 178 - 188. Год публикации: 1987 ISBN 0-8186-0776-9 
  • Crovella, M. Bianchini, R. LeBlanc, T. Markatos, E. Wisniewski, R. Использование соотношения коммуникаций и вычислений при проектировании параллельных программ и прогнозировании производительности 1–4 декабря 1992 г. стр. 238–245 ISBN 0-8186-3200 -3 

Внешние ссылки [ править ]

  • Linux IPC с субмикросекундными задержками
  • Справочная страница Linux ipc (5), описывающая System V IPC
  • Windows IPC
  • IPC доступен с использованием Qt
  • Сетевое программирование Unix (Том 2: Межпроцессное взаимодействие) У. Ричард Стивенс
  • Межпроцессное взаимодействие и конвейеры в C
  • DIPC, Распределенная система V IPC