La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Processi e Thread Meccanismi di IPC (2) Problemi classici di IPC.

Presentazioni simili


Presentazione sul tema: "1 Processi e Thread Meccanismi di IPC (2) Problemi classici di IPC."— Transcript della presentazione:

1 1 Processi e Thread Meccanismi di IPC (2) Problemi classici di IPC

2 2 Monitor (1) Oggetti –Strutture dati + metodi per accedervi (procedure) Concurrent Pascal Mutua esclusione nell’esecuzione delle procedure Variabili di Condizione –manipolabili solo con wait() e signal() –non contano gli eventi –sono associate ad una coda di processi in attesa wait(X), X variabile di condizione –sospende sempre il processo che la invoca in attesa di una signal(X)

3 3 Monitor (2) signal(X) –sveglia uno dei processi in coda su X –se nessun processo è in attesa, va persa –deve essere eseguita solo come ultima istruzione prima di uscire dal monitor (il processo svegliato ha l’uso esclusivo del monitor) Il monitor è un costrutto linguistico !! –Il compilatore si occupa di generare codice opportuno per realizzare la sincronizzazione –L’implementazione si basa su meccanismi di IPC a più basso livello (es. semafori …) –Non può essere aggiunto a un linguaggio con una libreria di SC opportune!

4 4 Monitor (3) Schema tipico di un monitor (CPascal-like)

5 5 Monitor (4) Produttore/Consumatore

6 6 Monitor (5) Non ci sono problemi di interferenza!

7 7 Monitor (6) Java fornisce i monitor –thread user-level –ME nell’esecuzione dei metodi synchronized di una stessa classe –non ci sono variabili di condizione –wait(), notify() simili a sleep(), wakeup() –è possibile svegliare tutti i processi in attesa Vediamo di nuovo il problema del produttore e del consumatore

8 8

9 9 Soluzione per Produttore/Consumatore in Java (parte 2)


Scaricare ppt "1 Processi e Thread Meccanismi di IPC (2) Problemi classici di IPC."

Presentazioni simili


Annunci Google