Ciao,
qualcuno sa spiegarmi questa soluzione?
Descrivere uno schema di n produttori e m consuatori su buffer finito utilizzando una qualunque primitivia di sync a scelta
GRAZIE
![]()
Ciao,
qualcuno sa spiegarmi questa soluzione?
Descrivere uno schema di n produttori e m consuatori su buffer finito utilizzando una qualunque primitivia di sync a scelta
GRAZIE
![]()
Da quello che mi ricordo dell'insegnamento di Sistemi Operativi all'uni , il problema potrebbe essere risolto in questi termini:
x :variabile di tipo messaggio
buffer :array circolare di k messaggi
noempty, nofull : variabili semaforiche che disciplinano l'accesso al buffer
in,out :indici di scrittura e lettura
size :variabile che tiene conto della quantità di buffer usato
wait() e signal()rimitive di sincronizzazione
In un ipotetico linguaggio C-Pascal like
Saluticodice:in=out=size=0; procedure produci(x); if size=k then wait(nofull); buffer[in]=x; in=(in+1)mod k size++; signal(noempty); end; procedure consuma(x); if size=0 then wait(noempty); x=buffer[out]; out=(out+1)mod k size--; signal(nofull) end;![]()
grazie per l'help
ciao![]()