Comunicarea între procese (IPC) în sistemul de operare
Ce este comunicarea între procese?
Comunicare între procese (IPC) este folosit pentru schimbul de date între mai multe fire î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ă a IPC este comunicarea între procese.
Este un set de interfețe de programare care permit unui programator să coordoneze activitățile dintre diferite procese de program care pot rula simultan într-un sistem de operare. Acest lucru permite unui anumit program să gestioneze mai multe solicitări ale utilizatorilor în același timp.
Deoarece fiecare cerere de utilizator poate duce la mai multe procese care rulează în sistemul de operare, procesul poate necesita comunicarea între ele. Fiecare abordare a protocolului IPC are propriul avantaj și limitare, așa că nu este neobișnuit ca un singur program să folosească toate metodele IPC.
Abordări pentru comunicarea între procese
Iată câteva metode importante pentru comunicarea între procese:
Tevi
Pipe este utilizat pe scară largă pentru comunicarea între două procese conexe. Aceasta este o metodă semi-duplex, astfel încât primul proces comunică cu al doilea proces. Cu toate acestea, pentru a obține un full-duplex, este nevoie de o altă țeavă.
Trimiterea mesajului
Este un mecanism pentru ca un proces să comunice și să se sincronizeze. Folosind transmiterea mesajelor, procesul comunică unul cu celălalt fără a recurge la variabile partajate.
Mecanismul IPC oferă două operațiuni:
- Trimiteți (mesaj) - dimensiunea mesajului este fixă sau variabilă
- Primit (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 proces de comunicare între procese, ar trebui să se numească unul pe celălalt în mod explicit. În această metodă, se stabilește o legătură între o pereche de procese de comunicare și între fiecare pereche există o singură legătură.
Comunicare indirectă
Comunicarea indirectă se stabilește ca doar atunci când procesele partajează o cutie poștală comună, fiecare pereche de procese care partajează mai multe legături de comunicare. O legătură poate comunica cu multe procese. Legătura poate fi bidirecțională sau unidirecțională.
Memorie partajată
Memoria partajată este o memorie partajată între două sau mai multe procese care sunt stabilite folosind memoria partajată între toate procesele. Acest tip de memorie trebuie protejat unul de celălalt prin sincronizarea accesului la toate procesele.
FIFO
Comunicarea între două procese care nu au legătură. Este o metodă full-duplex, ceea ce înseamnă că primul proces poate comunica cu al doilea proces și se poate întâmpla și invers.
De ce IPC?
Iată motivele utilizării protocolului de comunicare între procese pentru partajarea informațiilor:
- Ajută la accelerarea modularității
- computațională
- Separarea de privilegii
- confort
- Ajută sistemul de operare să comunice între ele ș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 o tehnică a mecanismului de semnalizare. Această metodă de SO permite sau interzice accesul la resursă, care depinde de modul în care este configurată.
Signals: Este o metodă de comunicare între mai multe procese prin semnalizare. Procesul sursă va trimite un semnal care este recunoscut după număr, iar procesul de destinație se va ocupa de el.
Sugestie de lectură: - Ce Este Semaphore? Binar, numărare tipuri cu exemplu
Ce este Ca FIFOS și Spre deosebire de FIFOS
Ca FIFOS | Spre deosebire de FIFOS |
---|---|
Urmează metoda FIFO | Metodă de a trage anumite mesaje urgente înainte ca acestea să ajungă în față |
FIFO există independent atât de procesele de expediere, cât și de cele de primire. | Întotdeauna gata, deci nu este nevoie să deschideți sau să închideți. |
Permite transferul de date între procese care nu au legătură. | Nu am probleme de sincronizare între deschidere și închidere. |
Rezumat
- Definiție: Comunicarea între procese este utilizată pentru schimbul de date între mai multe fire într-unul sau mai multe procese sau programe.
- Pipe este utilizat pe scară largă pentru comunicarea între două procese conexe.
- Transmiterea mesajelor este un mecanism pentru ca un proces să comunice și să se sincronizeze.
- O coadă de mesaje este o listă legată de mesaje stocate în nucleu
- Procesul direct este un tip de proces de comunicare între procese, ar trebui să se numească unul pe celălalt în mod explicit.
- Comunicarea indirectă se stabilește ca doar atunci când procesele partajează o cutie poștală comună, fiecare pereche de procese care partajează mai multe legături de comunicare.
- Memoria partajată este o memorie partajată între două sau mai multe procese care sunt stabilite folosind memoria partajată între toate procesele.
- Metoda de comunicare între procese ajută la accelerarea modularității.
- Un semafor este o tehnică a mecanismului de semnalizare.
- Signaling este o metodă de comunicare între mai multe procese prin semnalizare.
- La fel ca FIFO urmează metoda FIFO, în timp ce, spre deosebire de FIFO, folosește metoda pentru a trage anumite mesaje urgente înainte ca acestea să ajungă în față.