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.

1. polling: u određenim vremenskim intervalima glavni procesor prekida svoj rad i proveri da li<br />

neki kontroler ima neku poruku za njega, ako ima, obradi poruku i nastavlja sa radom<br />

2. prekidi (interrupt): glavni procesor radi svoj posao, i uređaji rade svoj posao. Ako uređaj<br />

završi svoj posao ili dođe do neke greške, uređaj o tome obaveštava glavni procesor zahtevom<br />

za prekid (interrupt request). Kada procesor dobije zahtev za prekid, prekida svoj rad,<br />

zapamti gde je stao, obradi prekid, pa nastavlja sa radom tamo gde je bio prekinut (ako prekid<br />

ne predstavlja neku fatalnu grešku, takvu da se rad ne može nastaviti).<br />

Primer: Mama kuva ruč ak a dete se igra. Ako je polling, mama svakih 10 sekundi proveri šta dete radi i ako nešto<br />

ne valja onda dotrč i da mu pomogne. Ako su interapti onda ga ne proverava. Ali, dete se poseč e i poč ne da plač e.<br />

To je interapt. Mama skine šerpe sa šporeta (prekine proces pravljenja ruč ka) zapamti gde je stala, locira dete<br />

(pogleda u tabelu), previje ga i poljubi (obradi prekid), vrati se u kuhinju, seti se gde je stala i nastavi sa kuvanjem.<br />

Ako se dete baš unakazilo, mama suspenduje proces pravljenja ruč ka i vodi dete na urgentno.<br />

Nedostaci polling strategije:<br />

1. uređaj mora č ekati na glavni procesor da bi predao svoju poruku (koja može biti npr. vrlo<br />

važna poruka o grešci)<br />

2. procesor prekida svoj rad u određenim vremenskim intervalima i kada nema nikakvih<br />

poruka<br />

Obrada prekida se izvršava po sledeć em algoritmu:<br />

- procesor radi svoj zadatak<br />

- stiže zahtev za prekid<br />

- sač uva se stanje trenutnog procesa<br />

- onemoguć avaju se dalji prekidi<br />

- u tabeli prekida (interrupt table - č uva adrese procedura za obradu svih moguć ih<br />

prekida) traži se adresa procedure za obradu prekida<br />

- izvršava se procedura za obradu prekida<br />

- omoguć avaju se dalji prekidi<br />

- nastavlja se rad na prekinutom procesu<br />

Vrste prekida:<br />

1. Hardverski prekidi – generišu se od strane hardvera, mogu biti:<br />

1. prekidi koji se mogu maskirati (maskable interrupt) – ove prekide<br />

procesor može ignorisati ako je dobio takvu naredbu (npr. pritisnuta je<br />

tipka na tastaturi)<br />

2. prekidi koji se ne mogu maskirati (non maskable interrupt) – prekidi<br />

č ija obrada ne može biti odložena – to su neke ozbiljne greške hardvera<br />

(npr. greška memorije)<br />

2. Softverski prekidi – prekidi generisani od strane programa<br />

3. Sistemski pozivi (jesu softverski prekidi)<br />

4. Izuzeci (exceptions) – generišu se od strane procesora, npr. ako se pokuša deliti sa<br />

nulom<br />

17

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

Saved successfully!

Ooh no, something went wrong!