Межпроцессное взаимодействие (IPC) в ОС

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

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

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

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

Подходы к межпроцессному взаимодействию

Вот несколько важных методов межпроцессного взаимодействия:

Подходы к межпроцессному взаимодействию
Подходы к межпроцессному общению

Производство труб

Труба широко используется для связи между двумя связанными процессами. Это полудуплексный метод, поэтому первый процесс взаимодействует со вторым процессом. Однако для достижения полнодуплексного режима необходим другой канал.

Передача сообщений

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

Механизм IPC обеспечивает две операции:

  • Отправить (сообщение) - размер сообщения фиксированный или переменный.
  • Получено (сообщение)

Очереди сообщений

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

Прямая связь

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

Косвенное общение

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

Общая память

Общая память — это память, совместно используемая двумя или более процессами, созданная с использованием общей памяти между всеми процессами. Этот тип памяти требует защиты друг от друга путем синхронизации доступа ко всем процессам.

FIFO

Связь между двумя несвязанными процессами. Это полнодуплексный метод, что означает, что первый процесс может взаимодействовать со вторым процессом, но может произойти и обратное.

Почему МПК?

Вот причины использования протокола межпроцессного взаимодействия для обмена информацией:

  • Это помогает ускорить модульность
  • вычислительный
  • Разделение привилегий
  • Удобство
  • Помогает операционным системам взаимодействовать друг с другом и синхронизировать свои действия.

Термины, используемые в IPC

Ниже приведены несколько важных терминов, используемых в IPC:

Semaphores: Семафор – это сигнальный механизм. Этот метод ОС либо разрешает, либо запрещает доступ к ресурсу, что зависит от того, как он настроен.

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

Предложение для чтения: - Что такое Semaphore? Двоичные числа, типы подсчета с примером

Что такое FIFOS и чем отличается от FIFOS

Как ФИФОС В отличие от ФИФОС
Это следует методу FIFO. Метод для извлечения конкретных срочных сообщений до того, как они попадут на передний план
FIFO существует независимо от процессов отправки и получения. Всегда готов, поэтому не нужно открывать или закрывать.
Позволяет передавать данные между несвязанными процессами. Никаких проблем с синхронизацией между открытием и закрытием не возникает.

Резюме

  • Определение: Межпроцессное взаимодействие используется для обмена данными между несколькими потоками в одном или нескольких процессах или программах.
  • Труба широко используется для связи между двумя связанными процессами.
  • Передача сообщений — это механизм взаимодействия и синхронизации процесса.
  • Очередь сообщений — это связанный список сообщений, хранящихся в ядре.
  • Прямой процесс — это тип процесса межпроцессного взаимодействия, который должен явно называть друг друга.
  • Косвенная связь устанавливается только тогда, когда процессы используют общий почтовый ящик, каждая пара процессов использует несколько каналов связи.
  • Общая память — это память, совместно используемая двумя или более процессами, созданная с использованием общей памяти между всеми процессами.
  • Метод межпроцессного взаимодействия помогает ускорить модульность.
  • Семафор – это сигнальный механизм.
  • Signaling — это метод взаимодействия между несколькими процессами посредством сигнализации.
  • Подобно FIFO следует методу FIFO, тогда как в отличие от FIFO используется метод для извлечения определенных срочных сообщений до того, как они достигнут начала.