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

2008 Operativni sistemi - April 2008 (ispit za 100 poena)

Odgovori

1. Šta će biti rezultat izvršavanja sledećeg programa:


#include <sys/types.h>
#include <stdio.h>
int main(){
pid_t pid;
pid = fork();
if (pid ==0) {
printf(“A”);
fflush(stdout);
printf(“D”);
fork();
printf(“B”);
}
else if (pid > 0){
wait(NULL);
printf(“C”);
}
}

Odgovor: ADBDBC

2. U sistemu postoje četiri procesa, P1, P2, P3 i P4, i po dve instance dva tipa resursa R1 i R2. Odigrao se
sledeći scenario: P4 traži jednu instancu R2, P3 traži jednu instancu R1, P1 traži jednu instancu R2, P2 traži
jednu instancu R1, P3 traži jednu instancu R2, P1 traži jednu instancu R1. Posmatra se trenutak nakon
ovog scenarija.

Nacrtati graf dodeljivanja resursa u ovom trenutku. Da li u sistemu u datom trenutku postoji uzajamno
blokiranje (deadlock)? Precizno obrazložiti odgovor.

P2 Svi procesi traže instance resursa, ali ih


R1 nijedan proces ne drži. Uzajamno blokiranje
ne postoji, a dodeljivanje resursa može da
zavisi od politike raspoređivača.

P1 P3

R2

P4

3. Unix indeksni čvor sadrži 12 direktnih pokazivača, 1 indirektni, 1 dvostruki indirektni i 1 trostruki indirektni
pokazivač. Pretpostavka je da svaki 32-bitni pokazivač pokazuje na jedan blok od 8KB. Kolika je veličina
datoteke koju podržava ovakav indeksni čvor?
Odgovor:
12 x (1 blok) + 1 x (2k pokazivača) x (1 blok) + 1 x (2k) x (2k) x (1 blok) + 1 x (2k) x (2k) x (2k) x (1 blok)
= 12 x 8kB + 2k x 8kB + 4M x 8kB + 8G x 8kB = 96KB + 16MB + 32GB + 64TB ≈ 64TB.

1/3
4. Data je tabela memorijskih segmenata:
Segment Početna adresa Dužina Koja fizička adresa odgovara logičkoj adresi 2,100?
0 219 600
1 2300 14
Odgovor: 190
2 90 101
3 1327 58
4 1952 96

5. U redu zahteva za pristup disku nalaze se zahtevi za pristup sledećim cilindrima (po redosledu
pristizanja): 56, 37, 89, 124, 64, 35, 45. Prethodno opsluženi zahtev bio je na cilindru 50, a glava se
kreće prema cilindrima sa većim brojevima. Napisati redosled opsluživanja ovih zahteva ukoliko je
algoritam raspoređivanja:
a) Look
Odgovor: 56, 64, 89, 124, 45, 37, 35

b) C-Look
Odgovor: 56, 64, 89, 124, 35, 37, 45

6. Četiri procesa su u trenutku t=0 ušla u red čekanja na procesor po sledećem redosledu: P1, P2, P3, P4.
Vremena izvršavanja (burst time) za ova četiri procesa iznose: 6, 3, 1 i 7 vremenskih jedinica. Ukoliko se
procesi raspoređuju prema algoritmu Round Robin sa kvantumom 3, popuniti sledeći Gantov dijagram
dodele procesora:

P1 P1 P1 P2 P2 P2 P3 P4 P4 P4 P1 P1 P1 P4 P4 P4 P4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

7. Objasniti raspoređivanje procesa primenom metode virtuelnog kružnog dodeljivanja.


U odnosu na klasični mehanizam kružnog dodeljivanja (Round Robin) uvodi se pomoćni FCFS red
čekanja, koji ima prioritet u odnosu na glavni red spremnih procesa.
Kada se proces rasporedi iz pomoćnog reda, on se izvršava u vremenu koje nije duže od osnovnog
vremenskog kvanta umanjenog za ukupno vreme provedeno u izvršavanju od kada je poslednji put
izabran iz glavnog reda spremnih procesa.

8. Za dodeljivanje memorije u kernelu operativnog sistema primenjuje se partnerski binarni sistem (Binary
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 izvršavanja zahteva za dodeljivanjem memorije veličine 1 stranice.
4 2 2 4 4

Odgovor:

4 1 1 2 4 4

2/3
9. Posmatra se disk sa 8 sektora po traci i 512 bajtova po sektoru. Disk rotira brzinom od 3000 obrtaja u
minuti a vreme pozicioniranja (seek time) je 15 ms. Na disku se nalazi datoteka koja zauzima 8 blokova.
Izračunati ukupno vreme pristupa datoteci ukoliko je upotrebljeno:
a) dodeljivanje kontinualnog prostora
b) indeksirano dodeljivanje

Odgovor:

3000/60 = 50 obrtaja u sekundi ⇒ 1 obrtaj za 20 ms. Prosečno rotaciono kašnjenje = 10 ms.

Vreme prenosa (a) = broj bajtova koji se prenose/(broj bajtova na stazi * 50 obrtaja u sekundi) =
= 4096/(4096 * 1/50)) = 20 ms
Vreme prenosa (b) = broj bajtova koji se prenose/(broj bajtova na stazi * 50 obrtaja u sekundi) =
= 512/(4096 * 1/50)) = 2,5 ms

a) Ukupno vreme = Vreme pozicioniranja + Rotaciono kašnjenje + Vreme prenosa =


=15 ms + 10 ms + 20 ms = 45 ms

b) Ukupno vreme = 8 x (Vreme pozicioniranja + Rotaciono kašnjenje + Vreme prenosa) =


= 8 x (15 ms + 10 ms + 2,5 ms) = 220 ms

10. Procesi Alarm i Passengers prikazani dole treba da se sinhronizuju na sledeći način. Proces
Passengers signalizira ulazak i izlazak putnika iz neke obezbeđene zone. Proces Alarm treba da
čeka blokiran sve dok broj putnika koji su trenutno u obezbeđenoj zoni ne pređe neki prag THRESHOLD.
Tada treba da se deblokira i uključi alarm pozivom operacije alert. Realizovati monitor Posmatrac
koji obezbeđuje opisanu sinhronizaciju pomoću klasičnih uslovnih promenljivih.
process Alarm() process Passengers()
{ {
while (1) { while (1) {
signal(); entry();
alert(); exit();
} }
} }

Odgovor:
monitor Posmatrac {
int integer;
condition threshold;

void signal() {
while (count <= THRESHOLD) cwait(threshold);
}

void entry() {
if (++count > THRESHOLD) signal(threshold);
}

void exit { count--;}

void init { count=0;}


}

3/3

You might also like