RAF.08.2008.I4A.2010 - Odgovori

You might also like

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

Operativni sistemi

Odgovori                  julski ispitni rok (akademske studije) 2010/2011 

Pitanja za 2 poena

1. U koje stanje prelazi nit koja je istisnuta sa procesora zbog isteka vremenskog kvantuma?

Odgovor: U stanje spremnosti za izvršenje (READY)

2. Š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.

3. 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
Odgovor: 18 MB/4KB = 4608 stavki
Prazan
prostor (nema
memorije)

0x011FFFFF
Program,
podaci i stek
(18MB)
0x00000000

4. Šta će biti ispisano na standardnom izlazu nakon izvršavanja sledećeg dela programa:

pid = fork(); 
if (pid ==0) { 
printf(“1”); 
fork(); 
printf(“0”); 

else if (pid > 0){ 
wait(NULL);  
printf(“2”); 
}   

Odgovor: 10102 ili 10210 

RAF.08.2008.I4A.2010
Operativni sistemi
Pitanja za 3 poena

5. Popuniti sledeću tabelu odgovorima DA ili NE

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

6. Navesti najmanje tri atrbuta jedne niti.


Odgovor:
a. Stanje
b. Prioritet
c. Afinitet
d. TID

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

Stranica Okvir
0 12
1 15
2 6
3 1
4 2
5 17
6 3

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

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


veličina stranice 4KB = 4096 bajtova

249: Broj stranice = 249 div 4096 = 0. Iz tabele ovo je okvir 12. Offset = 249 mod 4096 = 249.
Fizička adresa = 12 * 4096+249 = 49401
2490: Broj stranice = 2490 div 4096 = 0. Iz tabele ovo je okvir 12. Offset = 2490 mod 4096 =
2490. Fizička adresa = 12 * 4096+2490 = 51642
24900: Broj stranice = 24900 div 4096 = 6. Iz tabele ovo je okvir 3. Offset = 24900 mod 4096 =
324. Fizička adresa = 3 * 4096+324 = 12612

8. U sistemu FAT32, sa klasterima veličine 2 KB, nalazi se datoteka veličine 10240 bajtova.
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 10240/512 = 17,8 = 20 blokova
c) Interna fragmentacija je: broj bajtova koje zauzima datoteka – broj bajtova koje datoteka
koristi = 5 x 2048 – 10240 = 0 bajtova (nema interne fragmentacije)

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

9. Na sledećem listingu prikazan je jednostavni kružni raspoređivač kojeg poziva prekidna rutina
tajmera. 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.
Napišite deo programa koji realizuje zamenu konteksta (funkciju jmp2tss).  
 
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:  
push   word [task]                                    
call   jmp2tss 
pop  cx 
ret 

Odgovor:

jmp2tss: 
push  bp 
mov  bp, sp 
jmp far [ss:bp+2] 
pop  bp 
ret 

10. 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 6A 00 45 00 97 … 57 96 00 EOC 99 98 93 66 57 00

Odgovor: Datoteka je sa greškom i nije upotrebljiva. Lanac klastera čini zatvorenu petlju tako da
nije moguće odrediti njen kraj, bez obzira na veličinu koja upisana u direktorijumu.

RAF.08.2008.I4A.2010
Operativni sistemi
11. Šta je svrha sledećeg dela programa:
   video equ 0B800h 
mov   ax, video                
mov   es, ax
  mov   bx, word 320       
mov   si, hex 
next:  mov   al, byte [si] 
  cmp   al, 0     
  je    end 
  mov   byte [es:bx], al 
  inc   si 
  inc   bx 
  jmp   next 
end:  ret   
hex:   db '7 C 0 0 h ',0 

Odgovor: Ispisivanje stringa „7C00h“ na ekranu direktnim upisom u video memoriju.

12. Napisati deo kôda koji ispituje da li je učitani MS-DOS program tipa EXE.

Odgovor:
 
    mov   ax, bafer     ; pocetak bafera gde je ucitan program sa diska  
    mov   es, ax 
    cmp   word [es:0], 5A4Dh     ; Da li su pva dva bajta "MZ"? 
    je    JesteEXE               ; Ako jesu, to je EXE program 
 
13. 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.

14. Opisati mehanizam straničenja na zahtev (Demand Paging).

Odgovor: Pokušaj adresiranja stranice koja nije prisutna generiše grešku. Ovaj izuzetak mora da
poseduje svoju stavku u tabeli prekida. Rutina za obradu, na osnovu kôdne oznake greške koju
uzima sa steka, određuje zbog čega je nastala greška a zatim proverava da li je linearna adresa
ispravna (da li je translacija dozvoljena i da li je moguća translacija u fizičku adresu). Ako nije,
procesu se šalje signal ili poruka, nakon čega se on zaustavlja i o tome se ispisuje poruka (Unix
Kernel Panic ili Windows BSOD). Ako je adresa ispravna, rutina proverava da li ima slobodnih
okvira u fizičkoj memoriji. Ako nema, primenjuje neki od algoritama zamene. Sledi blokirajući
sistemski poziv rutine za upis sadržaja okvira na disk. U deskriptor stranice koja je izazvala
izuzetak kopira se adresa izabranog okvira, u stari deskriptor oznaka da stranica nije prisutna, a u
ostatak starog deskriptora lokacija stare stranice na disku. Tekući proces se stavlja u blokirano
stanje čekanja na završetak disk operacije. U međuvremenu se izvršava neki drugi proces. Po
završetku disk operacije upisivanja stranice, blokirani proces se aktivira, a u deskriptor se upisuje
da je stranica čista. Okvir sada može da se koristi za učitavanje nove stranice. Tražena stranica
se pronalazi na disku. Ponovo se koristi blokirajući sistemski poziv za učitavanje sa diska, tokom
koga proces ponovo blokira, a neki drugi se izvršava. Kada se završi učitavanje stranice, ažurira
se odgovarajuća tabela stranica. Programski brojač na steku ponovo se postavlja na instrukciju
koja je napravila straničnu grešku. Proces se prebacuje u stanje spreman. Nastavalja se
izvršavanje rutine za obradu stranične greške, koja se na svom izlazu vraća procesu kao da se
greška nije ni dogodila.

RAF.08.2008.I4A.2010

You might also like