Обмен данными между процессами и потоками
Для взаимодействия разных процессов или потоков разных процессов используются:
конвейеры (pipes)
именованные конвейеры (named pipes)
очереди сообщений (message queues)
разделяемая память (shared memory)
Конвейеры - это буфер в ОЗУ, который поддерживает очередь байт (FIFO). ОС располагает двумя системными вызовами для записи и чтения. Ограничение: все процессы должны иметь общего родителя, создавшего конвейер
Именованные конвейеры - разновидность обычного конвейера. Системный вызов создания такого конвейера, записывает присвоенное имя в каталог.
Очереди сообщений - механизм похож на механизм конвейеров, но позволяет обмениваться не байтами, а сообщениями. Каждая очередь имеет уникальное имя. В Unix используются три системных вызова: msgget, msgsnd, msgrsv
Разделяемая память – сегмент физической памяти, общий в виртуальных адресных пространствах двух и более процессов.