Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sincronizzazione tra processi SEMAFORI (Tre soluzioni per regolare…
Sincronizzazione tra processi SEMAFORI
PROCESSI INTERAGENTI
POSSONO VERIFICARSI SITUAZIONE DI INTERFERENZA
COMPETIZIONE
COOPERAZIONE
Richiede un'attenta gestione della
sezione critica
SEZIONE CRITICA:
frammento di programma che utilizza la risorsa R che deve essere gestita in mutua esclusione
La sezione critica deve essere gestita in modo che
Tre soluzioni per regolare l'accesso alla regione critica
SPIN LOCK
Ad ogni risorsa è associata una variabile X che può assumere solo due valori: 1 (libera) e 0 (occupata). Utilizzo di primitive Lock(x) e Unlock(x)
Problema dell'indivisibilità
per evitare problemi bisogna rendere indivisibile l'esecuzione della lock(x)
MONITOR
SEMAFORI DI DIJKSTRA
Accesso alla risorsa mediante code, se la risorsa è occupata il processo che fa il test (primitiva P(S) ) viene posto in coda, Il processo che libera la risorsa esegue V(S) che modifica il valore del semaforo e riattiva il primo processo in coda
Esempio della linea ferroviaria