Обмен данными между процессами и потоками

Для взаимодействия разных процессов или потоков разных процессов используются:

конвейеры (pipes)

именованные конвейеры (named pipes)

очереди сообщений (message queues)

разделяемая память (shared memory)

Конвейеры - это буфер в ОЗУ, который поддерживает очередь байт (FIFO). ОС располагает двумя системными вызовами для записи и чтения. Ограничение: все процессы должны иметь общего родителя, создавшего конвейер

Именованные конвейеры - разновидность обычного конвейера. Системный вызов создания такого конвейера, записывает присвоенное имя в каталог.

Очереди сообщений - механизм похож на механизм конвейеров, но позволяет обмениваться не байтами, а сообщениями. Каждая очередь имеет уникальное имя. В Unix используются три системных вызова: msgget, msgsnd, msgrsv

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