Межпроцессорное взаимодействие
Межпроцессное взаимодействие (англ. Inter-Process Communication, IPC) — набор способов обмена данными между множеством потоков в одном или более процессах.
Процессы могут быть запущены на одном или более компьютерах, связанных между собой сетью. IPC-способы делятся на методы обмена сообщениями, синхронизации, разделяемой памятью и удалённых вызовов (RPC).
Методы IPC зависят от пропускной способности и задержки взаимодействия между потоками и типа передаваемых данных.
Проблемы межпроцессного взаимодействия Проблема разбивается на три пункта: n обмен информацией между процессами, n недопущение конфликтных ситуаций, n согласование действий процессов. Последние две проблемы можно объединить в одну и назвать ее «Синхронизация» .
Обмен информацией между процессами Средства обмена информацией можно разделить на три категории: Сигнальные. Передается минимальное количество информации – один бит, "да" или "нет".
Канальные. «Общение» процессов происходит через линии связи, предоставленные операционной системой, и напоминает общение людей по телефону.
Разделяемая память. Два или более процессов могут совместно использовать некоторую область адресного пространства.
Сигналы Сигнал может быть отправлен процессу операционной системой или другим процессом. Операционная система использует сигналы для доставки процессу уведомлений об ошибках и неправильном поведении.
Каналы Канал — поток данных между двумя или несколькими процессами, имеющий интерфейс, аналогичный чтению или записи в файл. Каналы бывают одно- и двунаправленными.
Разделяемая память Это специальный механизм, с помощью которого средствами операционной системы два процесса могут обращаться к общему участку физической памяти — каждый через свое адресное пространство.
Механизмы межпроцессного взаимодействия n n n Критические области Семафоры Мьютексы Мониторы Передача сообщений Барьеры