Lez3 Comunicazione

Scarica in formato pdf o txt
Scarica in formato pdf o txt
Sei sulla pagina 1di 5

Comunicazione tra processi

 processi indipendenti: due processi P1 e P2 sono indipendenti se l’esecuzione di P1 non è


influenzata da P2, e viceversa.
 processi interagenti: P1 e P2 sono interagenti se l’esecuzione di P1 è influenzata dall’esecuzione di
P2, e/o viceversa.

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:

 mantenere aggiornato lo stato di allocazione della risorsa;


 fornire, ai processi che hanno il diritto di utilizzare la risorsa, i meccanismi per accedervi, operare
su di essa e alla fine del suo utilizzo “liberarla” per gli altri processi;
 implementare la strategia di allocazione della risorsa definendo a quale processo e per quanto
tempo assegnare la risorsa.

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

Competizione (interazione prevedibile e indesiderata)


Competizione per l’uso di risorse comuni che non possono essere usate contemporaneamente, è necessario
garantire l’accesso esclusivo (mutua esclusione).

Cooperazione (interazione prevedibile e desiderata)


la cooperazione tra processi avviene utilizzando una risorsa condivisa
un processo (o più processi) scrivono un dato nella risorsa (produttori) e un altro processo (o più processi)
leggono successivamente dalla risorsa condivisa (consumatori)

Interferenza (interazione non prevedibile e non desiderata)


è dovuta ad una erronea soluzione dei problemi di competizione e di cooperazione.
Modello a scambio di messaggi
• Ogni processo può accedere esclusivamente alle risorse allocate nella propria memoria
locale
• Questa non può essere modificata direttamente dagli altri processi

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

Distinguiamo la comunicazione in:


• asimmetrica: il mittente nomina esplicitamente il destinatario ma questo non nomina
esplicitamente il mittente:
send(P, messaggio). invia un messaggio al processo P
receive(messaggio): riceve un messaggio

• simmetrica: entrambi si nominano in modo esplicito:


send(P, messaggio) invia un messaggio al processo P
receive(Q, messaggio) riceve un messaggio dal processo Q

Potrebbero piacerti anche