gabmac2
20-02-2010, 21:49
Ho svolto questo esercizio su monitor e semafori e vorrei sapere un vostro giudizio
Una strada a senso alternato non permette il passaggio di auto,se non un senso per volta
SEMAFORI
rosse da sinistra a destra e blu viceversa
sem autorosse; sem autoblu; int turno =0;int max=5;
passa(){
if(autososse>autoblu){
turno=0;
for (i=0;i<MAX;i++){
wait(mutex)
autoblu++
autorosse--
---passa---
wait autorosse
signal autoblu
signal(mutex)
l' else è al contrario
MONITOR
condizione stradalibero
int nred, nblue, waitred, waitblue;
booleano turno
entra rossa
waitred := waitred+1;
while(nblue>0 or (waitblue>0 and turno))
do wait(stradalibero);
waitred := waitred-1;
nred := nred +1;
Come vi sembra ?
Grazie in anticipo
Una strada a senso alternato non permette il passaggio di auto,se non un senso per volta
SEMAFORI
rosse da sinistra a destra e blu viceversa
sem autorosse; sem autoblu; int turno =0;int max=5;
passa(){
if(autososse>autoblu){
turno=0;
for (i=0;i<MAX;i++){
wait(mutex)
autoblu++
autorosse--
---passa---
wait autorosse
signal autoblu
signal(mutex)
l' else è al contrario
MONITOR
condizione stradalibero
int nred, nblue, waitred, waitblue;
booleano turno
entra rossa
waitred := waitred+1;
while(nblue>0 or (waitblue>0 and turno))
do wait(stradalibero);
waitred := waitred-1;
nred := nred +1;
Come vi sembra ?
Grazie in anticipo