Professional Documents
Culture Documents
Januar 2009 (30) - Odgovori
Januar 2009 (30) - Odgovori
Odgovori
1. Operativni sistem je:
a. Program koji kontroliše izvršenje aplikacionih programa
b. Program za upravljanje velikim bazama podataka
c. Interfejs između komunikacioh slojeva
d. Interfejs između aplikacije i hardvera
6. Da li originalni operativni sistem Windows omogućuje kreiranje procesa upotrebom funkcije fork() ?
Obrazložiti odgovor.
a. Ne
b. Da, ali samo kada je u pitanju sistem datoteka ISO 9660 (CD)
c. Da, ali samo kada je u pitanju mrežni disk
1/5
8. Koji deo memorijskog adresnog prostora se maksimalno može dodeliti kernelu operativnog sistema
Linux za DMA prenos kod arhitekture IA32?
Odgovor: prvih 16 MB
gde su: n ukupan broj zahteva u redu čekanja (pre početka obrade) ≤ QUE_MAX.
zahtev[i] i - ti zahtev u redu čekanja. Maksimalna dužina reda je QUE_MAX.
glava trenutna pozicija glave diska
Koji algoritam raspoređivanja glave diska se koristi u ovom delu programa? (zadatak nosi 2 poena)
Odgovor: FCFS
10. U sistemu datoteka FAT32, sa klasterima veličine 2KB, nalazi se datoteka veličine 8976 bajtova.
Datoteka je smeštena u sledećim klasterima: 20, 22, 30, 41, 57. Ako je veličina jednog bloka 512
bajtova, odrediti:
a) koliko blokova zauzima datoteka
b) koliko blokova koristi datoteka
c) kolika je interna fragmentacija
(zadatak nosi 3 poena)
Odgovor:
a) Datoteka zauzima 5 klastera, a to je 5 x 2048/512 = 20 blokova
b) Datoteka koristi 8976/512 = 17,53 = 18 blokova
c) Interna fragmentacija je: broj bajtova koje zauzima datoteka – broj bajtova koje koristi datoteka
= 5 x 2048 – 8976 = 1264 bajta
11. Jedan sistem ima tri procesa i četiri resursa, gde svaki resurs ima samo po jednu instancu. Svaki proces
zahteva najviše dva resursa. Da li je prisutno uzajamno blokiranje? Obrazložiti odgovor. (zadatak nosi 2
poena)
Odgovor:
Kada bi bilo prisutno uzajamno blokiranje, svaki proces bi morao da drži jedan resurs i da zahteva još
jedan koji nije dostupan. Međutim, kako sistem ima tri procesa i četiri resursa, jedan proces može da
koristi dva resursa istovremeno. Takav proces će završiti posao i osloboditi resurse, posle čega ostalim
procesima mogu da budu dodeljena po dva resursa. Prema tome, nema uzajamnog blokiranja.
Odgovor:
Ne može. Proizvođač nije samo pisac. On mora da čita pokazivače bafera kako bi utvrdio gde da upiše
narednu stavku, i mora da utvrdi da li je bafer pun. Slično, potrošač nije samo čitalac, jer mora da podesi
pokazivače bafera kako bi označio da je uklonio stavku iz bafera .
2/5
13. Koliko se ukupno procesa kreira nakon pokretanja jednog inicijalnog procesa nad sledećim programom
koji se nalazi u datoteci program.exe? (zadatak nosi 2 poena)
void main () {
pid_t pid;
for (int i=0; i<3; i++) {
pid = fork();
if (pid<0) exit(-1);
if (pid==0) exec(“program.exe”); // exec je generička funkcija
}
}
Odgovor:
Neodređeno mnogo, pošto svaki kreirani proces-potomak pokreće isti program od početka i kreira tri
svoja direktna potomka, tako da će se procesi kreirati sve dok sistem ne bude preopterećen i ne dođe do
granica svojih kapaciteta, pa prestane da kreira nove procese.
14. U sistemu sa straničnom organizacijom virtuelne memorije i virtuelna i fizička adresa su 64-bitne,
adresibilna jedinica je bajt, a virtuelni adresni prostor procesa ima 256T (tera) stranica. Koliko fizičke
memorije treba alocirati procesu da bi se u njega mogle smestiti 4 stranice? (zadatak nosi 2 poena)
Odgovor:
256T = 248, tj. za adresiranje 256T stranica potreno je 48 bitova. 64-bitna virtuelna adresa ima strukturu:
Page(48):Offset(16), pa je jedna stranica veličine 216 bajtova=64KB. Za smeštaj 4 stranice potrebno je
256KB.
15. Objasniti raspoređivanje procesa primenom povratne sprege sa više nivoa (multilevel feedback)
(zadatak nosi 2 poena)
Odgovor: Raspoređivanje se vrši na osnovu istiskivanja (po kvantu vremena), uz upotrebu mehanizma
dinamičkog prioriteta. Kada proces prvi put uđe u sistem, on se stavlja u red najvišeg prioriteta. Posle
svog prvog istiskivanja, kada se vrati u stanje spremnosti, on se stavlja u red sledećeg nižeg prioriteta. I
tako dalje, svaki sledeći put kada se istisne, on se stavlja u sledeći red nižeg prioriteta. Kratak proces će
se brzo završiti, bez mnogo kretanja daleko niz hijerarhiju redova spremnih procesa. Duži proces će se
postepeno kretati naniže.
17. Kako CPU zna da je I/O uređaj završio zadatu DMA operaciju i da je spreman za sledeću?
a. Koristi uposleno čekanje (busy waiting) ili prozivanje (polling): CPU očitava statusni registar uređaja,
ispituje bit spremnosti i ponavlja to isto sve dok bit spremnosti ne bude postavljen.
b. Koristi prenošenja poruka (messaging): Uređaj samostalno šalje poruku o tome da je završio prenos
koristeći pipes, sockets ili mailbox mehanizme.
c. Koristi mehanizam prekida (interrupt): signal sa bita spremnosti je povezan na ulaz za prekid
procesora; kada uređaj postane spreman, procesor dobija prekid i u prekidnoj rutini zadaje novu
operaciju.
d. Koristi sistemski tajmer: Nakon što istekne unapred zadato vreme, CPU je siguran da je prenos
završen tako da nema potrebe da ga uređaj o tome obaveštava.
3/5
18. Posmatrajmo sledeće funkcije (incement i decrement) koje su deljene od strane više procesa:
mutex moj_mutex;
static int count = 0;
int increment(void) {
mutex_lock(&moj_mutex);
count++;
if (count > 5) {
printf(“brojac %d je dostigao vrednost > 5”, count);
mutex_unlock(&moj_mutex);
return 0;
}
mutex_unlock(&moj_mutex);
return 1;
}
int decrement(void) {
mutex_lock(&moj_mutex);
while (count >5) {
printf(“brojac %d je > 5:”, count);
count --;
}
if (count ==0) {
mutex_unlock(&moj_mutex);
return 0;
}
else {
mutex_unlock(&moj_mutex);
return 1;
}
}
4/5
19. Potrebno je upisati nule u sve elemente matrice 128 x 128. Veličina stranice memorije je 128, a
operativni sistem dodeljuje 64 okvira celom programu.
int i, j;
int[128][128] data;
for(j=0; j<128; j++)
for(i=0; i<128; i++)
data[i][j]=0;
Matrice se čuvaju u memoriji red po red, tj. u sledećem redosledu: data[0][0],data[0][1], ...
data[0][127],data[1][0],data[1][1], ... data[127][127].
Koliko grešaka stranice će se dogoditi tokom izvršavanja ovog programa? Da li taj broj može da se
smanji, a ako je odgovor potvrdan, objasnite kako. (zadatak nosi 2 poena)
Odgovor:
Izvršenje programa će rezultirati u 16384 (tj. 128x128) grešaka stranice. Ovaj broj može da se smanji na
sledeći način:
int i, j;
int[128][128] data;
for(i=0; i<128; i++)
for(j=0; j<128; j++)
data[i][j]=0;
U ovom slučaju biće samo 128 grešaka stranice, jer se čitav red matrice nalazi unutar stranice.
5/5