Monitor di Brinch

Transcript

Monitor di Brinch
Monitor di Brinch-Hansen
MONITOR
Quando un PROCESSO vuole usare il monitor e nessun altro processo
sta usando il monitor (nessuno è in stato attivo) il processo da enter
passa in stato attivo (active).
Se invece c’è gia un processo che è in stato attivo (active), il nuovo
processo che vuole usare il monitor viene bloccato in stato di ME
(mutua esclusione).
Se un processo è in stato attivo (active) può capitare che il processo
termina (esempio exit) ed esce dal monitor (continue). In tal caso viene
liberato il primo processo che è bloccato in ME.
Un processo che è in stato active può anche fare una WAIT che lo
porta in stato di bloccato (transizione active-wait). Anche in questo
caso va in active un processo che era bloccato in ME.
1
Un processo che è in stato active può fare anche una signal sbloccando
in tal caso un processo bloccato in wait. Se nessun processo è nella
coda di wait viene prelevato il primo processo della coda ME. Il
processo che ha fatto la signal esce dal monitor.
Monitor di Hoare
La differenza con il monitor di Brinch Hansen è la presenza delo stato
URGENT.
Lo stato URGENT rappresenta uno stato in cui un processo finisce
quando ne sblocca un altro in attesa su una variabile di tipo condition.
Quando un PROCESSO vuole usare il monitor e nessun altro processo
sta usando il monitor (nessuno è in stato attivo) il processo da enter
passa in stato attivo (active).
Se invece c’è gia un processo che è in stato attivo (active), il nuovo
processo che vuole usare il monitor viene bloccato in stato di ME
(mutua esclusione).
2
Un processo che è in stato attivo è fa una signal non esce dal monitor
ma va in stato URGENT. Un processo in stato attivo che fa la EXIT
scatena il ripescaggio di un processo dallo stato di URGENT. Se
nessuno è in URGENT si controlla la coda ME.
Nel monitor di Brinch-Hansen ci può essere un solo processo attivo e
N processi bloccati.
Nel monitor di Hoare ci possono essere 1 processo in attivo, N processi
in URGENT e M processi in bloccato.
3