Professional Documents
Culture Documents
RAF.08.2008.I6A.2010 - Odgovori
RAF.08.2008.I6A.2010 - Odgovori
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.
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
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
Da. Linux ima jedan manji deo kernela koji je monolitan, dok ostatak čine moduli, tj. ima
modularnu arhitekturu.
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 ...
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).
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.
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.
Stranica A Stranica A
Stranica B Sve nule Stranica B Sve nule
Stranica C Stranica C
Stranica B
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
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.
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
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