0% found this document useful (0 votes)
36 views4 pages

Understanding System Interrupts

1. Interrupts are an important part of computer architecture that allow for more efficient processor operation. When an interrupt occurs, the processor stores the state of the currently running program and jumps to an interrupt handler routine to service the interrupt. 2. There are different types of interrupts including hardware interrupts from devices, software interrupts initiated by programs, and exceptions from the processor. Each interrupt has a unique number that corresponds to an entry in the interrupt vector table containing the address of the interrupt service routine. 3. When an interrupt occurs, the interrupt handler saves the program context, services the interrupt request, then restores the program context so it can resume where it left off after the interrupt is handled. This allows

Uploaded by

Sarabitrovic
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
0% found this document useful (0 votes)
36 views4 pages

Understanding System Interrupts

1. Interrupts are an important part of computer architecture that allow for more efficient processor operation. When an interrupt occurs, the processor stores the state of the currently running program and jumps to an interrupt handler routine to service the interrupt. 2. There are different types of interrupts including hardware interrupts from devices, software interrupts initiated by programs, and exceptions from the processor. Each interrupt has a unique number that corresponds to an entry in the interrupt vector table containing the address of the interrupt service routine. 3. When an interrupt occurs, the interrupt handler saves the program context, services the interrupt request, then restores the program context so it can resume where it left off after the interrupt is handled. This allows

Uploaded by

Sarabitrovic
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.

INTERRUPT

Sara Bitrović
Decembar 2018

1
Interrupt

1 Uvod
Procesori imaju mehanizam koji se zove softverski prekid (engl. interrupt) i namijenjen je većoj efikasnosti
rada procesora.
Prekidi su važan dio arhitekture računara. Računarski sistemi bez sistema prekida ne mogu da funkcionišu
efikasno. Prekidi se koriste za komunikaciju periferijskih ured̄aja, tako da procesor bez sistema prekida mora
da čeka izvršavanje U|I operacije, što je veoma neefikasno. Pored toga, prekidi omogućavaju korišćenje servisa
operativnog sistema. Takod̄e, prekidi se koriste za mjerenje vremena i za vremensku kontrolu poslova koje
izvršavaju mikroprocesori.
Sistem prekida je relativno jednostavan koncept gdje se obično pojavljivanje nekog dogad̄aja signalizira
centralnom procesoru pomoću signala prekida. Postoji više različitih tipova dogad̄aja koji mogu da izazovu
prekid, npr. poziv nekog servisa operativnog sistema, dijeljenje nulom, završetak neke U|I operacije, nedozvol-
jen 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
predvid̄en za obradu datog dogad̄aja. Program za obradu datog dogad̄aja se zove prekidni program. Po završetku
prekidnog programa nastavlja se izvršavanje prekinutog programa od mjesta gdje 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.
Imamo glavni procesor, koji izvršava programe i imamo U|I ured̄aje (disk, štampač. skener, itd.). Svaki U|I
ured̄aj ima svoj kontroler koji sadrži neki slabiji procesor koji je jedino zadužen za upravljanje tim ured̄ajem i
za komunikaciju sa glavnim procesorom.

Imamo dvije strategije za upravljanje ured̄ajima


• polling - u odred̄enim vremenskim intervalima glavni procesor prekida svoj rad i provjeri da li neki
kontroler ima neku poruku za njega, ako ima, obradi poruku i nastavlja sa radom
• prekidi(interrupt) - glavni procesor radi svoj posao, i ured̄aji rade svoj posao. Ako ured̄aj završi svoj
posao ili dod̄e do neke greške, ured̄aj o tome obavještava glavni procesor zahtijevom za prekid (interrupt
request). Kada procesor dobije zahtjev za prekid, prekida svoj rad, zapamti gdje je stao, obradi prekid, pa
nastavlja sa radom tamo gdje je bio prekinut ; (ako prekid ne predstavlja neku fatalnu grešku, takvu da se
rad ne može nastaviti).

Primjer:
Mama kuva ručak a dijete se igra. Ako je polling, mama svakih 10 sekundi provjeri šta dijete radi i ako
nešto ne valja onda dotrči da mu pomogne.
Ako su interapti onda ga ne provjerava. Ali, dijete se posiječe i počne da plače. To je interapt.
Mama skine šerpe sa šporeta (prekine proces pravljenja ručka) zapamti gdje je stala, locira dijete (pogleda
u tabelu), previje ga i poljubi (obradi prekid), vrati se u kuhinju, sjeti se gdje je stala i nastavi sa kuvanjem.
Ako se dijete baš povrijedilo, mama suspenduje proces pravljenja ručka i vodi dijete na urgentno.

2 Sara Bitrović
Interrupt

2 Obrada prekida
Procesor pri kraju izvešavanja naredbe provjerava ima li signala za prekid. Kada takav signal stigne, potrebno
je sačuvati stanje programa koji se do tad izvršavao (najvažniji PC1 i PSW2 ).

1. Hardver mora negdje da smjesti PC i PSW. U modernijim arhitekturama to se stavlja na stek3 . Kod nekih
arhitektura postoji 2 steka - sitemski (od OS-a) i korisnički
2. Hardver sada treba da stavi novu vrijednost PC-a da bi se omogućio skok na neku instrukciju, i da ud̄e
u FETCH ciklus. U računarima, obično na samom početku memorije postoji i vektor prekida (interrupt
vector) koji predstavlja niz adresa prekidnih rutina (procedure koje treba startovati prilikom prekida). Ta
adresa se donosi u PC. U tom momentu proces može da pred̄e u FETCH ciklus.
3. Stanje ostalih registara se pamti u tabeli procesa. Procedura je napisana u asembleru4 , jer on radi sa
registrima.
4. Asemblerskom procedurom se i postavlja novi stek, da bi mogla da se pozove procedura ako zatreba.

5. Sada je sve zapamćeno, pa se izvršava prekidna rutina u užem smislu (tipično čita i baferiše neki ulaz),
tj. obrada prekida koju izvršava servisna procedura.
6. Startuje se planer (scheduler) - ima neke parametre i vraća broj procesa koji će se sledeći izvršavati.
7. Prelazak za asemblersku proceduru

8. Asemblerska procedura startuje novi proces, tj. vraća se vrijednost PC-a u procesor i on nastavlja svoj
rad.

3 VRSTE PREKIDA
1. Hardverski prekidi - generišu se od strane hardvera, mogu biti:
• prekidi koji se mogu maskirati (maskable interrupt) - ove prekide procesor može ignorisati ako je
dobio takvu naredbu (npr. pritisnuta je tipka na tastaturi).
• prekidi koji se ne mogu maskirati (non maskable interrupt) - prekidi čija obrada ne može biti
odložena - to su neke ozbiljne greške hardvera (npr. greška memorije).
2. Softverski prekidi - prekidi generisani od strane programa. Omogućavaju pristup "ugrad̄enom" kodu
unutar BIOS-a, operativnog sistema ili periferijskih ured̄aja. Softverski prekidi se iniciraju instrukcijom
INT.

3. Sistemski pozivi - jesu softverski prekidi koji se iniciraju korišćenjem različitih instrukcija za pozive i
različite konvencije.
4. Izuzeci (exceptions) - generišu se od strane procesora, npr. ako se pokuša dijeliti sa nulom.

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 Rou-
tines - ISRs) ili programi za upravljanje prekidima (Interrupt handlers).
1 programski brojač - registar
2 Program status word(s) nadskup registra koda uslova (CCR - condition code register) Koristi se za maskiranje prekida,
za supervizorski
režim rada, itd. Sadrži statusne informacije.
3 U računarstvu, stek je privremeni apstraktni tip podataka i struktura podataka, baziran na principu LIFO (LIFO - Last In First Out -

poslednji koji ulazi, prvi izlazi). Stekovi se u velikoj mjeri koriste na svim nivoima modernog računarskog sistema
4 Assembler je poseban program koji pretvara program zapisan asemblerskim jezikom u binarni oblik. Program zapisan upotrebom

memonika i simboličkih adresa naziva se asemblerski program.

3 Sara Bitrović
Interrupt

Vrijednosti 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 prije izvršavanja instrukcije INT mora kompletno da se sačuva (nepromi-
jenjeno od strane rutine za upravljanje prekidom - ISR-a).
Memorisano stanje se restaurira nakon IRET instrukcije.

4 Sara Bitrović

You might also like