Sistemi Operativi

Comunicazione tra processi

I processi in esecuzione nel sistema operativo possono essere indipendenti o cooperanti. Un processo indipendente non può influire su altri processi del sistema, e non può subirne l’ influsso. D’ altra parte un processo è cooperante se influenza o può essere influenzato da altri processi in esecuzione. Ma come fanno due processi a scambiarsi le informazioni necessarie alla cooperazione? Il SO mette a disposizione dei meccanismi di Inter- Process Communication (IPC): opportune system call che permettono a due (o più) processi di scambiarsi dei messaggi o di usare la stessa area di memoria primaria (memoria condivisa). L’IPC fornisce due primitive di base:

Se i processi P e Q vogliono comunicare devono quindi inviare e ricevere messaggi tra loro, deve dunque esistere un canale di comunicazione. Ci sono diversi modi per realizzare un canale di comunicazione:

Lo scambio di messaggi può essere sincrono o asincrono, a seconda delle scelte implementative:

Nel caso della comunicazione asincrona i messaggi vengono accodati in code di priorità che possono essere limitate o illimitate a seconda della lunghezza n della coda.





















































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.