Re: za asistenta
Zaboravih zakljucak: dakle, a nikada ne oslobadja svoju desnu viljusku
dok jede, tako b ne moze da udje u situaciju koja vas je zbunila, tj
da uzme svoju levu viljusku, jer ceka na mutexfork[left], koji se
oslobadja tek kad je a zavrsio. Ok?
On 4/29/07, Milan Aleksic <milanaleksic@gmail.com> wrote:
--
Milan Aleksić
email: milan.aleksic@gmail.com
web: http://milanaleksic.co.sr
ICQ: 53177884
dok jede, tako b ne moze da udje u situaciju koja vas je zbunila, tj
da uzme svoju levu viljusku, jer ceka na mutexfork[left], koji se
oslobadja tek kad je a zavrsio. Ok?
On 4/29/07, Milan Aleksic <milanaleksic@gmail.com> wrote:
Da probam ja da odgovorim, pa ako ne uspem nadam se da ce asistent.
Ako je a poceo da jede, to znaci da je uspeo da uzme obe viljuske.
Posto je osigurano da se uvek uzima leva pa desna viljuska, ne moze
doci do loka. Tako, kada b ogladni moze da se desi jedna od tri
stvari:
1. a jede, sto znaci da je u fork false za a.-ovu desnu viljusku, pa b
ceka na mutexfork[b.left]
2. A ne jede, b krece na desnu viljusku, ali posto neki c desno od b
jede b mora da vrati levu vilj. i da resetuje mjuteks na toj vilj.
Ceka ponovo mjuteks za levu vilj itd
3. Ni a ni c ne jedu pa b lagano uzima obe viljuske i jede,
onemogucavajuci a i c da jedu dok on ne zavrsi, po prve dve tacke
nadam se da nisam odmogao :-), poz, Milan
On 4/29/07, Momir Djekic <zima.dolazi@gmail.com> wrote:
> Postovani,
> imam za vas jedno pitanje u vezi Dining Philosophers problem, resenja broj
4
> i 5 iz knjige Ikodinovic/Jovanovic.
> U pitanju su resenja koja omogucuju vracanje viljuske na stol ukoliko ona
> nije na njemu (realizovano pomocu fork[] koje dobia vrednosti true ako je
> viljuska na stolu i false ukoliko nije)
> Kod je:
> procedure Philosopher(i:0..N-1);
> var left, right, first, second:0..N-1;
> begin
> left:=i;
> right:=(i+1)modN;
> while(true) do begin
> think;
> wait(mutexfork[left]);
> fork[left]:=false;
> signal(mutexfork[left]);
> pause(random);
> wait(mutexfork[right]);
> if (fork[right]) then begin
> fork[right]:=false;
> signal(mutexfork[right]);
> eat;
> dalje vracamo viljusku...
>
>
> Pitanje je:
> Filozof B sedi desno od filozofa A. Filozof A uzima levu, uzima desnu i
> krece da jede. Filozof B pocinje sa radom i posto je mutexfork njegove
leve
> viljuske (a desne filozofa A) slobodan on dobija pravo pristupa,
proglasava
> da je viljuska uzeta sa stola... i sada i jedan i drugi imaju viljusku.
> Sta previdjamo?
>
> Zahvalni
> Momir i Mihailo
>
--
Milan Aleksić
email: milan.aleksic@gmail.com
web: http://milanaleksic.co.sr
ICQ: 53177884
--
Milan Aleksić
email: milan.aleksic@gmail.com
web: http://milanaleksic.co.sr
ICQ: 53177884
- References:
- za asistenta
- From: "Momir Djekic" <zima.dolazi@gmail.com>
- Re: za asistenta
- From: "Milan Aleksic" <milanaleksic@gmail.com>
- za asistenta
Previous by date: Re: za asistenta
Next by date: RE: za asistenta
Previous by thread: Re: za asistenta Next by thread: Re: za asistenta
Previous by thread: Re: za asistenta Next by thread: Re: za asistenta