«« ( Date ) »» // «« ( Thread ) »» // drs - 2007

za asistenta

by Igor Stojkovic
petak, 04. maj 2007 - 21:38.

Radio sam iz Vezbi2007_V1.1.pdf 9. zadatak iz semafora (The H2O
problem) i primetio jedan slucaj koji se ne uklapa bas u resenje.

Recimo dodju 2 kiseonika. Prvi se zaglavi na wait(oxySem) a drugi na
wait(oxyMutex). Sada dodju 2 vodonika. Prvi se zaglavi na
wait(hydroSem2) a drugi sa signal(oxySem) dozvoli prvom kiseoniku da
zavrsi posao tj. pozove bond(i). Taj drugi vodonik stigne do
wait(hydroSem2) koji bi sada mogao da prodje, ali i pre nego sto
izvrsi taj poziv uleti 3. vodonik, koji na isti nacin stigne do te
naredbe kada i njemu uleti 4. vodonik (znam da je malo verovatno,
ali...). Taj 4. vodonik sa jos jednim signal(oxySem) dozvoli i drugom
kiseoniku da prodje (wait(oxyMutex) je prosao jos kad je prvi kiseonik
zavrsio posao) i da on izvrsi bond(i). Tek posle toga sva cetiri
vodonika prolaze wait(hydroSem2).

Ja koliko sam shvatio ne bi smelo da se desi da prodju dva kiseonika a
da nije ni jedan vodonik. Ispravite me ako gresim (bilo gde).

--
Pozdrav,
Igor Stojkovic mailto: stojkovic.igor@gmail.com