Межпроцессное взаимодействие: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Addbot (обсуждение | вклад) м Перемещение 23 интервики на Викиданные, d:q751436 |
Нет описания правки |
||
Строка 1:
'''Межпроцессное взаимодействие''' ({{lang-en|
Из механизмов, предоставляемых [[Операционная система|ОС]] и используемых для IPC, можно выделить:
IPC также может упоминаться как '''межпотоковое взаимодействие''' ({{lang-en|inter-thread communication}}), '''межпоточное взаимодействие''' и '''межпрограммное взаимодействие''' ({{lang-en|inter-application communication}}).▼
* механизмы [[Обмен сообщениями|обмена сообщениями]];
* механизмы [[Синхронизация (информатика)|синхронизации]];
* механизмы [[Разделяемая память|разделения памяти]];
* механизмы [[Remote Procedure Call|удалённых вызовов]] (RPC).
Для оценки производительности различных механизмов IPC используют следующие параметры:
IPC наряду с концепцией [[Адресация памяти|адресного пространства]] является основой для разграничения адресного пространства.<ref> [[Йохан Лиетке]]. ''[http://i30www.ira.uka.de/research/publications/papers/index.php?lid=en&docid=642 On µ-Kernel Construction]'', ''Proc. 15th ACM Symposium on Operating System Principles (SOSP)'', декабрь 1995</ref>▼
* пропускная способность (количество сообщений в единицу времени, которое [[Ядро операционной системы|ядро]] [[Операционная система|ОС]] или [[Процесс (информатика)|процесс]] способна обработать);
* задержки (время между отправкой сообщения одним [[Поток выполнения|потоком]] и его получением другим потоком).
▲IPC
▲IPC, наряду с
== Таблица методов IPC ==▼
▲==Таблица методов IPC==
{| class="wikitable"
! Метод !! Реализуется
|-
| [[Файл]] || Все [[Операционная система|
|-
| [[Сигналы (UNIX)|Сигнал]] || Большинство [[Операционная система|
|-
| [[Сокет (программный интерфейс)|Сокет]] || Большинство [[Операционная система|
|-
| [[
|-
| [[Именованный канал]] || Все
|-
| [[Семафор (информатика)|Семафор]] || Все
|-
| [[Разделяемая память]] || Все
|-
| [[Обмен сообщениями]] <br />(без разделения) || Используется в парадигме [[Message Passing Interface|MPI]], [[Java]] [[RMI]], [[CORBA]] и других.
|-
| [[Mmap|Проецируемый в память файл]] (mmap) ||
|-
| [[Очередь сообщений]] || Большинство [[Операционная система|
|-
| [[Mailslot|Почтовый ящик]] || Некоторые [[Операционная система|
|-
|}
== Реализации ==
Существует несколько [[Интерфейс программирования приложений|API]], которые могут использоваться для IPC. Вот несколько платформо-независимых API:▼
* [[Анонимный канал|анонимные каналы]] и [[Именованный канал|именованные каналы]]▼
* [[CORBA]]▼
* [[D-Bus]] от [[Freedesktop.org]]▼
* [[Distributed Computing Environment]] (DCE)▼
* Шина сообщений (Message Bus или MBUS) (описана в RFC 3259)▼
* [[Lightweight Communications and Marshalling]] (LCM)▼
* [[Sun RPC|ONC RPC]]▼
* [[Сокет (программный интерфейс)|Сокеты]]▼
* [[XML]] [[XML-RPC]] или [[SOAP]]▼
* [[Thrift (протокол)|Thrift]]▼
* [[TIPC]]▼
* [[Internet Communications Engine]] (ICE) от [[ZeroC]]▼
▲Существует несколько [[Интерфейс программирования приложений|API]],
API, специфичные для определённых платформ или языков программирования:▼
* Механизм [[Apple events]] от [[Apple|Apple Inc.]] (ранее известный как Interapplication Communications (IAC)).▼
API, не зависимые от платформы:
* [[Java]] [[RMI|Remote Method Invocation]] (RMI)▼
▲* [[CORBA]];
* [[Libt2n]] для [[C++]] только под Linux, обрабатывает сложные объекты и исключения▼
▲* [[D-Bus]] от [[Freedesktop.org]];
▲* [[Distributed Computing Environment]] (DCE);
* Технологии компании [[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 in Microsoft Windows|Message loop]], [[MSRPC]], [[.NET Remoting]] и [[Windows Communication Foundation]]▼
* [[IPX/SPX|SPX]] компании [[Novell]]▼
▲* [[Lightweight Communications and Marshalling]] (LCM);
* [[POSIX]] [[mmap]], [[Очередь сообщения|очереди сообщений]], [[Семафор (информатика)|семафоры]] и [[разделяемая память]]▼
▲* [[Sun RPC|ONC RPC]];
▲* [[XML]] [[XML-RPC]] или [[SOAP]];
* Очереди сообщений, семафоры и [[разделяемая память]] [[UNIX System V]]▼
▲* [[Thrift (протокол)|Thrift]] (протокол);
▲* [[TIPC]];
* [[Распределенное межпроцессное взаимодействие]] (Distributed Inter-Process Communication)▼
▲* [[Internet Communications Engine]] (ICE) от [[ZeroC]];
* [[localhost]] (виртуальный сетевой интерфейс; функции IPC выполняют [[Протокол передачи данных|сетевые протоколы]]).
▲API, специфичные для определённых платформ или [[Язык программирования|языков программирования]]:
▲*
* [[DCOP|desktop communications protocol]] (DCOP) (компонент [[KDE]] версии 3);
* порты микроядра [[Mach]];
▲*
* [[Протокол передачи данных|протокол]] [[IPX/SPX|SPX]] компании [[Novell]];
▲* механизмы, описанные в стандарте [[POSIX]]: [[mmap]], [[Очередь сообщения|очереди сообщений]], [[Семафор (информатика)|семафоры]]
* сообщения в [[Операционная система|ОС]] [[RISC OS]];
* технология [[Doors (компьютеры)|Doors]] в [[Операционная система|ОС]] [[Solaris]];
▲*
* [[распределённый Ruby]];
▲* [[
== См. также ==
* [[Сетевое программирование]]
* [[.NET Remoting]]
Строка 72 ⟶ 87 :
== Ссылки ==
* [[W. Richard Stevens|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 ''[http://portal.acm.org/citation.cfm?id=30371&coll=portal&dl=ACM 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. ''[http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=242738 Using communication-to-computation ratio in parallel program designand performance prediction]'' 1-4 December 1992. pp. 238—245 ISBN 0-8186-3200-3
== Дополнительные источники ==
* [http://www.wlug.org.nz/ipc(5) Linux System V IPC Main Page]
* [http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx Windows IPC]
== Примечания ==
{{примечания}}
{{IPC}}
[[Категория:Межпроцессное взаимодействие| ]]
|