Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Operativni sistemi

Odgovori                       Kolokvijum 1  2011/2012 

Pitanja za 1 poen

1. U data segmentu navedena je pseudo-instrukcija:


poruka: db “ja sam poruka”, 0 
Izvršena je instrukcija:
mov di, poruka 
Ako želimo da registar DI pokazuje na prvo slovo “a”, koju instrukciju treba izvršiti?
a. inc di 
b. push di 
c. dec di 
d. inc [di] 
e. dec [di] 

2. Na koji način kod MS-DOS-a korisnički programi pozivaju funkcije kernela?


a. Far call
b. Near call
c. Softverki prekid
d. IRQ
e. Korisnički programi ne pozivaju funkcije kernela

3. Navesti fizičku adresu unutar tabele vektora prekida odakle počinje zapis za prekid 12h kada se
procesor nalazi u realnom režimu rada.

Odgovor: 48h.

Pitanja za 2 poena

4. Kratko definisati čemu služe instrukcije cli i sti. Objasniti kakvu ulogu ove instrukcije igraju kod
postavljanja novog hendlera prekida.
Odgovor: Instrukcija cli resetuje interrupt flag, dok instrukcija sti postavlja isti taj flag.
Hardverski prekidi nisu dozvoljeni ako interrupt flag nije postavljen. Ovo je neophodno činiti pri
zameni hendlera prekida, jer bi u slučaju poziva hendlera nakon što je započeta i pre nego što je
završena izmena vektora, došlo do greške u pozivu.

5. U fajl sistemu FAT12, sa klasterima veličine 512 bajtova, nalazi se fajl veličine 1234 bajta. Kolika
je interna fragmentacija ovog fajla?  
Odgovor: Fajl zauzima 1234/512=2.41 tj. 3 klastera. Interna fragmentacija je 3*512-1234=302 bajta.

6. Zapis za kodni segment koji nam treba se nalazi na sedmom mestu u LDT. Koja vrednost treba
da se nalazi u CS registru da bi se pristupilo segmentu koji nam treba, uz pretpostavku da se
zahteva nulti nivo privilegije?
CS DT ofset TI RPL1 RPL0

Odgovor: Najniža dva bajta su 0 (nulti nivo privilegije); naredni je 1 (LDT); 7 binarno je 111, dakle
zapis je: 0000000000111100 (60d odnosno 3Ch).

RAF.08.2008.K1.2011
Operativni sistemi
Pitanja za 3 poena

7. Koji će biti sadržaj PSP, počevši od adrese 80h, ako je program (test.com) pokrenut komandom:
test.com tset.com 
Odgovor: 80h:10 (dužina stringa „tset.com“ i znak za kraj reda); 81h:‘ ‘; 82h:‘t’; 83h:‘s’; 84h:‘e’;
85h:‘t’; 86h:‘.’; 87h:‘c’; 88h:‘o’; 89h:‘m’; 8ah:0dh

8. Pretpostaviti da postoji funkcija _print koja ispisuje redom ASCII karaktere počevši od adrese u
registru SI, dok ne dođe do nule. Napisati hendler za prekid 1Ch (korisnički tajmerski prekid koji
se poziva svakih 55ms) tako da se otprilike svake sekunde na početku tekuće linije ispisuju znaci
“_” (donja crta) i “ ” (razmak), naizmenično. Cilj je da se dobije utisak trepćuće donje crte.
Pretpostaviti da već postoji kôd za postavljanje i uklanjanje traženog hendlera za prekid 1Ch.

Odgovor (jedno od mogućih rešenja):


segment   .code 
h:  pusha 
  dec   word [brojac] 
  jnz   izlaz   
  test  byte [par], 1 
jz    spejs 
donjacrta: 
mov byte [ispis], '_' 
  mov byte [par], 0 
  jmp kraj 
spejs:   
mov byte [ispis], ' ' 
  mov byte [par], 1 
kraj: 
  mov   ax, [vrednost] 
  mov   [brojac], ax 
mov   si, ispis 
  call   _print 
izlaz: 
  popa    
  iret 
segment   .data 
brojac:   db 20 
vrednost: dw 20 
par:   db 0 
ispis:   db 0,0dh,0 

RAF.08.2008.K1A.2011

You might also like