Межпроцессное взаимодействие (англ. inter-process communication, IPC) — обмен данными между потоками одного или разных процессов. Реализуется посредством механизмов, предоставляемых ядром ОС или процессом, использующим механизмы ОС и реализующим новые возможности IPC. Может осуществляться как на одном компьютере, так и между несколькими компьютерами сети.
Из механизмов, предоставляемых ОС и используемых для IPC, можно выделить:
Для оценки производительности различных механизмов IPC используют следующие параметры:
- пропускная способность (количество сообщений в единицу времени, которое ядро ОС или процесс способно обработать);
- задержки (время между отправкой сообщения одним потоком и его получением другим потоком).
IPC может называться терминами межпотоковое взаимодействие (англ. inter-thread communication) и межпрограммное взаимодействие (англ. inter-application communication).
Межпроцессное взаимодействие, наряду с механизмами адресации памяти, является основой для разграничения адресного пространства между процессами[1].
Таблица методов межпроцессного взаимодействия
Метод |
Реализуется ОС или процессом
|
Файл |
Все ОС.
|
Сигнал |
Большинство ОС; в некоторых ОС, например, в 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
Ссылки
|
---|
Методы | |
---|
Избранные протоколы и стандарты | |
---|