🔙 Torna all'indice

🧩 Comunicazione tra Processi

In questa lezione vengono analizzate le modalità di comunicazione e interazione tra processi in ambiente Windows, con esempi pratici e concetti fondamentali di memoria condivisa e scambio di messaggi.

I. Processi su Windows ⚙️

Nei sistemi operativi Windows, ogni processo è indipendente dagli altri: non può accedere direttamente alla memoria o alle risorse di un altro processo.

Questo isolamento garantisce sicurezza e stabilità, ma rende necessario l’uso di meccanismi di comunicazione interprocesso (IPC – Inter Process Communication) per consentire la cooperazione tra programmi diversi.

🔧 Esempio pratico: 📄 Apri file: ShellExecute.cpp


II. Memoria Condivisa 💾

La memoria condivisa è uno dei metodi più efficienti per far comunicare due processi. In questo modello, più processi possono accedere a una stessa area di memoria fisica, utilizzata per scambiare dati in modo diretto e veloce.

Caratteristiche principali

  • Altissime prestazioni rispetto ad altri metodi IPC.
  • Richiede sincronizzazione per evitare conflitti di accesso simultaneo.
  • Usata spesso per applicazioni in tempo reale o comunicazioni frequenti.

🔧 Esempio pratico: 📄 Apri file: MemoriaCondivisa.c


III. Scambio di Messaggi ✉️

Un altro metodo di comunicazione tra processi è lo scambio di messaggi. In questo approccio, i processi si inviano dati o comandi tramite messaggi strutturati, ma sorge un problema: come sapere quando un messaggio è stato inviato o ricevuto?

Per risolvere questo problema, si utilizzano modelli di sincronizzazione, che stabiliscono le regole della comunicazione.

Modelli di comunicazione

  • Modello “Telefono”: comunicazione diretta e simultanea tra i due processi (sincrona).
  • Modello “Lettera”: il mittente invia il messaggio e non attende risposta immediata (asincrona).
  • Modello “Cameriere”: un processo intermedio riceve e consegna i messaggi tra mittente e destinatario.
  • Modello “Portinaio”: un unico processo gestisce tutti i messaggi e coordina la comunicazione.

📘 In sintesi

  • I processi Windows sono isolati: servono meccanismi IPC.
  • La memoria condivisa è veloce ma richiede sincronizzazione.
  • Lo scambio di messaggi è più sicuro ma più lento.
  • I modelli (Telefono, Lettera, Cameriere, Portinaio) definiscono le modalità di sincronizzazione.