Professional Documents
Culture Documents
RAF.08.2008.I5.2011 - Odgovori
RAF.08.2008.I5.2011 - Odgovori
Pitanja za 1 poen
3. Navesti fizičku adresu unutar tabele vektora prekida odakle počinje zapis za prekid 17h kada se
procesor IA32 nalazi u realnom režimu rada.
Odgovor: 5Ch.
5. Kod mikroprocesora iz klase IA32, 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
Pitanja za 2 poena
RAF.08.2008.I5.2011
Operativni sistemi
7. Na slici je prikazan fizički adresni prostor jednog 32-bitnog Unix sistema. Ako pretpostavimo da su
stranice veličine 4 KB:
a) Koliko stavki mora da ima tabela stranica ukoliko se koristi 0xFFFFFFFF
jedinstvena tabela stranica? Stek (1MB)
0xFFFFFC00
b) Koliko stavki u zbiru moraju da imaju tabele stranica, ako se
koristi straničenje u dva nivoa (ne računati stavke za direktorijum)? Prazan prostor
(nema memorije)
0x011FFFFF
Odgovor: a) 1M stavki Program i
b) 12K stavki podaci
(18MB)
0x00000000
8. Navedite najmanje dva 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) ...
9. 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 ...
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.
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. Operacija 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.
Pitanja za 3 poena
Dodeljivanje Interna
memorije fragmentacija
Dinamičke particije NE
Segmentacija NE
Straničenje DA
RAF.08.2008.I5.2011
Operativni sistemi
12. Koja je funkcija sledećeg dela kôda?
mov ax,pocetak
mov es,ax
cmp word [es:0],‘MZ’
je relokacija
13. Na dijagramu su prikazana stanja u kojima može da se nađe neki Unix proces. Objasnite šta
znače stanja označena sa ZOMBIE, READY MEMORY i RUN KERNEL.
intr
fork
swap_ out swap_ out swap_ in CREATED
Odgovor:
ZOMBIE: Kada proces završi sa svojim izvršavanjem, sistem oslobađa memoriju i ostale resurse
koji su mu pripadali, tako da ih mogu koristiti drugi procesi. Međutim, njegova stavka ostaje u
tabeli procesa (zato se i naziva zombi). Roditeljski proces može da pročita izlazni status potomka
upotrebom sistemskog poziva wait(), nakon čega se zombi uklanja iz tabele procesa i njegov
PID može ponovo da se koristi za neki drugi proces.
READY MEMORY: Proces koji je spreman za izršavanje i nalazi se u redu čekanja u memoriji.
RUN KERNEL: Stanje izvršenja na procesoru koji je u zaštićenom režimu rada (režimu kernela).
14. U sledećem programu obezbediti da se na standardnom izlazu uvek ispisuje string BABA.
#include <sys/types.h>
#include <stdio.h>
int main(){
pid_t pid;
pid = fork();
if (pid !=0) printf(“A”);
wait(NULL);
pid = fork();
if (pid ==0) printf(“B”);
else if (pid > 0) wait(NULL);
}
Odgovor: Program uvek ispisuje BABA, tako da ne treba menjati ništa.
RAF.08.2008.I5.2011
Operativni sistemi
15. Šta je to mikrokernel 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.
Pitanja za 5 poena
16. Imajući u vidu da PSP kod DOS datoteke tipa COM počinje od lokacije 81h, objasniti šta radi
sledeći deo koda:
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.
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:
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.I5.2011
Operativni sistemi
18. 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 640 ; 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
640KB - 512 bajtova. Bazna adresa ovog dela memorije je 9FE00h, što znači da je
njegova segmentna adresa 9FE0h, pa je i segmenta adresa funkcije main 9FE0h.
19. Pretpostavimo da se funkcije sledeće dve niti, nit_1 i nit_2, izvršavaju konkurentno, pri čemu
dele semaforske promenljive R, S i T, koje su respektivno inicijalizovane na vrednosti 1, 8000h i 0,
kao i celobrojnu 16-bitnu promenljivu x, koja je inicijalizovana na vrednost 8000h.
Da li konkurentno izvršavanje ove dve niti može da dovede obe niti u večno blokirano stanje?
Obrazložiti odgovor.
Odgovor:
Ne može. Ovo je klasično rešenje sinhronizacije, slično kao kod problema proizvođać/potrošač.
RAF.08.2008.I5.2011