Comunicarea între procese (IPC) este un grup de tehnici utilizate în programarea computerelor care permit diferitelor componente de software să interacționeze. IPC este adesea facilitat de un sistem de operare pe computer, deși există metode alternative. Forma exactă a acestei comunicări între software poate varia, variind de la mesaje directe la un depozit central unde informațiile sunt stocate și preluate. Comunicarea între procese poate oferi beneficii, cum ar fi performanță mai mare, mai puține resurse computerizate consumate și securitate sporită.
În lumea programării, despre software se vorbește în termeni de proces, sau o singură bucată de cod, care poate fi rulată sau executată pe unitatea centrală de procesare (CPU) a unui computer. Multe aplicații folosesc de fapt mai mult de un proces, ceea ce poate crește performanța și stabilitatea. Un browser web cu mai multe pagini deschise poate folosi un proces separat pentru a încărca fiecare pagină; acest lucru izolează fiecare pagină de celelalte și împiedică o pagină web cu comportament neadecvat să blocheze întregul browser. În acest exemplu, fiecare proces responsabil pentru redarea unei pagini web comunică cu unul sau mai multe procese care se ocupă de alte aspecte ale browserului, cum ar fi componentele interfeței cu utilizatorul.
Majoritatea sistemelor de operare ale computerelor oferă mai multe mecanisme diferite pentru ca comunicarea între procese să aibă loc. Unele alte tehnologii software oferă, de asemenea, suport pentru IPC. Mai mult, IPC poate fi utilizat fie pe un singur computer, fie printr-o rețea. Aceste mecanisme pot varia în modul în care sunt implementate, dar cele mai multe pot fi grupate în câteva categorii în funcție de modul în care are loc comunicarea.
În unele cazuri, mesajele sunt schimbate direct între procese, adesea într-o manieră unidirecțională sau asincronă. Câteva metode IPC care funcționează în acest fel includ semnale, conducte și prize. Comunicarea între procese poate avea loc și prin utilizarea unei locații specifice unde datele pot fi accesate de mai multe procese. Un exemplu în acest sens este memoria partajată, o tehnică în care mai multe procese accesează aceeași porțiune a memoriei unui computer pentru a face schimb de informații. Metoda pe care o poate alege un programator depinde de rata și volumul schimbului de date necesar, precum și de alte considerații.
Există multe motive pentru care un programator ar putea dori să utilizeze comunicarea între procese în creațiile software. Împărțirea unei aplicații mari în multe procese mai mici care comunică prin IPC poate crește performanța, precum și securitatea. Un program poate începe și încheia procesele după cum este necesar, în loc ca toate componentele să ruleze simultan și să consume resurse hardware. Dacă o parte a unui program are nevoie de acces special la hardware-ul computerului sau la alt software care rulează, unul sau mai multe procese pot funcționa sub un cont de administrator sau „rădăcină”, în timp ce restul programului rulează ca un utilizator obișnuit.