IPC

IPC (Inter-Process Communication) — межпроцессовое взаимодействие. Способы «общения» процессов в UNIX/Linux (термин IPC используется только для UNIX-подобных ОС) следующие:

* Полудуплексные каналы — это способ связи стандартного вывода одною процесса со стандартным вводом другого,

* Именованные каналы типа FIFO (First In First Out) — это канал, основанный на принципе очереди — «первый вошел, первый вышел». От обычного канала канал FIFO отличается следующим:

* Канал FIFO сохраняется н файловой системе в виде файла, поэтому. чайалы FIFO называются именованными.

* Все процессы, а не только

* «предок» и «потомки», могут работать с именованным каналом (как с обычным файлом). Канал FLFO остается в файловой системе даже после завершения обмена данными. При следующем использовании канала его не нужно заново создавать.

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

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

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

* Сетевые сокеты — двунаправленный канал для входящих и исходящих данных между двумя компьютерами сети, конечная точка соединения.

* Полнодуплексные каналы — каналы, позволяющие одновременный обмен данными в двух направлениях.