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

Из Википедии, бесплатной энциклопедии

Межпроцессное взаимодействие (англ. 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) Большинство ОС.
Почтовый ящик Некоторые ОС.

См. также[править | править код]

Примечания[править | править код]

Литература[править | править код]

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