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

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

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

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

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

Подходы

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

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

Приложения

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

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

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

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

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

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

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

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

использованная литература

  1. ^ а б «Межпроцессные коммуникации». Microsoft.
  2. ^ Камурати, П. (1993). «Межпроцессные коммуникации для проектирования системного уровня». Международный семинар по проектированию аппаратного и программного обеспечения.
  3. ^ "Взаимодействие Windows / WSL с AF_UNIX". Microsoft. Получено 25 мая 2018.
  4. ^ "Параллельное программирование - связь между процессами "

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