
Следует быть аккуратным при определении живучести объекта IPC, поскольку она не всегда очевидна. Например, данные в канале (pipe) обрабатываются ядром, но живучесть каналов определяется процессами, а не ядром, потому что после того, как последний процесс, которым канал был открыт на чтение, закроет его, ядро сбросит все данные и удалит канал. Аналогично, хотя каналы FIFO и обладают именами в файловой системе, живучесть их также определяется процессами, поскольку все данные в таком канале сбрасываются после того, как последний процесс, в котором он был открыт, закроет его.
В табл. 1.1 сведена информация о живучести перечисленных ранее объектов IPC.
Таблица 1.1. Живучесть различных типов объектов IPC
| Тип IPC | Живучесть определяет |
|---|---|
| Программный канал (pipe) | Процесс |
| Именованный канал (FIFO) | Процесс |
| Взаимное исключение Posix (mutex) | Процесс |
| Условная переменная Posix (condition variable) | Процесс |
| Блокировка чтения-записи Posix (lock) | Процесс |
| Блокировка записи fcntl |