You are on page 1of 7

UVOD U OPERATIVNE SISTEME

SEMINARSKI RAD

Procesorski prekidi i njihovo servisiranje

Predmetni nastavnik: Student:


Prof. Dr Vojkan Vasković Đorđe Kondić 106/09
Srđan Gverić 159/09

Banja Luka, Jun 2010.god.


Procesorski prekidi i njihovo servisiranje

Sadržaj

Sistem prekida........................................................................................................................................3
Softverski prekidi....................................................................................................................................4
Hardverski prekidi..................................................................................................................................5
Izuzeci.....................................................................................................................................................6
Procesorski prekidi i njihovo servisiranje

Sistem prekida
Prekidi su važan deo arhitekture računara.
Računarski sistemi bez sistema prekida ne mogu
da funkcionišu efikasno. Naime, prekidi se
koriste za komunikaciju periferijskih uređaja sa
centralnim procesorom. Procesor je mnogo brži
od rada periferijskih uređaja, tako da procesor
bez sistema prekida mora da čeka završavanje
U/l operacije, što je veoma neefikasno. Pored
toga, prekidi omogućavaju korišćenje servisa
operativnog sistema. Takođe, prekidi se koriste
za merenje vremena i za vremensku kontrolu
poslova koje izvršavaju mikroprocesori.

Sistem prekida je relativno jednostavan koncept


gde se obično pojavljivanje nekog događaja
signalizira centralnom procesoru pomoću
signala prekida. Postoji više različitih tipova
događaja koji mogu da izazovu prekid, kao na
primer, poziv nekog servisa operativnog sistema, deljenje nulom, završetak neke U/l
operacije, nedozvoljen pristup memoriji, klik mišem ili pritisak nekog tastera na tastaturi.
Nakon generisanja signala prekida upravljanje se prenosi sa programa koji se trenutno
izvršava na program predviđen za obradu datog događaja. Program za obradu datog događaja
se zove prekidni program. Po završetku prekidnog programa nastavlja se izvršavanje
prekinutog programa od mesta gde je napravljen prekid. Da bi to bilo moguće potrebno je
izvršiti memorisanje stanja prekinutog programa ("context switching") u trenutku kada je
došlo do prekida.

Postoje tri vrste prekida:

 softverski prekidi,
 hardverski prekidi i
 izuzeci.

Bez obzira na izvor prekida svim prekidima se upravlja na isti način. Svaki prekid ima
jedinstven broj prekida. Kod Intel-ovih procesora brojevi prekida su od 0 do 255. Ovi brojevi
se zovu vektori prekida i za svaki vektor prekida postoji zapis u tabeli vektora prekida
("interrupt vector table"). Tabela vektora prekida je tabela koja sadrži adrese prekidnih
programa koji upravljaju servisiranjem svakog od nastalih prekida. Ovi prekidni programi se
zovu i programi za servisiranje prekida ("Interrupt Service Routines" - ISRs) ili programi za
upravljanje prekidima ("Interrupt handlers").
Procesorski prekidi i njihovo servisiranje

Softverski prekidi

Softverski prekidi nastaju na osnovu programskih instrukcija. Softverski prekidi


omogućavaju pristup "ugrađenom" kodu unutar BlOS-a, operativnog sistema ili periferijskih
uređaja. To su funkcijski pozivi koji se iniciraju korišćenjem različitih instrukcija za pozive i
različite konvencije. Softverski prekidi se iniciraju instrukcijom INT.

Vrednosti u tabeli vektora


prekida su pokazivači na kod u BIOS-u,
hardveru, operativnom sistemu ili na
neki programerski kod. Za rad sa
prekidima koriste se INT i IRET
instrukcije (analogno instrukcijama
CALL i RETURN). Stanje
mikroprocesora pre izvršavanja
instrukcije INT mora kompletno da se
sačuva (nepromenjeno od strane rutine
za upravljanje prekidom - ISR-a).
Memorisano stanje se restaurira nakon
poziva IRET instrukcije.
Procesorski prekidi i njihovo servisiranje

Fn. Parametri Rezultat Napomena


01h Ah=01h AL=ASCII Čita znak Hardverski prekidi
znak sa
tastature
(znak se
prilikom Hardverski
kucanja prekidi nastaju na
ispiše na osnovu signala prekida
ekranu) i
koje generišu U/l
smješta ga
u AL uređaji. Hardverski
registar prekidi predstavljaju
obaveštenje procesoru
02h AH=02h Ispisuje da je nastala neka
DL=ASCII znak iz DL
hardverska situacija u
znak registra
na ekran kojoj je potrebna dodela
procesora (na primer,
09h AH=09h Ispisuje neki taster je pritisnut,
DS:DX= string na stigao je mrežni paket,
adresa ekran
stringa (string isteklo je vreme nekog
mora "timer"-a i si.). Signale
završiti prekida koriste U/l
znakom uređaji kako bi
‘$’)
obavestili procesor da
su završili U/l
operaciju.

Hardverski prekidi nastaju asinhrono, tj. mogu se javiti u bilo koje vreme izvršavanja
nekog drugog programa. Samim tim i pozivi za izvršavanje prekidnih programa (ISR-a) za
hardverske prekide su asinhroni.

Na slici 2.12 je prikazano korišćenje signala prekida u komunikaciji datog uređaja sa Intel-
ovim procesorom 8086. Detaljan opis aktivnosti između uređaja i procesora je sledeći:

1) uređaj generiše signal zahteva za prekidom,


2) uređaj preko magistrale podataka šalje broj vektora prekida
3) procesor završava izvršavanje tekuće instrukcije i nakon toga izvršava rutinu za
upravljanje prekidom (ISR) koja odgovara broju vektora prekida dobijenog preko
magistrale podataka.
4) nakon završetka rada rutine za upravljanje prekidom uređaju se šalje odgovor na
prekid (INT "acknowledge")

Za povezivanje više od jednog uređaja sa procesorom koristi se programabilni kontroler


prekida 8259 (PIC - "Programmable Interrupt Controller"), kao što je prikazano na slici 2.13.
Jedan 8259 kontroler se koristi za rad do 8 uređaja. Više 8259 uređaja se može vezati u
kaskadu za rad do 64 uređaja.
Procesorski prekidi i njihovo servisiranje
Hardverski prekidi se dele u dve grupe:

 maskirajući (INTR) i
 nemaskirajući (NMI)

Maskirajućim prekidima se može dozvoliti ili zabraniti rad. Za maskirajuće prekide


dozvola rada se vrši softverski postavljanjem odgovarajućeg bita u statusnoj reči. Za
nemaskirajuće prekide stanje bita u statusnoj reči nije bitno. Primer nemaskirajućeg prekida je
kada nastane greška u napajanju.
Kada se pojavi prekid i procesor pokrene izvršavanje rutine za upravljanje prekidom (ISR) svi
sledeći prekidi od istog uređaja su blokirani dok ISR ne završi sa obradom tekućeg prekida.
PIC je veoma složen za programiranje. Međutim, većinu posla radi BIOS.
Servisiranje hardverskog prekida iz ugla operativnog sistema obuhvata sledeće aktivnosti:

 kompletirati tekuću instrukciju, sačuvati kontekst programa, identifikovatl izvor


prekida, aktivirati ISR, Izvršiti ISR,
 Indikacija kraja prekida (EOI - "End Of Interrupt") kontroleru 8259 IRET- povratak
na izvršavanje prekinutog programa
 Vektori prekida od 8 do OFh se preslikavaju u IRQO do IRQ7. Vektori prekida od 70h
do 77h se preslikavaju u IRQ8 do IRQ15.

Korišćeni prekidi kod personalnih racunara su sledeći:

Izuzeci
Pored softverskih i hardverskih prekida procesor servisira i treću vrstu prekida koja se
zove izuzeci. Izuzeci su sinhroni događaji koji se pojavljuju kao rezultat nastanka neke greške
u toku izvršavanja instrukcija. Na primer, takvi događaji su deljenje nulom, izvršavanje
instrukcije sa nepostojećim operacionim kodom, tj. sa operacionim kodom čija je vrednost
Procesorski prekidi i njihovo servisiranje
van skupa dozvoljenih vrednosti, sistemski poziv sa greškom i slično. Sistemski pozivi
omogućavaju korisničkim procesima da zahtevaju servise operativnog sistema.

You might also like