Учебники

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

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

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

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

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

В этом руководстве по операционной системе вы изучите:

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

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

трубы

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

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

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

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

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

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

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

Прямое общение:

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

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

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

Общая память:

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

FIFO:

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

Почему МПК?

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

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

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

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

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

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

Что такое FIFOS и чем FIFOS

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

Резюме:

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