Межпроцессное взаимодействие (, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети.
Из механизмов, предоставляемых ОС и используемых для IPC, можно выделить: механизмы обмена сообщениями; механизмы синхронизации; механизмы разделения памяти; механизмы удалённых вызовов (RPC).
Для оценки производительности различных механизмов IPC используют следующие параметры: пропускная способность (количество сообщений в единицу времени, которое ядро ОС или процесс способно обработать); задержки (время между отправкой сообщения одним потоком и его получением другим потоком).
IPC может называться терминами межпотоковое взаимодействие () и межпрограммное взаимодействие ().
Межпроцессное взаимодействие, наряду с механизмами адресации памяти, является основой для разграничения адресного пространства между процессамиЙохен Лидтке (). On µ-Kernel construction // Proc. 15th ACM Symposium on operating system principles (SOSP). Декабрь 1995.
Таблица методов межпроцессного взаимодействия Метод Реализуется ОС или процессом Все ОС. Сигнал Большинство ОС; в некоторых ОС, например, в Windows, сигналы доступны только в библиотеках, реализующих стандартную библиотеку языка Си, и не могут использоваться для IPC. Сокет Большинство ОС. Канал Все ОС, совместимые со стандартом POSIX. Именованный канал Все ОС, совместимые со стандартом POSIX.Неименованный каналВсе ОС, совместимые со стандартом POSIX. Семафор Все ОС, совместимые со стандартом POSIX. Разделяемая память Все ОС, совместимые со стандартом POSIX. Обмен сообщениями (без разделения) Используется в парадигме MPI, Java RMI, CORBA и других. Проецируемый в память файл (mmap) Все ОС, совместимые со стандартом POSIX. При использовании временного файла возможно возникновение гонки данных. ОС Windows также предоставляет этот механизм, но посредством API, отличающегося от API, описанного в стандарте POSIX. Очередь сообщений (Message queue) Большинство ОС. Почтовый ящик Некоторые ОС.
См. также Сигналы межпроцессного взаимодействия
Примечания
Литература 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
Ссылки Linux System V IPC Main Page Windows IPC