Please enable JavaScript.
Coggle requires JavaScript to display documents.
La sincronizzazione tra processi - Coggle Diagram
La sincronizzazione tra processi
Errori nei Programmi Concorrenti
Errori principali
Schedulazione: Interleaving casuale causato dalla velocità variabile dei processi.
Sincronizzazione: Mancato coordinamento per l'accesso a risorse condivise.
Caratteristiche degli errori
Irriproducibili, indeterminati, latenti.
Difficili da verificare tramite test standard.
Vincoli per la Correttezza Temporale
Determinismo: Risultati uguali per ogni esecuzione.
Timing constraint: Risultati entro i limiti temporali fissati.
Errori Specifici
Errore da Interleaving:
Sequenza casuale delle operazioni su risorse condivise.
Esempio: Aggiornamento di un magazzino (vendite/acquisti).
Soluzione: Istruzioni atomiche o mutua esclusione.
Errore da Interrompibilità
Interruzione di un processo che condivide memoria con un altro.
Esempio: Processo di scrittura interrotto da un processo di lettura.
Effetto: Sovrapposizione di dati non ancora prelevati.
Soluzione: Protezione delle operazioni critiche.
Condizioni di Bernstein
Dominio (domain): Variabili lette da una procedura.
Rango (range): Variabili modificate da una procedura.
Condizioni necessarie per evitare errori
Starvation e Deadlock
Starvation
Processo bloccato in attesa di un evento che non accadrà.
Causa: Risorsa occupata continuamente da un altro processo.
Deadlock
Blocco ciclico di due o più processi in attesa di risorse.