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

Operativni sistemi

Odgovori        oktobarski  ispitni rok (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. 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 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. 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.I6A.2010
Operativni sistemi
8. Koliki je maksimalan broj root direktorijumskih stavki kod sistema datoteka FAT12?
a. 224
b. 256
c. 1440
d. 4096
e. neograničen

9. Da li Linux kernel ima modularnu arhitekturu? Obrazložiti odgovor.


Odgovor:

Da. Linux ima jedan manji deo kernela koji je monolitan, dok ostatak čine moduli, tj. ima
modularnu arhitekturu.

10. Korisničke niti mogu se izvršavati:


a. U celosti u prostoru kernela
b. U celosti u prostoru korisnika
c. Delom u prostoru kernela i delom u prostoru korisnika
d. Samo ako imaju pridruženu (mapiranu) makar jednu kernel nit

11. Kod sistemskog poziva, parametri mogu da se prenose preko steka upotrebom:
a. Call Gate
b. Segmenta iste privilegije (npr. kernel poziva funkciju kernela)
c. Fast Call (SYSENTER, SYSCALL)
d. Programskog prekida

12. Šta će biti ispisano na standardnom izlazu tokom izvršavanja sledećeg programa:
 
#include <sys/types.h> 
#include <stdio.h> 
 
int main(){ 
  pid_t pid; 
  pid = fork(); 
  if (pid==0) { 
    printf("A"); 
    printf("D"); 
    fork(); 
    printf("B"); 
    while(1); 
  } 
  else if (pid > 0){ 
    wait(NULL); 
    printf("C"); 
  } 
}     
    
Odgovor:

Ništa. Child proces ostaje u besknačnoj petlji pre nego što se isprazne print baferi. Parent proces,
pre nego što ispiše „C“, mora da sačeka završetak child procesa, što se nikada ne događa.

RAF.08.2008.I6A.2010
Operativni sistemi
Pitanja za 2 poena
13. 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  1FE9  ... 

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 -1FE9h = 17h (23 bajta).

14. Data je tabela deskriptora segmenata:


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

1:200 Ilegalna adresa


2:196 Ilegalna adresa
3:200 2500
4:200 401
5:196 1523

15. 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 jedne stavke 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     ; Šiftovanjem 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.I6A.2010
Operativni sistemi
16. Popuniti sledeću tabelu odgovorima DA ili NE.

Operacija Istiskivanje Blokiranje


Izvršavanje niti
U prostoru kernela DA DA
U prostoru korisnika DA NE

17. Za dodeljivanje memorije u kernelu operativnog sistema primenjuje se partnerski sistem (Buddy).
U nekom trenutku stanje zauzetosti prikazano je na donjoj slici (prikazani su blokovi i njihove
veličine izražene u broju stranica; osenčeni blokovi su zauzeti, beli su slobodni). Prikazati na isti
način stanje nakon dodeljivanja memorije veličine a) 1 stranice, a zatim b) još 1 stranice.

8 4 4 8 8

Odgovor:
a)
8 1 1 2 4 8 8

b)
8 1 1 2 4 8 8

18. Objasniti:
a. Koja je glavna prednost korisničkih niti u odnosu na kernel niti
b. Koji je glavi nedostatak korisničkih niti u odnosu ne kernel niti

Odgovor:
a. Kod česte zamene konteksta (npr. kod GUI), korisničke niti su znatno brže jer nema promena
nivoa privilegije.
b. Korisničke niti mogu da prave problem prilikom blokirajućeg sistemskog poziva, kada se
blokira ceo proces, a sa njim i korisničke niti koje nisu aktivne.

19. Opisati način efikasnog dodeljivanja anuliranih stranica upotrebom tehnike Copy On Write.

Odgovor: Pre upisivanja Posle upisivanja u stranicu B

Stranica A Stranica A
Stranica B Sve nule Stranica B Sve nule
Stranica C Stranica C
Stranica B

Virtuelna memorija Fizička memorija Virtuelna memorija Fizička memorija

RAF.08.2008.I6A.2010
Operativni sistemi

Pitanja za 3 poena

20. Šta nije uredu sa dijagramom stanja jedne kernel niti, koji prikazan na sledećoj slici?

Odgovor: switch
Stanje BLOCKED i RUN imaju zamenjena mesta
READY BLOCKED
preempt

wakeup wait

RUN

21. 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.

22. Za sistem sa veličinom stranice 4 KB, data je tabela stranica:


Stranica Okvir
0 9
1 15
2 6
3 1
4 2
5 8
6 13
Koje fizičke adrese odgovaraju sledećim logičkim adresama: 240, 2400 i 24000?

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

249: Broj stranice = 240 div 4096 = 0. Iz tabele ovo je okvir 9. Offset = 240 mod 4096 = 240.
Fizička adresa = 9 * 4096+240 = 37104
2490: Broj stranice = 2400 div 4096 = 0. Iz tabele ovo je okvir 9. Offset = 2400 mod 4096 =
2400. Fizička adresa = 9 * 4096+2400 = 39264
24900: Broj stranice = 24000 div 4096 = 5. Iz tabele ovo je okvir 8. Offset = 24000 mod 4096 =
3520. Fizička adresa = 8 * 4096+3520 = 36288

RAF.08.2008.I6A.2010
Operativni sistemi
Pitanja za 5 poena

23. Šta je to mikrokernel a šta exokernel arhitektura?

Odgovor:
Mikrokernel aritektura je rešenje kada se u prostoru kernela nalazi samo kernel sa minimalnim
funkcijama (raspoređivanje i dodeljivanje resursa), a da se ostale funkcionalnosti sistema (npr.
sistemi datoteka, drajveri, itd.) realizuju kao korisnički procesi.Komunikacija među procesima vrši
se razmenom poruka. Prednost takve arhitekture u odnosu na monolitne ili modularne je visoka
pouzdanst i robusnost. Pad nekog podistema (npr. drajvera) ne izaziva krah čitavog sistema.
Nedostatak su lošije performanse zbog česte promene nivoa privilegije prilikom prenosa poruka.

Exokernel napušta prvi postulat operativnih sistema – apstrakciju hardvera. Umesto toga,
kompletno upravljanje resursima premešta se u korisnički prostor i vidu biblioteke LibOS.
Ovu biblioteku može da menja i korisnik, a može istovremeno da postoji i više biblioteka.
Ostatak kernela ima zadatak samo da eksportuje postojeći hardver - ne da ga viruelizuje. On to
izvodi na bezbedan način (multipleksiranje hardvera). Na taj način razvojena je bezbednost
sistema od upravljanja resursima.

24. Objasniti šta je to LBA (Logičko Blok Adresiranje) za pristup blokovima diska.

Odgovor:
Logičko Blok Adresiranje (LBA) je standardna šema za određivanje lokacije blokova podataka
sačuvanih na spoljašnjim medijumima, kao što su npr. diskovi. LBA je linerana šema koja adresira
blokove upotrebom celobrojnog indeksa, gde je prvi blok označen sa LBA 0, drugi sa LBA 1, itd.
LBA zamenjuje starije šeme koje su koristile fizičke detalje (Cylinder-Head-Sector geometriju)
diska, uvodeći apstrakciju koja je primenljiva i na druge medijume, npr. magnetne trake, mrežne
diskove, itd.

25. Napisati deo kôda koji će prekidnu rutinu timer pozvati kao da je obična funkcija, bez obzira što
se prekidna rutina završava sa IRET.

Odgovor:

pushf 
push cs 
call timer  

Po završetku prekidne rutine, izvršavanjem instrukcije IRET, sa steka se skidaju vrednosti IP, CS
i FLAGS, pa se kontrola toka programa vraća pozivaocu.

RAF.08.2008.I6A.2010
Operativni sistemi
Dodatak za zadak 15. Izgled jedne stavke GDT tabele. 
 
  bajt  sadržaj 
  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
  0  veličina segmenta, donjih 8 bitova 
  1  veličina segmenta, sledecih 8 bitova 
  2  bazna adresa 0 
  3  bazna adresa 1 
  4  bazna adresa 2 
  5  attrib_1 
  6  attrib_2, veličina segmenta gornja 4 bita  
  7  bazna adresa 3 
 
                7   6   5   4   3   2   1   0 
  attrib_1  P    DPL    S   vrsta segmenta 
  attrib_2  G  D/B  0  AVL  gornja 4 bita veličine 
 
  Vrednosti za attrib_1: 
  Kodni segment (09ah): P=1 (prisutan), DPL=00, S=1 (nije Gate), 
  T=1 (kodni), C=0 (nije konforming), R=1 (može da se čita), A=0 
 
  Ostali segmenti (092h): P=1 (prisutan), DPL=00, S=1 (nije sistemski), 
  T=0 (data), E=0 (stek raste na gore), W=1 (može da se upisuje), A=0 
                     
  Za sve deskriptore, attrib_2 = 0 
  To znači: G=0 (granularnost je 1 bajt), D/B=0 (16‐bitni rezim), 
  AVL=0, veličina (gornja 4 bita=0) ograničena na maksimalno 64kB 

RAF.08.2008.I6A.2010

You might also like