Учебники

Межпроцессное взаимодействие — Обзор

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

Общение может быть двух типов —

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

  • Между несвязанными процессами или двумя или более различными процессами.

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

Между несвязанными процессами или двумя или более различными процессами.

Ниже приведены некоторые важные термины, которые нам необходимо знать, прежде чем продолжить эту тему.

Трубы — связь между двумя взаимосвязанными процессами. Механизм является полудуплексным, что означает, что первый процесс связан со вторым процессом. Для достижения полного дуплекса, т. Е. Для взаимодействия второго процесса с первым процессом требуется другой канал.

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

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

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

Семафоры — семафоры предназначены для синхронизации доступа к нескольким процессам. Когда один процесс хочет получить доступ к памяти (для чтения или записи), он должен быть заблокирован (или защищен) и освобожден при удалении доступа. Это должно быть повторено всеми процессами для защиты данных.

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

Примечание. Почти все программы в этом руководстве основаны на системных вызовах в операционной системе Linux (выполняется в Ubuntu).