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

Что такое межпроцессное взаимодействие?
Межпроцессное взаимодействие (IPC) Межпроцессное взаимодействие (IPC) используется для обмена данными между несколькими потоками в одном или нескольких процессах или программах. Процессы могут выполняться на одном компьютере или на нескольких компьютерах, соединенных сетью. Полное название IPC — межпроцессное взаимодействие.
Это набор программных интерфейсов, позволяющих программисту координировать действия между различными программными процессами, которые могут выполняться одновременно в операционной системе. Это позволяет одной программе обрабатывать множество запросов пользователей одновременно.
Поскольку каждый запрос пользователя может приводить к запуску множества процессов в операционной системе, этим процессам может потребоваться взаимодействовать друг с другом. Каждый подход к межпроцессному взаимодействию имеет свои преимущества и ограничения, поэтому нередко одна программа использует несколько методов межпроцессного взаимодействия.
Подходы к межпроцессному взаимодействию
Вот несколько важных методов межпроцессного взаимодействия:
Подходы к межпроцессному общению
Производство труб
Канал широко используется для связи между двумя связанными процессами. Это полудуплексный метод, при котором первый процесс взаимодействует со вторым. Однако для достижения полнодуплексной связи необходим еще один канал.
Передача сообщений
Это механизм, позволяющий процессам взаимодействовать и синхронизироваться. Используя передачу сообщений, процессы обмениваются информацией друг с другом, не прибегая к использованию общих переменных.
Механизм IPC обеспечивает две операции:
- Отправка (сообщения) — размер сообщения может быть фиксированным или переменным.
- Получить (сообщение)
Очереди сообщений
Очередь сообщений представляет собой связанный список сообщений, хранящихся в ядро. Оно идентифицируется идентификатором очереди сообщений. Этот метод обеспечивает связь между одним или несколькими процессами в полнодуплексном режиме.
Прямая связь
В этом типе межпроцессного взаимодействия процессы должны явно указывать друг другу имена. При таком методе устанавливается связь между одной парой взаимодействующих процессов, и между каждой парой существует только одна связь.
Косвенное общение
Непрямая связь устанавливается только тогда, когда процессы используют общий почтовый ящик. Каждая пара процессов может использовать несколько каналов связи, и один канал может взаимодействовать со многими процессами. Канал может быть двунаправленным или однонаправленным.
Общая память
Разделяемая память — это область памяти, используемая двумя или более процессами. Эта память должна быть защищена от одновременного доступа путем синхронизации процессов, которые её используют.
FIFO
FIFO используется для связи между двумя несвязанными процессами. Это полнодуплексный метод, что означает, что первый процесс может взаимодействовать со вторым процессом, и наоборот.
Почему МПК?
Вот причины использования протокола межпроцессного взаимодействия для обмена информацией:
- Это помогает ускорить процесс модульного строительства.
- Ускорение вычислений.
- Разделение привилегий.
- Удобство.
- Это помогает процессам и операционной системе взаимодействовать и синхронизировать свои действия.
Термины, используемые в IPC
Ниже приведены несколько важных терминов, используемых в IPC:
Semaphores: Семафор — это механизм сигнализации. Этот метод операционной системы либо разрешает, либо запрещает доступ к ресурсу в зависимости от его настроек.
Signals: Сигнал — это метод связи между несколькими процессами посредством сигнализации. Исходный процесс отправляет сигнал, который распознается числом, а целевой процесс обрабатывает его.
Чтение предложения: Что такое Semaphore? Двоичные числа, типы подсчета с примером
Что такое FIFOS и чем отличается от FIFOS
В следующей таблице сравниваются одинаковые и неодинаковые FIFO:
| Как ФИФОС | В отличие от ФИФОС |
|---|---|
| Используется метод FIFO (первым пришел — первым ушел). | Она использует метод, позволяющий извлекать определенные срочные сообщения до того, как они достигнут главного экрана. |
| Принцип FIFO существует независимо как от процесса отправки, так и от процесса получения. | Всегда готов к использованию, поэтому нет необходимости открывать или закрывать его. |
| Позволяет передавать данные между несвязанными процессами. | Отсутствуют проблемы с синхронизацией между открытием и закрытием. |

