Міжпроцесна взаємодія (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': кожна вкладка браузера — це окремий процес, що обмінюється повідомленнями з основним вікном. Це гарантує, що збій на одному сайті не призведе до закриття всього браузера.

📚 Джерела