Please enable JavaScript.
Coggle requires JavaScript to display documents.
LA SINCRONIZZAZIONE TRA PROCESSI - Coggle Diagram
LA SINCRONIZZAZIONE TRA PROCESSI
Programmazione concorrente
Correttezza temporale
Conciliare
l'affidabilità del software
all'esigenza di massimizzare
l'efficienza di elaborazione
;
Realizzazzione
Determinismo
: i risultati devono essere uguali per ogni esecuzione, indipendentemente dalla sequenza di schedulazione.
Timing-constraint
: i risultati devono essere prodotti entro certi limiti di tempi fissati (deadlines). (specifica dei sist. real time)
Errori dipendenti dal tempo
Caratteristiche
Latenti
: si presentano con sequenze rare;
Difficili da verificare e testare
;
Irriproducibilità
: gli errori si presentano solo con determinate sequenza;
Indeterminati
: il risultato dipende dalla sequenza seguita;
Sono degli errori che possono essere generati ad esempio a causa della schedulazione della CPU, un dato viene prodotto ma gli viene tolta la CPU prima che viene registrato (es.produttore consumatore).
Gli accessi a una risorsa devono avvenire in modo non divisibile, cioè che le operazioni che un processo deve effettuare sulla risorsa, per esmpio l'aggiornamento di un dato, non vengano interrotte neppure dallo scheduler ma si possa garantire l'accesso in mutua esclusione.
L'inisme delle op. che devono essere ininterrompilbili devono essere programmate come sezioni critiche, utilizzando meccanismi di sincronizzazione offerti dal linguaggop di programmazione.
Interleaving
Si presenta nei sistemi monoprocessore multiprogrammati e in questo caso i processi si alternano nel tempo ma con velocità taòi che sembra dare l'impressione di avere un multiprocessore. abbiamo un parallelismo virtuale.
Overlapping
Si presenta nei sistemi multiprocessore e in questo caso i processi vengono eseguiti simultaneamente su processori diversi. Abbiamo un parallelismo fisico.
Condizioni di Bernstein
Sono dei vincoli che devono essere soddisfatti per avere un esecuzione concorrente tra i processi.
Se 2 o più istruzioni soddisfano le condizioni il risultato è indipendente dalla particolare sequenza di esecuzione eseguita dai processori e sarà identico alla loro esecuzione seriale.
problemi di sincronizzazione
Deadlock
: situazione di blocco multiplo e ciclico o stallo dei thread
Starvation
: situazione di blocco individuale dei thread
Meccanismi di sincronizzazione
Safeness
Liveness