828 B
828 B
ES 3
Problema
- N processi, loop infinito di istruzioni divise in: sezione critica, sezione non critica.
- Correttezza di una soluzione (algoritmo di mutua esclusione) e' definita da:
- Rispetto della mutua esclusione
- Assenza di deadlock
- Assenza di starvation
- Le variabili usate dal protocollo di accesso siano usate solo da esso
- E' presente un processo nella sezione critica, inoltre se un processo inizia in SC alla fine terminera'.
- Non si richiede progresso di istruzioni non appartenenti alla SC (non analizzato).
Soluzione 3.2
Singola variabile turn
:
if (turn == 1)
P1 takes SC
else if (turn == 2)
P2 takes SC
Pertanto i due processi si bloccano in attesa che la variabile turn
gli assegni il turno, prima della SC, poi eseguono la SC e passano il turno settando turn
.