Spesso, i processi hanno bisogno di comunicare e collaborare tra di loro. La comunicazione tra processi (in inglese IPC, Inter-Process Communication) riguarda le tecniche e i meccanismi attraverso cui i processi di un sistema operativo, che possono essere eseguiti in parallelo o separatamente, scambiano informazioni tra loro.

Le principali tecniche di comunicazione tra processi sono:

  • Pipe: permettono la comunicazione unidirezionale tra processi, tipicamente tra un processo padre e i suoi processi figli, trasferendo dati in modo sequenziale.
  • Code di messaggi: consentono a piΓΉ processi di scambiarsi informazioni tramite messaggi strutturati, inviati a una coda condivisa; questa tecnica Γ¨ particolarmente adatta per la comunicazione asincrona.
  • Memoria condivisa: permette a piΓΉ processi di accedere a un’area di memoria comune per scambiare dati in modo molto rapido, anche se richiede un sistema di sincronizzazione per evitare conflitti di accesso.
  • Socket: utilizzati per la comunicazione tra processi su sistemi diversi (o anche sullo stesso sistema), sfruttano la rete per il trasferimento di dati e sono alla base della comunicazione in rete, sia locale che remota.
  • Chiamate di procedure remote (RPC): consentono a un processo di richiedere l’esecuzione di una funzione su un sistema remoto, come se fosse locale, semplificando la programmazione distribuita nascondendo i dettagli della comunicazione di rete.