SISTEMSKI SOFTVER- OPERATIVNI SISTEM
Sistemski softver
1. Prekidi (interrupts) str 64.
Kada god neki sklop ili program mora da preusmjeri paznju mikroprocesora sa strog
programa koji je do tog trenutka izvrsavao nekid drugi program desava se interapt.
Ovakav interpat se kontrolnim linijama prenosi od navedenog sklopa do procesora.
Potprogram koji obradjuje zahtjev za prekidom naziva se interrupt handler ili interrupt
service routine (ISR). Da bi pravilno obradio ovakvu vrstu prekida procesor mora da
bude u stanju da na neki nacin memorise sovje trenutno stanje – sadrzaj svojih
registara sa rezultatima i medjurezultatima kao i mjesto do kojeg je dosao tokom
izvrsenja programa. Ze memorisanje trenutnog stanja procesor najcesce koristi stek.
Nakon sto je na steku zapamtio svoje trenutno stanje, procesor mora da obradi prekid a
zatim treba u svoje registre iz steka ucitati ranije zapamceno stanje i da nastavi sa
normalnim izvrsavanjem prethodno prekinutog programa od mjesta na kom je
prekinut. Interapt moze biti pokrenut razlicitim uzrocima: I/O zahtjevima,
artimetickom greskom, neispravnoscu hardvera, na osnovu zadate prekidne tacke (kod
debug) ili zbog neispravne instrukcije.
2. Hardverski prekidi
Hardverski prekidi nastaju na osnovu signala koji generisu ulazno/izlazni uredjaji.
Hardverski prekidi predstavljaju obavjestenje procesoru da je nastala neka hardverska
situacija u kojoj je potrebna dodjela procesora (neki taster je pritisnut, stigao je mrezni
paket,...). Signale prekida koriste U/I uredjaji kako bi obavijestili procesor da su zavrsili
U/I operaciju.
Hardverski prekidi nastaju asihrono, tj mogu se javiti u bilo koje vrijeme izvrsavanja
nekog drugog programa. Samim tim i pozivi za ISR za hardverske prekide su asihroni.
-
Uredjaj generise zahtjev za prekidom
-
Uredjaj preko magistrale podataka salje broj vektora prekida
-
Procesor zavrsava izvrsavanje tekuce instrukcije I nakon toga izvrsava rutina za
upravljanje prekidom ISR koja odgovara broju vektora prekida dobijenog preko
magistrale podataka.
-
Nakon zavrsetka rada ISR uredjaju se salje odgovor na prekid
Hardverski prekidi se dijele u dve grupe maskirajuci i nemaskirajuci. Maskirajucim
prekidima se moze dozvoliti ili zabraniti rad. Maskiranje prekida se obicno vrsi
softverskim postavljanjem nekog bita u flag registru u mikroprocesoru.
1
3. Softverski prekidi
Softverski prekidi nastaju na osnovu programskih instrukcija. Softverski prekidi
omogucavaju pristup ugradjenom kodu unutar BIOS-a, operativnog sistema ili
periferijskih uredjaja. Softverski prekidi se iniciraju instrukcijom INT. Vrijednosti u
tabeli vektora prekida su pokazivaci 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 izvrsavanje
instrukcije INT mora kompletno da se sacuva. Memorisano stanje se restaurira nakon
poziva IRET instrukcije. Softverski prekidi sluze za povezivanje aplikacija sa
odredjenim sistemskim uslugama.
4. Registri mikroprocesora 8086
Mikroprocesor 8086 je mnogim rjesenjima postavio temelje danasnje arhitekture
racunara. Jedno od tih rjesenja koje se primjenjuje sve do danas u registri ovog
procesora.
2

5. Segmentni registri mikroprocesora 8086
Kada je Intel dizajnirao 8086 i 8088 mikroprocesor u svijetu je bilo popularno
strukturno programiranje. Glasine kazu da je Intel, da bi pomogao programerima da
bolje organizuju kompleksne programe, napravio segmentne registre. Ideja je bila da
jedan segment drzi program, drugi podatke, treci kao prostor za stek a cetvri kao ekstra
segment za podatke.
Tako su nastala cetiri segmentna registra duzine 16 bita:
-
CS Code Segment registar
-
DS Data Segment registar
-
SS Stack Segment registar
-
ES Extra segment registar
Segment:offset adresiranje
Primjer: Predpostavimo da se u registrima CS i IP procesora 8086 nalaze vrijednosti CS =
C000h I IP = 8000h. Najprije se sadrzaj CS registra pomjera (sifta) u lijevo za 4 bita, tako
da dobijemo rezultat C0000h, a zatim se ova vrijednost sabira sa sadrzajem IP registra I
dobijamo C8000. Segmentni regitri se dakle koriste u kombinaciji sa drugim
(pokazivackim) registrima za dobijanje stvarne fizicke adrese koja ima 20 bita.
6. Programski brojač – pokazivač instrukcije str.78
Registar programski brojac ili pokazivac instrukcije IP (Instruction Pointer) je jedan on
najvaznijih registara u bilo kom procesoru. Ovaj registar adresira narednu instukciju
koju treba da izvrsi procesor. On adresira instrukcije u
paru sa registrom CS (Code Segment). Zbog toga i CS uvijek mora pokazivati na dio
memorije (segment) u kom se nalazi kod programa koji se trenutno izvrsava. Stvarno
adresa instrukcije se formira pomocu sadrzaja IP i CS. Ovaj nacin adresiranja naziva se
segment:offset a cesto se navodi I kao CS:IP.
7. Registri Code Segment (CS) i Instruction Pointer (IP) str.79
CS(Code Segment) registar se najcesce koristi povezano sa IP (Instruction Pointer)
registrom. Zadatak IP registra je da uvijek pokazuje na memorijsku lokaciju sljedece
instrukcije koja treba da bude izvrsena. Code Segment tj CS uvijek pokazuje na pocetak
dijela memorije u kom je smjesten kod programa koji se trenutno izvrsava. Zajedno ova
dva registra odredjuju tacnu memorijesku lokaciju sa koje mikroprocesor treba da
uzme sljedecu instrukciju. Ovaj nacin adresiranja naziva se Segment:Offset.
4
Maksimalna vrijednost koju moze da drzi neki pokazivacki registar je FFFFh ili 65536.
Zbog toga je maksimalna duzina segmena ogranicena na 64 kB.
8. Izvršenje potprograma i sadržaj steka (sa slikama) str.81
Potprogrami su grupe instrukcija koje su napisane i smjestene odvojeno od glavnog
programa. Potprogrami izvrsavaju odredjene funkcije koje se cesto ponavljaju u
glavnom programu. Kako su prekidi ustvari samo posebna vrsta sistemskih
potporgrama, procesor I u slucaju potprograma mora da izvrsi u osnovi iste operacije
koje radu u slucaju prekida.
5

11.Heap memorija i adresni prostor jednog programa (procesa) - str.88
Stek se nalazi na vrhu memorijeske mape I ovaj memorijski prostor nije fiske duzine
vec se uvecava I smanjuje u zavisnosti od broja pozvanih potprograma I od broja
podataka sacuvanih na steku pomocu instrukcija push I pop. Svaki program karakterisu
jos dva memorijska prostora. Prostor za staticki alocirane podatke koji se naziva data u
kom se nalaze staticki alocirani podaci, varijable, nizovi I druge strukture podataka.
Memorija za ove varijable se zauzima u momentu pokretanja programa I nakon toga se
vise ne mijenja. U heap memorijeskom prostori alocira se prostor za dinamicke
varijable, nizove,.. I ove varijable se kreiraju u toku izvrsavanja programa. Heap
memorija kao ni stek nije fisksne duzine vec se njena velicina mijenja u toku izvrsenja
programa.
12.Šta je operativni sistem - str.93
Operativni sistem je program koji je najblize povezan sa hardverom racunara, mozemo
da ga posmatramo kao dio racunarskog sistema koji je zaduzen za alokaciju
hardverskih resursa. CPU, RAM memorija, sistem datoteka, ulazno izlazni uredjaji ali I
7
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti