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

Hабор способов обмена данными между множеством потоков в одном или более процессах. Процессы могут быть запущены на одном или более компьютерах, связанных между собой сетью. IPC-способы делятся на методы обмена сообщениями, синхронизации, разделяемой памяти и удаленных вызовов (RPC). Методы IPC зависят от пропускной способности и задержки взаимодействия между потоками и типа передаваемых данных.IPC также может упоминаться как межпотоковое взаимодействие (англ. inter-thread communication), межпоточное взаимодействие и межпрограммное взаимодействие (англ. inter-application communication).

IPC наряду с концепцией адресного пространства является основой для разграничения адресного пространства.

Реализации

Существует несколько API, которые могут использоваться для IPC. Вот несколько платформо-независимых API:

Ниже указана платформа или язык программирования указанных API:

Таблица методов IPC:

Метод Реализуется (операционной системой или другим окружением)
Файл Все операционные системы.
Сигнал Большинство операционных систем; некоторые системы, как например, Windows, только реализуют сигналы в библиотеке запуска Си, но не обеспечивают их полноценной поддержки для использования методов IPC.
Сокет Большинство операционных систем.
Канал Все системы, соответствующие POSIX.
Именованный канал Все системы, соответствующие POSIX.
Семафор Все системы, соответствующие POSIX.
Разделяемая память Все системы, соответствующие POSIX.
Обмен сообщениями
(без разделения)
Используется в парадигме MPI, JavaRMI, CORBA и других.
Проецируемый в память файл Все системы, соответствующие POSIX; несет риск появления состояния гонки в случае использования временного файла. Windows также поддерживает эту технологию, но использует API отличный от POSIX.
Очередь сообщений Большинство операционных систем.
Почтовый ящик Некоторые операционные системы.

Добавить комментарий