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

Operativni sistemi

Odgovori                junski ispitni rok (akademske studije) 2010/2011 

Pitanja za 1 poen

1. Kolika je veličina fizičkog 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. 1000 KB
e. 1088 KB
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 zaštićenog u realni 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. Resetovanjem PE (Protected Enable) bita u kontrolnom registru CR0
d. Resetovanjem mikroprocesora

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. Zaokružiti stavke koje pripadaju jednoj kernel niti:


a. Prioritet
b. Kontekst
c. Afinitet
d. Promenljive okruženja
e. Tekući direktorijum

7. Šta je to Flat Memory Model kod arhitekture IA32?


Odgovor: Kada svi segmenti zauzimaju celokupni linearni memorijski adresni prostor, od 0 do 4GB.

RAF.08.2008.I3A.2010
Operativni sistemi
Pitanja za 2 poena

8. U sistemu datoteka FAT16, sa klasterima veličine 1 KB, nalazi se datoteka DATA.TXT. Odrediti
kolika je njena interna fragmentacija. Napomena: EOC = 0FFF8h
direktorijumska stavka
ime start veličina atributi
DATA    TXT  006A  1BFE  ... 

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 00 97 … 57 96 00 EOC 99 98 93 66 57 00

Odgovor: Datoteka zauzima 7 klastera (66, 6A, 93, 96, 97, 98, 99). Broj bajtova koje zauzima
datoteka je 7 x 400h = 1C00h, pa je interna fragmentacija 1C00h -1BFE5h = 2 bajta.

9. Šta označava pojam “čista stranica” kod virtuelne momorije?

Odgovor: Za stranicu se kaže da je čista kada je njena memorijska verzija ista kao ona na disku.
U suprotnom, za nju se kaže da je prljava. Stranice se povremeno upisuju na disk i kernel to radi
u pozadini. Operacije može da se forsira upotrebom sistemskog poziva sync. Kernel može da
preda okvir čiste stranice drugome na korišćenje jer zna da može ponovo da je učita sa diska.
Međutim, prljave stranice moraju prvo da se snime na disk pa tek onda njihovi okviri mogu
ponovo da se koriste.

10. Na slici je prikazan fizički adresni prostor jednog 32-bitnog Unix sistema. Ako pretpostavimo da su
stranice veličine 4 KB, koliko stavki mora da ima tabela stranica ukoliko se koristi jedinstvena
tabela stranica?
0xFFFFFFFF
Stek (1MB)
Odgovor: 1M stavki 0xFFFFFC00

Prazan prostor
(nema memorije)

0x011FFFFF
Program i
podaci
(18MB)
0x00000000

Pitanja za 3 poena

11. Popuniti sledeću tabelu odgovorima DA ili NE

Dodeljivanje Interna
memorije fragmentacija
Fiksne particije DA
Dinamičke particije NE
Straničenje DA
Segmentacija NE

RAF.08.2008.I3A.2010
Operativni sistemi
12. Za sistem sa veličinom stranice 2 KB, data je tabela stranica:

Stranica Okvir
0 1
1 4
2 3
3 7
4 12

Koje fizičke adrese odgovaraju sledećim logičkim adresama: 30, 249 i 2490?

Odgovor: fizička adresa = okvir * veličina stranice + offset


veličina stranice 2KB = 2048 bajtova

30: Broj stranice = 30 div 2048 = 0. Iz tabele ovo je okvir 1. Offset = 30 mod 2048 = 30.
Fizička adresa = 1 * 2048+30 = 2078
249: Broj stranice = 249 div 2048 = 0. Iz tabele ovo je okvir 1. Offset = 249 mod 2048 = 249.
Fizička adresa = 1 * 2048+2249 = 2297
2490: Broj stranice = 2490 div 2048 = 1. Iz tabele ovo je okvir 4. Offset = 2490 mod 2048 = 442.
Fizička adresa = 4 * 2048+442 = 8634

13. U sistemu FAT32, sa klasterima veličine 2 KB, nalazi se datoteka veličine 9123 bajta. Datoteka je
smeštena u sledećim klasterima: 5, 10, 30, 40, 75. Ako je veličina jednog bloka 512 bajtova,
odrediti:
a) koliko blokova zauzima datoteka
b) koliko blokova koristi datoteka
c) kolika je interna fragmentacija

Odgovor:
a) Datoteka zauzima 5 klastera, a to je 5 x 2048/512 = 20 blokova
b) Datoteka koristi 9123/512 = 17,8 = 18 blokova
c) Interna fragmentacija je: broj bajtova koje zauzima datoteka – broj bajtova koje datoteka
koristi = 5 x 2048 – 9123 = 1117 bajtova

14. Na slici je prikazan dijagram stanja jedne niti, sa obeleženim uslovima za prelazak između stanja.
Kako se nazivaju stanja označena sa 1, 2 i 3 ?
switch

2 3
preempt

wakeup wait

Odgovor: 1) Stanje nespremnosti za izvršenje, 2) stanje spremnosti za izvršenje i 3) stanje


izvršenja.

RAF.08.2008.I3A.2010
Operativni sistemi

Pitanja za 5 poena

15. Imajući u vidu da PSP kod DOS datoteke tipa COM počinje od lokacije 81h, objasniti šta radi
sledeći deo kôda:

org 100h 
 
mov  ch, 01h  ; Maksimalni broj ponavljanja instrukcije sa prefiksom rep__ 
mov  di, 81h 
mov  al, ' ' 
repe  scasb 
lea  dx, [di‐1] 
dec  di 
mov  al, 13 
repne  scasb 
mov  byte [di‐1], 0 

Odgovor:

Parsuje komandnu liniju za argument COM datoteke zadat preko komandne linije. Ovaj argument
postaje string koji počinje od lokacije na koju pokazuje registar DX, a završava se nulom.

16. Na sledećem listingu prikazan je početak boot sektora FAT16 diska sa koga se podiže operativni
sistem. Navesti brojnu vrednost kodnog segmenta u kome će početi izvršavanje funkcije boot?
Obrazložiti odgovor!
 
mem_velicina    equ  512    ; Velicina memorije u KB 
stek_velicina    equ  1024    ; Velicina boot steka u bajtovima 
 
boot: 
  mov  ax, mem_velicina 
shl  ax, 6            
sub  ax, 32     
mov  es, ax           
sub  ax, stek_velicina / 16    
mov  ss, ax 
mov  sp, stek_velicina         
mov  cx, 512           
mov  si, 7C00h         
xor  di, di            
mov  ds, di            
rep  movsb             
push  es                
push  word main         
retf 
   main:                            
push  cs 
pop  ds                
  ... 

Odgovor: Izvršavanje funkcije boot počinje od adrese 7C00h, jer je u pitanju boot sektor, pa je
vrednost kodnog segmenta CS=0.

RAF.08.2008.I3A.2010
Operativni sistemi
17. Pretpostavimo da su u nekom sistemu sa procesorom arhitekture IA32 već inicijalizovane tabele
GDT i IDT, kao i da postoje odgovarajuće rutine za obradu prekida. Segmentni selektori
(C_SEL,D_SEL,S_SEL)imaju poznate vrednosti.
U zaštićeni režim ulazi se na sledeći način: Modifikovani kod:

cli          cli 
  mov  eax, cr0      mov  [real],cs 
  or  eax, dword 1  mov  [real+2],ds 
  mov  cr0, eax  mov  [real+4],ss   
  jmp  C_SEL:flush       
  mov  eax, cr0   
   flush:    or  eax, dword 1 
  mov  ax, D_SEL        mov  cr0, eax 
  mov  ds, ax         jmp  C_SEL:flush 
  mov  ax, S_SEL     
  mov  ss, ax       flush: 
      mov  ax, D_SEL   
  mov  ds, ax    
Modifikovati ovaj kôd tako da kasnije bude   mov  ax, S_SEL   
omogućen povratak u realni režim rada.   mov  ss, ax  
 
segment .data 
 
real:  times 3 dw 0 
 

18. U sledećem listingu prikazan je deo kôda koji realizuje jednostavni kružni raspoređivač sched. Svi
TSS segmenti taskova su inicijalizovani. Selektor nultog taska učitan je u registar TR kao i u
varijablu task. Selektori ostalih taskova nalaze se redom iza slektora nultog taska. Objasniti kako
funkcija .dispatch vrši zamenu konteksta. 
 
TASK_0    equ   32    ; Selektor taska 0 
TASKOVA    equ  4    ; Broj taskova 
deskriptor  equ  8    ; Velicina task deskriptora 
 
SEGMENT DATA 
task:  dw 0 
 
SEGMENT CODE 
sched: 
add  word [task], deskriptor                    
cmp  byte [task], TASK_0+(TASKOVA‐1)*deskriptor  
jle   .dispatch 
mov  word [task], TASK_0 
   .dispatch:  
jmp far [task‐2] 
ret 
 
Odgovor:
Lokacija na adresi task‐2 sadrži proizvoljnu vrednost, ali to je irelevantno, jer ona ulazi u registar
IP. Ono što ulazi u segmentni selektor je sadržaj lokacije čija je adresa task, a to je selektor
taska kome treba predati kontrolu zamenom konteksta.
 

RAF.08.2008.I3A.2010
Operativni sistemi
19. U sledećem listingu prikazana je rutina za obradu prekida tastature. Kôd pritisnutog tastera nalazi
se u registru KBD, a ova rutina ga kopira u memorijsku lokaciju taster. Objasniti ulogu instrukcija
koje su obeležene zvezdicama.

 
KBD  equ 060h            
EOI  equ 020h 
PIC  equ 020h                
 
push  ax                   
in  al, KBD                              
mov  [taster], al 
mov  al, EOI        ; *******                  
out  PIC, al        ; *******          
pop  ax 
iret   
 
taster:  db 0   

Odgovor:

Nespecifična End Of Interrupt (EOI) komanda za završetak obrade prekida šalje se na


programabilni kontroler prekida (PIC), tj. dozvoljavaju se novi prekidi tastature.  
   

RAF.08.2008.I3A.2010

You might also like