UniTO/anno2/YearI/SecondSem/VPC/labs/analisi/es3/README.md

27 lines
828 B
Markdown
Raw Normal View History

2018-11-22 13:09:11 +01:00
# 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:
1. Rispetto della mutua esclusione
2. Assenza di deadlock
3. 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`.