Operativni Sistemi - Univerzitet u Novom Sadu
Operativni Sistemi - Univerzitet u Novom Sadu
Operativni Sistemi - Univerzitet u Novom Sadu
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
MODULE Version4 ;<br />
VAR p1WantsToEnter, p2WantsToEnter : BOOLEAN ;<br />
PROCEDURE Process1 ;<br />
BEGIN<br />
LOOP<br />
p1WantsToEnter := TRUE ;<br />
WHILE p2WantsToEnter DO<br />
p1WantsToEnter := FALSE ;<br />
DELAY ( maliInterval1 ) ;<br />
p1WantsToEnter := TRUE<br />
END;<br />
KriticnaOblast1 ;<br />
p1WantsToEnter := FALSE ;<br />
OstaleStvari1<br />
END<br />
END Process1;<br />
PROCEDURE Process2 ;<br />
BEGIN<br />
LOOP<br />
p2WantsToEnter := TRUE ;<br />
WHILE p1WantsToEnter DO<br />
p2WantsToEnter := FALSE ;<br />
DELAY ( maliInterval2 ) ;<br />
p2WantsToEnter := TRUE<br />
END;<br />
KriticnaOblast2 ;<br />
p2WantsToEnter := FALSE ;<br />
OstaleStvari2<br />
END<br />
END Process2;<br />
// javimo da P1 želi ući<br />
// sve dok P2 želi ući<br />
// odustajemo od toga da P1 uđe<br />
// čekamo malo,da to P2 primeti<br />
// javimo da P1 želi ući<br />
// izlazimo<br />
// javimo da P2 želi ući<br />
// sve dok P1 želi ući<br />
// odustajemo od toga da P2 uđe<br />
// čekamo malo,da to P1 primeti<br />
// javimo da P2 želi ući<br />
// izlazimo<br />
BEGIN<br />
p1WantsToEnter := FALSE ;<br />
p2WantsToEnter := FALSE ;<br />
PARBEGIN ;<br />
Process1 ;<br />
Process2 ;<br />
PAREND<br />
END Version4.<br />
Analiza: ova verzija zamalo da radi, ali postoji moguć nost greške. Pp. da se procesi izvršavaju<br />
paralelno: Process1 stavlja p1WantsToEnter:=TRUE, Process2 stavlja<br />
p2WantsToEnter:=TRUE, zatim oba procesa uđu u WHILE petlju, oba procesa za neko vreme<br />
odustaju od ulaska u k.o. Process1 č eka u trajanju maliInterval1 a Process2 u trajanju maliInterval2.<br />
Neka generatori sluč ajnih brojeva generišu iste vrednosti, tj neka je maliInterval1=maliInterval2, tada ć e<br />
ponovo biti p1WantsToEnter:=TRUE i p2WantsToEnter:=TRUE i sve poč injemo iz poč etka.<br />
Znač i, mada je mala verovatnoć a da oba generatora sluč ajnih brojeva izgenerišu isti niz vrednosti, postoji<br />
moguć nost da ovaj algoritam ne radi i da dođe do zaglavljivanja (dead lock) – a to može dovesti do vrlo<br />
ozbiljnih grešaka npr. ako se algoritam koristi za upravljanje nuklearnom elektranom, saobrać ajem itd.<br />
26