1 Scambio Messaggi (1) Primitive base –send(destination,&msg) –receive(source, &msg) Decine di varianti, nel nostro caso : –la receive blocca automaticamente se non ci sono messaggi –i messaggi spediti ma non ancora ricevuti sono bufferizzati dal SO Non richiedono accesso a supporti di memorizzazione comune Facili da realizzare come libreria di Scall Meno efficienti
2 Sol. Produttore/Consumatore con N messaggi
3 Processi e Thread Un insieme di problemi tipici di interazione programmati con i semafori
4 I filosofi a cena (1) I filosofi mangiano e pensano Per mangiare servono due forchette Ogni filosofo prende una forchetta per volta Come si può prevenire il deadlock Filosofi = processi, Forchette = risorse
5 I filosofi a cena (2) Una falsa soluzione al problema dei filosofi
6 I filosofi a cena (3) Una soluzione corretta al problema (parte 1)
7 Una soluzione corretta al problema (parte 2)