Міжпроцесна взаємодія (IPC / Inter-Process Communication)
IPC — це механізми, які дозволяють різним програмам у системі обмінюватися даними та координувати дії.
Mechanisms: 1. Pipes (Anonymous/Named). 2. Message Queues. 3. Shared Memory. 4. Semaphores. 5. Sockets. 6. RPC.
graph LR
Center["Міжпроцесна взаємодія (IPC / Inter-Process Communication)"]:::main
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простими словами
Це як командна робота. Один учень малює картинку, другий її розфарбовує, а третій вішає на стіну. IPC — це те, як вони передають малюнок один одному, щоб в кінці вийшла гарна стіна з плакатами.
🤓 Expert Deep Dive
На технічному рівні ми розрізняємо засобі IPC за 'Локальністю' та 'Синхронністю'. 'Анонімні канали' (Pipes) — це найпростіший спосіб передати дані від батьківського процесу до дочірнього. 'Сокети' (Sockets) натомість дозволяють спілкуватися процесам навіть на різних континентах. Однією з головних проблем IPC є 'Взаємне блокування' (Deadlock), коли два процеси чекають один на одного і система 'завмирає'. Сучасні системи, такі як Chrome, використовують IPC для архітектури 'Multi-process': кожна вкладка браузера — це окремий процес, що обмінюється повідомленнями з основним вікном. Це гарантує, що збій на одному сайті не призведе до закриття всього браузера.