Please enable JavaScript.
Coggle requires JavaScript to display documents.
Comunicazione e Sincronizzazione - Coggle Diagram
Comunicazione e Sincronizzazione
Comunicazione
Modelli di interazione concorrente
A memoria Comune
Trova impiego in :
Due o più
Processi
L
'allocatore
del processo
Svolge 3 importanti mansioni
fornisce i meccanismi ai processi che hanno il diritto di utilizzare tale risorsa per accedervi
implementa la strategia di allocazione definendo a quale processo e per quanto tempo assegnare quella medesima risorsa
Mantiene aggiornato lo stato di allocazione della risorsa
A scambio di messaggi
Vengono allocate:
Staticamente
Risorse Dedicate
non necessita alcun controllo da parte del programmatore
Competizione
avviene al momento dell'accesso della risorsa, garantendo così l'accesso esclusivo
Cooperazione
il gestore deve essere al corrente della cooperazione in modo da non azzerare il dato prodotto dal primo processo prima che venga consumato dal secondo processo
Dinamicamente
Risorse Condivise
il programmatore stabilisce le regole di visibilità e quindi quali processi possono operare sui dati comuni
Cooperazione
avviene utilizzando uno o più processi , uno infine che legge direttamente dalla risorsa condivisa
Competizione
avviene al momento della richiesta di utilizzo indirizzata al gestore che provvederà egli stesso a gestirla
Modello a scambio di messaggi
Modello client-server
Sincronizzazione
Timing constraint
i risultati devono essere uguali per ogni esecuzione
Determinismo
i risultati devono essere prodotti entro certi limiti temporali fissati
Errori nei programmi
errori dipendenti dal tempo
Indeterminabili
Latenti
Irriproducibili
Difficili da verificare
Starvation
Si verifica quando un processo rimane in attesa di un evento che non accadrà mai , quindi non porterà a termine il suo lavoro
Deadlock
Avviene quando due o più processi rimangono in attesa di eventi che non potranno mai verificarsi a causa di condizioni critiche nel processo e nella richiesta di risorse
errori nei vari sistemi
sistemi con singolo processore
problemi causati dal multitasking
sistemi multiprocessore
Soluzioni "possibili"
Condizione di Bernstein
i vincoli devono soddisfare due istruzioni per eseguire concorrentemente
Mutua esclusione
impone che le operazioni con le quali i processi accedono alle variabili comuni non si sovrappongano nel tempo
Sezione critica
la sequenza di istruzioni con la quale un processo accede e modifica un'insieme di variabili condivise