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

2008 Operativni sistemi – Januarski rok 2009 (ispit za 30 poena)

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

2. Posmatra se izvršavanje nekoliko neinteraktivnih poslova sa ulazno/izlaznim operacijama na paketnom


(batch) operativnom sistemu i na operativnom sistemu sa multiprogramiranjem, pod pretpostavkom
identičnih hardverskih platformi i uporednom izvršavanju na multiprogramskom sistemu. Zaoukružiti ono
što je u sledećim tvrdnjama tačno:

a. Vreme od početka do završetka izvršavanja posla kraće je na multiprogramskom sistemu.


b. Iskorišćenje procesora bolje je na multiprogramskom sistemu.
c. Propusnost sistema (broj završenih poslova u jedinici vremena, throughput) bolja je na
multiprogramskom sistemu.
d. Režijsko vreme (beskorisno za poslove) manje je na multiprogramskom sistemu.

3. Nit (thread) је:


a. Jedinica dodeljivanja resursa
b. Jedinica raspoređivanja
c. Jedinica koja vrši sinhronizaciju
d. Jedinica koja vrši serijalizaciju

4. Ukoliko se semafor inicijalizuje na pozitivnu vrednost N, to znači


a. N niti se nalazi u blokiranom stanju
b. Pitanje nema smisla jer N može da bude samo 0 ili 1
c. N niti može da se izvršava u kritičnoj sekciji
d. Semafor ne može ovako da se inicijalizuje, već isključivo mora da se koristi operacija signal()

5. Na višeprocesorskom SMP sistemu, na različitim procesorima mogu se izvršavati:


a. Korisničke niti koje se raspoređuju od strane programskih biblioteka u korisničkom prostoru (fibers)
b. Korisničke niti koje pripadaju različitim procesima
c. Korisničke niti koje raspoređuje kernel operativnog sistema
d. Niti kernela operativnog sistema
e. Dispečer i raspoređivač kernela operativnog sistema
f. Korisnički procesi

6. Da li originalni operativni sistem Windows omogućuje kreiranje procesa upotrebom funkcije fork() ?
Obrazložiti odgovor.

Odgovor: Da, u slučaju kada se koristi POSIX/INTERIX podsistem.

7. Da li je na originalnom operativnom sistemu Windows moguće montiranje sistema datoteka na


proizvoljnoj lokaciji, a ne samo na korenski direktorijum logičkih diskova?

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

9. U jednom sistemu raspoređivanje glave diska vrši se na sledeći način:


int zahtev[QUE_MAX],glava,i,n;
for(i=0,i<n;i++) glava=zahtev[i];

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.

12. Da li se problem proizvođač/potrošač može smatrati specijalnim slučajem problema čitalaca/pisaca sa


jednim piscem (proizvođačem) i jednim čitaocem (potrošačem)? Obrazložiti odgovor. (zadatak nosi 2
poena)

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.

16. Napisati putanju (path) do datoteke rezultati.doc koja se nalazi u direktorijumu


nastava/os/ispiti/januar2009 posle sledeće operacije montiranja (prvi argument je direktorijum
koji se montira, drugi je tačka montiranja – mounting point):
mount nastava/os raf/2_godina/os
Odgovor: raf/2_godina/os/ispiti/januar2009/rezultati.doc

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:

static int count = 0;


int increment(void) {
count++;
if (count > 5) {
printf(“brojac %d je dostigao vrednost > 5”, count);
return 0;
}
return 1;
}
int decrement(void) {
while (count >5) {
printf(“brojac %d je > 5:”, count);
count --;
}
if (count ==0) return 0;
else return 1;
}
Upotrebom mehanizma mutex obezbedite da ove dve funkcije budu atomske operacije. Na raspolaganju
su sinhronizacioni tip mutex i funkcije za rad sa njim: mutex_lock i mutex_unlock. (zadatak nosi
3 poena)
Odgovor:

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

You might also like