You are on page 1of 17

Računarski sistem i

obrada prekida
PREDMET: RAČUNARI 4. RAZRED
Savremeni računarski sistemi – Fon
nojmanova koncepcija
Računarski sistem se, u osnovi, sastoji od centralnog procesora,
memorije i različitih ulazno/izlaznih uređaja koji su međusobno
povezani tako da obezbeđuju izvršavanje funkcija računara.
Najveći broj današnjih računarskih sistema je zasnovan na fon
Nojmanovoj arhitekturi računarskog sistema. Osnovni koncepti ove
arhitekture su:
Fon Nojmanova koncepcija
1. Računarski sistem poseduje samo jednu memoriju u kojoj se čuvaju i
podaci i instrukcije. Između zapisa podataka i instrukcija ne postoje
razlike, tj. jedino od načina interpretacije zavisi koji sadržaj će biti
shvaćen kao podatak a koji kao instrukcija.
2. Memorija računara je adresibilna po lokacijama kojima se može
pristupiti bez obzira kakav im je sadržaj.
3. Izvršavanje instrukcija se izvodi strogo sekvencijalno, osim ukoliko
drugačije nije eksplicitno naglašeno (npr. izvršavanjem instrukcije
skoka se može modifikovati redosled izvršavanja instrukcija).
Savremeni računarski sistem
Savremeni računarski sistem – princip
funkcionisanja
Savremeni računarski sistem se sastoji od CPU-a, memorije i određenog broja
kontrolera uređaja na koje su povezani različiti periferni uređaji. Memorija je
deljena – istoj lokaciji u memoriji mogu da pristupe i procesor i kontroleri različitih
uređaja preko zajedničke magistrale. Sinhronizacija pristupa deljenoj memoriji se
obavlja preko kontrolera memorije. Da bi računarski sistem počeo da radi potrebno
je da se izvrši inicijalni (eng. bootstrap) program koji mora biti što jednostavniji.
On inicijalizuje sve komponente računarskog sistema počev od registara CPU,
preko kontrolera uređaja do sadržaja memorije. Inicijalni program mora da zna
kako da učita operativni sistem i da počne njegovo izvršavanje. Operativni sistem
počinje izvršavanje prvog procesa i čeka dok se ne pojavi neki događaj.
Savremeni računarski sistem – princip
funkcionisanja
Pojavu događaja mogu da signaliziraju i hardver i softver preko
mehanizma koji se naziva sistem prekida. Postoji veliki broj različitih
tipova događaja koji mogu da se signaliziraju kao prekidi – npr. kraj
ulazno/izlazne operacije, deljenje nulom, nedozvoljen pristup
memoriji, zahtev za nekim od servisa operativnog sistema. Za svaki od
ovih prekida je predviđen servisni program koji preuzima kontrolu i
obrađuje prekid.
Sistem prekida
Sistem prekida predstavlja mehanizam koji omogućava efikasniji rad
računara. Npr. većina spoljnih uređaja je mnogo sporija od procesora.
Pri prenošenju dva podatka na štampač, procesor mora da sačeka
štampač da završi operaciju štampanja prvog da bi preneo drugi
podatak. To besposleno čekanje za procesor predstavlja izgubljeno
vreme. Upotreba prekida omogućava procesoru da izvršava druge
instrukcije dok se ne završi ulazno/izlazna (U/I) operacija na štampaču.
Sistem prekida

• NaSlici 2 je prikazan rad aplikacije koja iza svakog
koraka obrade štampa dobijene rezultate.
• Segmenti koda označeni sa (1), (2) i (3) predstavljaju niz
instrukcija koji ne uključuje ulaz ili izlaz.
• WRITE predstavlja poziv U/I programa koji treba da
obavi tekuću U/I operaciju.
Slika 2. Tok izvršenja programa sa i bez
sistema prekida
Komponente U/I programa
U/I program čine tri komponente:
• Niz instrukcija označen sa (4) na slici, koji vrši pripremu tekuće U/I
operacije. Uključuje prepisivanje podataka koji treba da se odštampaju u
posebni bafer i pripremu parametara za izdavanje komande uređaju.
• Stvarna U/I komanda. U njoj se izdaje komanda uređaju koji obavlja
zahtevanu akciju. Ako ne postoji prekid, aplikacija mora da čeka na
završetak rada uređaja (određuje se ponavljanjem testa za kraj operacije).
• Niz instrukcija označen sa (5) na slici, koji kompletira zahtevanu
operaciju. Ovo uključuje postavljanje indikatora uspešnosti završetka
operacije.
Slika 2 a – Slučaj bez sistema prekida

Pošto U/I operacija može da zahteva relativno veliku


količinu vremena, U/I program mora da stane sa
radom i čeka njen završetak, istovremeno
zaustavljajući i izvršavanje korisničkog programa za
taj vremenski period.
Slika 2 b i c – Slučaj sa sistemom prekida

Sa uvođenjem prekida, za vreme dok traje U/I operacija, procesor


može da bude angažovan na izvršavanju drugih instrukcija, kao na Slici 2.
(b) i (c). Kao i ranije, korisnički program dolazi do tačke u kojoj vrši
poziv sistemskog programa radi obavljanja operacije pisanja. U/I program
koji se poziva u ovom slučaju uključuje samo pripremu koda i poziv U/I
komande, poslije čega se kontrola vraća korisničkom programu. Za to
vreme spori uređaj (ovde štampač) počinje sa prihvatanjem podataka iz
računara i njihovom štampom. Sve ove operacije se izvršavaju
istovremeno sa nastavljenim izvršavanjem korisničkog programa.
Sistem prekida
Kada spoljni uređaj završi operaciju i postane spreman za prijem dodatnih podataka
iz procesora on signalizira to stanje procesoru slanjem zahteva za prekid. Tada
procesor prekida izvršavanje tekućeg programa, aktivira upravljački program (tzv.
interrupt handler) koji servisira spoljni uređaj i nastavlja sa izvršavanjem prekinutog
programa po završetku servisiranja spoljnog uređaja. Na slici je tačka u kojoj se
desio prekid označena sa →. Sa gledišta korisničkog programa prekid upravo
predstavlja prekid normalnog redosleda izvršavanja instrukcija. Izvršavanje se
nastavlja kada se završi obrada prekida. U slučaju da je program dospeo do naredne
write naredbe prije kompletiranja prethodne U/I operacije, nova U/I operacija se
inicira tek po završetku prethodne (Slika 2. (c)).
Sistem prekida i operativni sistem

Operativni sistem je odgovoran za prekid i


nastavak izvršavanja korisničkog programa na istom
mestu gde je i prekinut. Zbog toga, korisnički
program ne sadrži nikakve posebne naredbe kojima
vrši obradu prekida.
Višekorisnički sistemi i prekidi
U višekorisničkom sistemu u istom trenutku može da se javi više prekida koje su
generisali različiti programi ili uređaji. Načini obrade višestrukih prekida su:
1. Onemogućavanje prekida, kada se ostali prekidi onemogućuju dok se ne završi
obrada tekućeg. Onemogućavanje se vrši tako što procesor ignoriše novonastale
prekide koji se odlažu u red. Po završetku obrade tekućeg, procesor proverava stanje
u redu i počinje obradu prekida koji je prvi u redu. Ovaj način ima ozbiljan
nedostatak jer ne vodi računa o prioritetu prekida. Naime, svi prekidi nemaju jednaku
važnost u sistemu – npr. prekid kojim štampač javlja da je završio posao je od manje
važnosti za sistem od npr. prekida kojim se javlja postojanje fizičke greške na nekom
od uređaja sistema.
Višekorisnički sistemi i prekidi

2. Definisanje prioriteta prekida, uz davanje dozvole


prekidima višeg prioriteta da prekinu izvršavanje
(sistemskog) programa koji vrši obradu prekida sa
nižim prioritetom. Ovaj način se koristi u
savremenim računarskim sistemima.
Pitanja

1. Od kojih se osnovnih delova sastoji računarski sistem ?


2. Preko čega se obavlja sinhronizacija pristupa deljenoj memoriji ?
3. Šta je potrebno da bi računarski sistem počeo sa radom ?
4. Čemu služi sistem prekida ? Objasniti na primeru.
5. Koji su načini obrade višestrukih prekida ?

You might also like