next up previous contents index return to home!
Next: I segnali Up: Programmazione concorrente su sistemi Previous: Esercizi   Indice   Indice analitico

Sincronizzazione fra processi

Abbiamo visto come creare e terminare processi, come caricare il corpo e i dati di un processo da un'immagine su disco e come sincronizzare un processo con la terminazione dei suoi figli recuperando i valori da essi ritornati. In generale, i processi che compongono un programma concorrente devono però sincronizzarsi e comunicare tra loro in maniera non banale. Inoltre, a volte il kernel deve comunicare a un processo che una certa condizione (eccezionale o no) è avvenuta.

In questo capitolo ci occuperemo di segnali, ovvero di comunicazioni asincrone che segnalano una certa condizione. I segnali possono essere utilizzati sia per comunicare condizioni di errore o eccezioni, sia per sincronizzare due processi fra loro.

Quindi, ci occuperemo della sincronizzazione con passaggio di dati: se un processo vuole passare una certa quantità di dati consistente a un altro processo, i segnali non bastano più. Quindi presenteremo le pipe, un meccanismo di kernel che permette la comunicazione fra due processi correlati da una relazione padre figlio. Infine ci occuperemo delle pipe con nome, che servono per la comunicazione fra processi che non hanno relazioni di parentela. Infine, faremo un accenno alle primitive per la comunicazione tramite memoria comune.



Subsections
next up previous contents index
Next: I segnali Up: Programmazione concorrente su sistemi Previous: Esercizi   Indice   Indice analitico
Giuseppe Lipari 2002-10-27