Comunicarea între procese (IPC) în sistemul de operare
⚡ Rezumat inteligent
Comunicarea interproces (IPC) este un set de mecanisme ale sistemului de operare care permit proceselor și firelor de execuție să facă schimb de date, să coordoneze activități și să sincronizeze acțiuni, indiferent dacă acestea rulează pe un singur computer sau pe mai multe mașini conectate printr-o rețea.

Ce este comunicarea între procese?
Comunicare între procese (IPC) este utilizat pentru schimbul de date între mai multe fire de execuție într-unul sau mai multe procese sau programe. Procesele pot rula pe un singur computer sau pe mai multe computere conectate printr-o rețea. Forma completă de IPC este comunicarea inter-procese.
Este un set de interfețe de programare care permit unui programator să coordoneze activități între diverse procese de program, care pot rula concomitent într-un sistem de operare. Acest lucru permite unui singur program să gestioneze mai multe solicitări ale utilizatorilor în același timp.
Întrucât fiecare solicitare a utilizatorului poate duce la rularea mai multor procese în sistemul de operare, este posibil ca aceste procese să fie nevoite să comunice între ele. Fiecare abordare IPC are propriile avantaje și limitări, așa că nu este neobișnuit ca un singur program să utilizeze mai multe dintre metodele IPC.
Abordări pentru comunicarea între procese
Iată câteva metode importante pentru comunicarea între procese:
Abordări de comunicare între procese
Tevi
O pipe este utilizată pe scară largă pentru comunicarea între două procese corelate. Aceasta este o metodă half-duplex, deci primul proces comunică cu al doilea proces. Cu toate acestea, pentru a realiza o comunicare full-duplex, este nevoie de o altă pipe.
Trimiterea mesajului
Este un mecanism prin care un proces poate comunica și sincroniza. Folosind transmiterea de mesaje, procesele comunică între ele fără a recurge la variabile partajate.
Mecanismul IPC oferă două operațiuni:
- Trimitere (mesaj) — dimensiunea mesajului poate fi fixă sau variabilă
- Primește (mesaj)
Cozi de mesaje
O coadă de mesaje este o listă legată de mesaje stocate în nucleu. Este identificat printr-un identificator de coadă de mesaje. Această metodă oferă comunicare între procese unice sau multiple cu capacitate full-duplex.
Comunicare directă
În acest tip de comunicare între procese, procesele trebuie să se denumească reciproc în mod explicit. În această metodă, se stabilește o legătură între o pereche de procese care comunică, iar între fiecare pereche există o singură legătură.
Comunicare indirectă
Comunicarea indirectă se stabilește numai atunci când procesele partajează o cutie poștală comună. Fiecare pereche de procese poate partaja mai multe legături de comunicare, iar o singură legătură poate comunica cu mai multe procese. Legătura poate fi bidirecțională sau unidirecțională.
Memorie partajată
Memoria partajată este o regiune de memorie partajată între două sau mai multe procese. Această memorie trebuie protejată de accesul concurent prin sincronizarea proceselor care o utilizează.
FIFO
FIFO este utilizat pentru comunicarea între două procese care nu au legătură între ele. Este o metodă full-duplex, ceea ce înseamnă că primul proces poate comunica cu al doilea proces, iar inversul se poate întâmpla.
De ce IPC?
Iată motivele pentru utilizarea protocolului de comunicare inter-proces pentru partajarea informațiilor:
- Ajută la accelerarea modularității.
- Accelerarea calculului.
- Separarea privilegiilor.
- Comoditate.
- Ajută procesele și sistemul de operare să comunice și să își sincronizeze acțiunile.
Termenii utilizați în IPC
Următorii sunt câțiva termeni importanți utilizați în IPC:
Semaphores: Un semafor este un mecanism de semnalizare. Această metodă a sistemului de operare fie permite, fie interzice accesul la o resursă, în funcție de modul în care este configurată.
Signals: Un semnal este o metodă de comunicare între mai multe procese prin intermediul semnalizării. Procesul sursă trimite un semnal, care este recunoscut printr-un număr, iar procesul destinație îl gestionează.
Sugestie de lectură: Ce Este Semaphore? Binar, numărare tipuri cu exemplu
Ce este Ca FIFOS și Spre deosebire de FIFOS
Următorul tabel compară FIFO-urile similare și FIFO-urile diferite:
| Ca FIFOS | Spre deosebire de FIFOS |
|---|---|
| Urmează metoda FIFO. | Folosește o metodă de a extrage mesaje urgente specifice înainte ca acestea să ajungă în prim-plan. |
| FIFO există independent atât de procesele de trimitere, cât și de cele de recepție. | Întotdeauna gata, deci nu este nevoie să îl deschideți sau să îl închideți. |
| Permite transferul de date între procese care nu au legătură. | Nu are probleme de sincronizare între deschidere și închidere. |

