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.

Softverska realizacija kritične oblasti<br />

Pretpostavke i osobine softverskog rešenja :<br />

0. Unutar kritič ne oblasti istovremeno može se nalaziti najviše do jedan proces.<br />

1. Kritič na oblast se realizuje softverski bez pomoć i operativnog sistema.<br />

2. Prilikom razvoja programa ne uzimamo u obzir pretpostavke ni o brzini, ni o broju<br />

procesora.<br />

3. Ni jedan proces koji je izvan svoje kritič ne oblasti ne sme spreč iti druge procese da<br />

uđu u svoje kritič ne oblasti. Jedino proces unutar kritič ne oblasti može spreč iti ostale<br />

procese da uđu u k.o.<br />

4. Ni jedan proces ne sme neogranič eno dugo č ekati da uđe u svoju kritič nu oblast.<br />

Algoritam mora garantovati svakom procesu moguć nost ulaska u kritič nu oblast.<br />

Sledeć i primeri ilustruju probleme softverske realizacije kritič ne oblasti. Svi programi su dati<br />

pomoć u pseudo-koda:<br />

MODULE Version1 ;<br />

VAR processNumber : CARDINAL ;<br />

// teški proces<br />

// pomoćna promenljiva<br />

PROCEDURE Process1 ;<br />

// prvi laki proces<br />

BEGIN<br />

LOOP<br />

WHILE processNumber = 2 DO END ; // čekamo dok je red na P2<br />

KriticnaOblast1 ;<br />

processNumber := 2 ;<br />

OstaleStvari1<br />

END<br />

END Process1 ;<br />

PROCEDURE Process2 ;<br />

// drugi laki proces<br />

BEGIN<br />

LOOP<br />

WHILE processNumber = 1 DO END ; // čekamo dok je red na P1<br />

KriticnaOblast2 ;<br />

processNumber := 1 ;<br />

OstaleStvari2<br />

END<br />

END Process2 ;<br />

BEGIN<br />

processNumber := 1 ;<br />

PARBEGIN ;<br />

Process1 ;<br />

Process2 ;<br />

PAREND<br />

END Version1.<br />

23

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

Saved successfully!

Ooh no, something went wrong!