Professional Documents
Culture Documents
RAF.08.2008.I2A.2010 - Odgovori
RAF.08.2008.I2A.2010 - Odgovori
Odgovori februarski ispitni rok (akademske studije) 2010/2011
Pitanja za 2 poena
1. Pored TID (task ID), navesti još dve stvari koje su jedinstvene za svaki task.
2. U sistemu datoteka FAT16, sa klasterima veličine 1KB, nalazi se datoteka KERNEL.SYS. Odrediti
kolika je njena interna fragmentacija. Napomena: EOC = 0FFF8h
direktorijumska stavka
ime start veličina atributi
KERNEL SYS 006A 1BA5 ...
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 -1BA5h = 5Bh (91 bajt).
1:60 279
2:169 1496
3:230 2530
4:100 201
5:196 1523
RAF.08.2008.I2A.2010
Operativni sistemi
5. 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 1 1 2 4 8 8
Odgovor:
a)
8 1 1 2 4 8 8
b)
8 1 1 1 1 4 8 8
Pitanja za 3 poena
6. U kojoj situaciji program koji ima PL=3 može da preda kontrolu programu koji ima PL=0 uz
mogućnost prenošenja parametara? Objasniti kako se prenose ovi parametri.
Odgovor: Ako je program koji ima PL=0 pozvan upotrebom Call Gate. Parametri se prenose
preko steka i to tako što se vrši automatsko kopiranje sa steka niže privilegije na stek
više privilegije. Broj parametara koji se ovako kopira određen je sadržajem polja u
Call Gate deskriptoru (to je polje WC čija je maksimalna vrednost 25 - 1 = 31).
7. Navedite najmanje tri atributa Unix procesa koji nisu istovremeno atributi njegove osnovne niti.
Odgovor: Grupni ID, tekući direktorijum, korenski direktorijum, ID sesije, kontrolni terminal,
otvorene datoteke, dostupni resursi, identifikator procesa (PID) ...
RAF.08.2008.I2A.2010
Operativni sistemi
9. U sistemu datoteka FAT32, sa klasterima veličine 2KB, nalazi se datoteka veličine 11967 bajtova.
Datoteka zauzima 6 klastera.
a. Koliko blokova veličine 512 bajtova zauzima ova datoteka?
b. Kolika je interna fragmentacija za ovu datoteku?
c. Ako je kapacitet sistema datoteka 2 GB, odredite veličinu FAT tabele.
Odgovor:
10. Navesti tri stanja u kojima može da se nadje kernel nit (kernel thread), bez obzira na implementaciju
operativnog sistema. Nacrtati dijagram stanja i obeležiti uslove za prelazak između stanja.
Odgovor: switch
1) Stanje nespremnosti za izvršenje
2) Stanje spremnosti za izvršenje 2 3
preempt
3) Stanje izvršenja
Pitanja za 5 poena
11. 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.
RAF.08.2008.I2A.2010
Operativni sistemi
12. 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 main?
Obrazložiti odgovor!
mem_velicina equ 512 ; Velicina memorije u KB
stek_velicina equ 1024 ; Velicina boot steka u bajtovima
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: Pre izvršenja funkcije main, program se kompletno relocira iz boot oblasti u oblast
512KB - 512 bajtova. Bazna adresa ovog dela memorije je 7FE00h, što znači da je
njegova segmentna adresa 7FE0h, pa je i segmenta adresa funkcije main 7FE0h.
13. 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:
cli
mov eax, cr0
or eax, dword 1
mov cr0, eax
jmp C_SEL:flush
flush:
mov ax, D_SEL
mov ds, ax
mov ax, S_SEL
mov ss, ax
mov ax, 4C00h
int 21h
Odgovor: Instrukcija predstavlja međusegmentni skok (iako ostajemo u istom segmentu) koji
automatski prazni prefetch queue, čiji sadržaj ne može da se koristi u trenutku
prelasaka u zaštićeni režim rada.
RAF.08.2008.I2A.2010
Operativni sistemi
14. Napisati deo koda 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.
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
15. Objasniti šta u sledećem listingu radi funkcija fun. Napisati mogući prototip ove funkcije u jeziku C.
fun: mov si, bx
and word si, 000fh
mov byte al, [tab+si]
ret
tab: db '0123456789ABCDEF'
Odgovor: Vrši konverziju donjeg binarnog nibla koji se prosleđuje preko BX u ASCII vrednost,
koja se vraća preko registra AL. Ovo se može koristiti za sve tipove konverzije iz binarnog
formata u npr. u oktalni, decimalni ili heksadecimalni, o čemu mora da vodi računa funkcja koja
poziva fun. Mogući prototip: char fun(int a);
RAF.08.2008.I2A.2010