Lez3 Comunicazione
Lez3 Comunicazione
Lez3 Comunicazione
Modelli di interazione
modello a memoria comune (ambiente globale, global environment), usato su elaboratori monoprocessore
con multitasking;
modello a scambio di messaggi (ambiente locale, message passing), usato nei sistemi di elaborazione
distribuiti.
Modello a memoria comune
possono verificarsi problemi per l’accesso alla memoria
Il sistema operativo associa alla memoria (in genere ad ogni risorsa) un gestore di risorsa (o allocatore)
L’allocatore deve:
Per garantire la coerenza dei dati occorre definire opportuni meccanismi per la sincronizzazione dei processi
nell’accesso a dati condivisi (sezioni critiche)
Gli accessi alla memoria condivisa devono avvenire in modo non divisibile (la modifica di un dato non deve
essere interrotta) e occorre garantire l’accesso in mutua esclusione (in ogni istante, un solo processo può
accedere alla risorsa)
Interazione tra processi - Modello a memoria comune
I processi possono:
Competere
cooperare
Interferire
I processi comunicano senza far uso di variabili condivise, utilizzando due Primitive di
comunicazione:
send(messaggio)
receive(messaggio)
Modello a scambio di messaggi
Lo scambio di messaggi può essere sia bloccante che non bloccante
In caso di scambio di messaggi bloccante, la comunicazione è sincrona:
Il processo mittente si blocca nell’attesa che il processo ricevente riceva il messaggio
Il ricevente si blocca nell’attesa dell’arrivo di un messaggio
In caso di scambio di messaggi non bloccante la comunicazione è asincrona:
Il processo mittente invia il messaggio e riprende la propria esecuzione
Il ricevente non si blocca nell’attesa dell’arrivo di un messaggio