26.02.2015 Views

Operativni Sistemi - Univerzitet u Novom Sadu

Operativni Sistemi - Univerzitet u Novom Sadu

Operativni Sistemi - Univerzitet u Novom Sadu

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Do zaglavljivanja dolazimo i ako se procesi izvršavaju baš alternativno: izvršimo jednu naredbu<br />

prvog procesa, pa jednu naredbu drugog procesa, pa jednu naredbu prvog, itd.<br />

Dekkerov algoritam<br />

MODULE Dekker ;<br />

VAR p1WantsToEnter, p2WantsToEnter : BOOLEAN ;<br />

favouredProcess : ( first,second ) ;<br />

PROCEDURE Process1 ;<br />

BEGIN<br />

LOOP<br />

p1WantsToEnter := TRUE ;<br />

// P1 javlja da želi ući<br />

WHILE p2WantsToEnter DO<br />

// sve dok P2 želi ući<br />

IF favouredProcess = second THEN // ako P2 ima prednost<br />

p1WantsToEnter := FALSE ; // P1 odustaje<br />

WHILE favouredProcess = second DO END; // čeka prednost<br />

p1WantsToEnter := TRUE<br />

END<br />

END;<br />

KriticnaOblast1 ;<br />

favouredProcess := second ;<br />

p1WantsToEnter := FALSE ;<br />

OstaleStvari1<br />

END<br />

END Process1;<br />

// pa javi da želi ući<br />

// prednost dajemo P2-u<br />

// izlaz<br />

PROCEDURE Process2 ;<br />

BEGIN<br />

LOOP<br />

p2WantsToEnter := TRUE ;<br />

// P2 javlja da želi ući<br />

WHILE p1WantsToEnter DO<br />

// sve dok P1 želi ući<br />

IF favouredProcess = first THEN // ako P1 ima prednost<br />

p2WantsToEnter := FALSE ; // P2 odustaje<br />

WHILE favouredProcess = first DO END ; // čeka prednost<br />

p2WantsToEnter := TRUE<br />

END<br />

END;<br />

KriticnaOblast2 ;<br />

favouredProcess := first ;<br />

p2WantsToEnter := FALSE ;<br />

OstaleStvari2<br />

END<br />

END Process2;<br />

BEGIN<br />

p1WantsToEnter := FALSE ;<br />

p2WantsToEnter := FALSE ;<br />

favouredProcess := first ;<br />

PARBEGIN ;<br />

Process1 ;<br />

// pa javi da želi ući<br />

// prednost dajemo P1-u<br />

// izlaz<br />

27

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!