RAF.08.2008.K1A.2010 - Odgovori

You might also like

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

Operativni sistemi

Odgovori        Kolokvijum 1 (akademske studije) 2010/2011 

Pitanja za 1 poen

1. Kolika je veličina linearnog adresnog prostora mikroprocesora iz klase IA32, ako se on nalazi u
realnom režimu rada?
a. 64 KB
b. 640 KB
c. 1024 KB
d. 1088 KB
e. 16 MB
f. 4 GB

2. Shell je program koji ostvaruje vezu operativnog sistema i korisnika. Navesti bar još jednu
njegovu funkciju kod operativnog sistema MS-DOS.

Odgovor: Interpretacija skriptova (.BAT datoteka), manipulacija promenljivama okruženja, obrada


kritičnih grešaka.

3. Kod mikroprocesora iz klase IA-32, prelazak iz realnog u zaštićeni režim rada ostvaruje se:
a. Upotrebom sistemskog poziva
b. Zabranom prekida (uključujući i NMI, ukoliko to dozvoljavaju spoljašnja elektronska kola)
c. Postavljanjem PE (Protected Enable) bita u kontrolnom registru CR0
d. Resetovanjem mikroprocesora, nakon čega on odmah prelazi u zaštićeni režim rada

4. Nivo privilegije tekućeg programa u zaštićenom režimu rada definisan je:


a. Vrednošću RPL (Requestor Privilege Level) u segmentnom selektoru instrukcije koja se
tenutno izvršava.
b. Vrednošću DPL (Descriptor Privilege Level) kodnog segmenta kome pripada instrukcija koja
se trenutno izvršava.
c. Trenutnim sadržajem CPL (Current Privilege Level) registra mikroprocesora.
d. Stanjem PE (Protected Enable) bita u kontrolnom registru CR0.

5. Pretpostavimo da u zaštićenom režimu tekući program ima CPL = 2. On može uspešno da


pozove ili skoči na deo kôda koji se nalazi u:
a. non-konforming kodnom segmentu kod koga je DPL = 2
b. non-konforming kodnom segmentu kod koga je DPL = 3
c. konforming kodnom segmentu kod koga je DPL = 1
d. konforming kodnom segmentu kod koga je DPL = 3

6. Napisati kraću verziju sledećeg dela programa:

    push adresa 
    ret 

Odgovor:
    jmp adresa

RAF.08.2008.K1A.2010
Operativni sistemi
Pitanja za 2 poena
7. U sistemu datoteka FAT16, sa klasterima veličine 1KB, nalazi se datoteka RAF_OS.BIN. Odrediti
kolika je njena interna fragmentacija. Napomena: EOC = 0FFF8h
direktorijumska stavka
ime start veličina atributi
RAF_OS  BIN  0069  1F85  ... 

FAT (u brojevima klastera izostavljene su prve dve vodeće nule)


65 66 67 68 69 6A … 92 93 94 95 96 97 98 99 9A 9B
46 EOC 00 45 97 99 … 57 96 00 EOC 6A 98 93 66 57 00

Odgovor: Datoteka zauzima 8 klastera (66, 69, 6A, 93, 96, 97, 98, 99). Broj bajtova koje zauzima
datoteka je 8 x 400h = 2000h, pa je interna fragmentacija 2000h -1F85h = 7Bh (123 bajta).

8. Data je tabela deskriptora segmenata:


Deskriptor
Selektor
Bazna adresa segmenta Dužina segmenta
1 219 600
2 2300 410
3 101 101
4 1327 580
5 1327 196
Koje linearne adrese odgovaraju sledećim logičkim adresama:

1:600 Ilegalna adresa


2:230 2530
3:100 201
4:196 1523
5:196 Ilegalna adresa

9. Program koji se izvršava u realnom režimu rada pokreće se iz MS-DOS datoteke tipa COM.
Napisati deo kôda koji će inicijalizovati GDT (za izgled ove tabele videti dodatak na poslednjoj
strani) tako da linearne adrese programskog kôda ostanu iste i nakon prelaska u zaštićeni režim
rada. Stavka za kodni segment u GDT data je sa:
         atributi
SEGMENT DATA          ↓  
gdt:    db 0ffh, 0ffh, 0, 0, 0, 09ah, 0, 0       
                       ↑  ↑  ↑           ↑ 
                       ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
Bazna adresa segmenta
Odgovor:

Formiramo baznu adresu sa ofsetom nula baš kao što to radi IA32 u realnom režimu rada.
xor eax,eax 
mov eax,cs 
shl eax,4     ; Siftovanjem segmentnog registra za 4 mesta ulevo  
mov dword [gdt+2],eax  ; formira se memorijska (bazna) adresa segmenta 
mov byte  [gdt+5],09ah ; ponovo atributi zbog prethodne instrukcije  

Upisana bazna adresa kodnog segmenta u GDT odgovara tekućoj lineranoj adresi sa ofsetom
nula. Maksimalna veličina segmenta je 64 KB (0ffffh) .

RAF.08.2008.K1A.2010
Operativni sistemi
Pitanje za 3 poena

10. Navedite i ukratko opišite tri tehnike za izvođenje U/I operacija.

Odgovor:
1. Programirani U/I (Polling) - Procesor boravi u petlji dok čeka završetak operacije. CPU izdaje
U/I komandu u ime programa.
2. U/I na bazi prekida - Zadaje se U/I komanda (CPU u ime programa), nastavlja se izvršavanje
instrukcija, a U/I modul (hardver) šalje signal prekida kada je započeta U/I operacija
završena.
3. Direktan pristup memoriji (DMA) - DMA modul (hardver) upravlja razmenom podataka između
glavne memorije i U/I modula. Procesor šalje zahtev za prenos bloka podataka DMA modulu i
prekida se samo kada se prenese ceo blok.

Dodatak: Izgled Globalne tabele deskriptora segmenata (GDT)

G – granularnost veličine segmenta D/B – zavisi od vrste segmenta


0 = u bajtovima (maksimum 1 MB) AVL – koristi ga sistemski softver
1 = u 4KB stranicama (maksimum 4 GB)
P = 1 znači segment je prisutan u
7 6 5 4 3 2 1 0 memoriji

bajt 7 adresa segmenta bajt 3 DPL – nivo privilegije segmenta


(od 0 do 3)
A
bajt 6 G D/B 0 V gornja 4 bita S = 0 znači sistemski segment
L

bajt 5 P DPL S vrsta segmenta


atributi 12 bitova
bajt 4 značenje nekih zavisi od segmenta
adresa segmenta bajt 2
bajt 3 adresa segmenta bajt 1 adresa segmenta 32 bita

bajt 2 adresa segmenta bajt 0


bajt 1 sledećih 8 bitova
veličina segmenta 20 bitova
bajt 0 donjih 8 bitova korak zavisi od granularnosti

You might also like