Межпроцессного взаимодействия - Inter-process communication

Вычислительная сетка система , которая соединяет множество персональных компьютеров через Интернет с помощью межпроцессной сети связи

В информатике , межпроцессного взаимодействия или межпроцессного взаимодействия ( IPC ) относится конкретно к механизмам операционная система обеспечивает , чтобы позволить процессам для управления общими данными. Обычно приложения могут использовать IPC, классифицируемые как клиенты и серверы , где клиент запрашивает данные, а сервер отвечает на запросы клиентов. Многие приложения являются одновременно клиентами и серверами, как это обычно бывает в распределенных вычислениях .

IPC очень важен для процесса проектирования микроядер и наноядер , которые сокращают количество функций, предоставляемых ядром. Эти функции затем достигаются путем связи с серверами через IPC, что приводит к значительному увеличению обмена данными по сравнению с обычным монолитным ядром. Интерфейсы IPC обычно включают в себя изменяемые аналитические структуры. Эти процессы обеспечивают совместимость между многовекторными протоколами, на которых основаны модели IPC.

Механизм IPC бывает синхронным или асинхронным. Примитивы синхронизации могут использоваться для обеспечения синхронного поведения с асинхронным механизмом IPC.

Подходы

Различные подходы к IPC были адаптированы к различным требованиям к программному обеспечению , таким как производительность , модульность и системные обстоятельства, такие как пропускная способность сети и задержка .

Метод Краткое описание Предоставляется ( операционными системами или другими средами)
Файл Запись, хранящаяся на диске, или запись, синтезированная по запросу файловым сервером, к которой могут получить доступ несколько процессов. Большинство операционных систем
Файл сообщений Уникальная форма IPC в конце 1960-х годов , который наиболее близко напоминает план 9 «s протокол 9P Дартмутская система разделения времени
Сигнал ; также Асинхронная системная ловушка Системное сообщение, отправляемое от одного процесса к другому, обычно не используется для передачи данных, а вместо этого используется для удаленного управления партнерским процессом. Большинство операционных систем
Разъем Данные, отправляемые через сетевой интерфейс в другой процесс на том же компьютере или на другой компьютер в сети. Потоково-ориентированные ( TCP ; данные, записываемые через сокет, требуют форматирования для сохранения границ сообщений) или, реже, ориентированные на сообщения ( UDP , SCTP ). Большинство операционных систем
Доменный сокет Unix Подобно интернет-сокету, но все коммуникации происходят внутри ядра. Сокеты домена используют файловую систему в качестве адресного пространства. Процессы ссылаются на сокет домена как на индексный дескриптор , и несколько процессов могут взаимодействовать с одним сокетом. Все операционные системы POSIX и Windows 10
Очередь сообщений Поток данных, подобный сокету, но обычно сохраняющий границы сообщения. Обычно реализуемые операционной системой, они позволяют нескольким процессам читать и записывать в очередь сообщений, не подключаясь друг к другу напрямую. Большинство операционных систем
Анонимная труба Однонаправленный канал данных со стандартным вводом и выводом . Данные, записанные в конец канала для записи, буферизуются операционной системой до тех пор, пока не будут прочитаны из конца канала для чтения. Двусторонняя связь между процессами может быть достигнута за счет использования двух каналов в противоположных «направлениях». Все системы POSIX , Windows
Именованная труба Канал, который рассматривается как напильник. Вместо использования стандартного ввода и вывода, как в случае с анонимным каналом, процессы записывают и читают из именованного канала, как если бы это был обычный файл. Все системы POSIX, Windows, AmigaOS 2.0+
Общая память Многим процессам предоставляется доступ к одному и тому же блоку памяти , который создает общий буфер для взаимодействия процессов друг с другом. Все системы POSIX, Windows
Передача сообщений Позволяет нескольким программам обмениваться данными с использованием очередей сообщений и / или каналов, не управляемых ОС. Обычно используется в моделях параллелизма. Используется в парадигмах LPC , RPC , RMI и MPI , Java RMI , CORBA , COM , DDS , MSMQ , MailSlots , QNX и др.
Файл с отображением в память Файл сопоставлен с ОЗУ и может быть изменен путем непосредственного изменения адресов памяти вместо вывода в поток. Он имеет те же преимущества, что и стандартный файл . Все системы POSIX, Windows

Приложения

Интерфейсы удаленного вызова процедур

Стек связи платформы

Ниже перечислены системы обмена сообщениями и информационные системы, которые используют механизмы IPC, но сами не реализуют IPC:

Стек связи операционной системы

Ниже перечислены API, зависящие от платформы или языка программирования:

Распределенные объектные модели

Ниже перечислены API, специфичные для платформы или языка программирования, которые используют IPC, но сами не реализуют его:

Смотрите также

Рекомендации

Внешние ссылки