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

Re: za asistenta

by Zaharije Radivojevic
petak, 04. maj 2007 - 12:43.


Postovani,

Resenje koje je radjeno na casu je samo jedno od mogucih resenja. Ono je
izabrano iz pedagoskih razloga da bi ste videli raznovrsne tehnike
resavanje problema sinhronizacije, ne uvek i najjednostavniju.
Resenja koje je dato u prilogu je jedno od resenja koje sam pominjao da
mogu da postoje. Komentare za prilozeno resenje mozete naci na
www.cs.washington.edu/homes/tom/cs162sp96/midterm.soln.ps

Pozdrav
Zaharije

On Fri, 4 May 2007, Sasa Vitorovic wrote:

> Postovanje,
>
> Molio bih asistenta ako bi ovo mogao da prokomentarise.
>
>
>
> Kako bi H20 problem mogao da se resi na drugi nacin? Pominjali ste neku
> barijeru, ali evo sta sam ja nasao na netu:
>
> void hReady() {
>
> hPresent->V();
>
> waitForWater->P();
>
> }
>
> void oReady() {
>
> mutex->P()
>
> hPresent->P();
>
> hPresent->P();
>
> mutex->V();
>
> makeWater();
>
> waitForWater->V();
>
> waitForWater->V();
>
> }
>
> Cini se da je ovo resenje jednostavnije od naseg iz materijala, i pritom
> nista maje funkcionalno.
> Ispravite me ako gresim.
>
> Ovo resenje koje si nasao na netu ima "kontra" logiku. Kiseonik ceka na dva vodonika. Vodonici cekaju na kiseonik. Ovo resenje je lakse za razumevanje, ali mi se cini da ne obezbedjuje da prva 2 vodonika koja dodju na barijeru i budu u molekulu, jer moze vise atoma H, cekati da dodje O.
>
>
> Pazi sad sledecu situaciju. U zadatku iz materijala dodju 2 kiseionika do wait(oxyMutex). Zatim dodju 2 vodonika i oba se zaustave posle signal(hydroMutex),a pre wait*hydroSem2). treci vodonik koji naidje moze da prodje kroz barijeru. Dakle ni ivde nije ocuvan redosled.
> Zato sam i postavio pitanje da vidim dal ovo komplikovano resenje ima nekih prednosti.