Professional Documents
Culture Documents
KiDS 2008 Septembar Odgovori
KiDS 2008 Septembar Odgovori
2. 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. (zadatak nosi 3 poena)
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. Na raspolaganju je funkcija swap(int*,int*) koja atomično zamenjuje vrednosti dve memorijske
reči na adresama zadatim argumentima. Korišćenjem ove funkcije realizovati apstrakciju mutex koja
obezbeđuje uzajamno isključivanje upotrebom operacija wait() i signal(), pri čemu treba koristi
uposleno čekanje (busy waiting). (zadatak nosi 3 poena)
6. Pretpostavimo da se sledeća dva procesa, proc_1 i proc_2, izvršavaju konkurentno, pri čemu dele
semaforske promenljive S i R, od kojih je svaka prethodno inicijalizovana na vrednost 1, i celobrojnu
promenljivu x, koja je inicijalizovana na vrednost 0. (zadatak nosi 3 poena)
Da li konkurentno izvršavanje ova dva procesa može da dovede jednog od njih u večno blokirano stanje?
Obrazložiti odgovor.
Odgovor:
Može. Ukoliko proc_1() izvrši instrukciju semWait(S) a zatim proc_2() izvrši semWait(R), oba
procesa će biti blokirana kada onaj drugi izvrši svoju sledeću instrukciju. Obzirom da će tada i jedan i
drugi čekati na semSignal( ) onog drugog, nijedan od njih neće nastaviti izvršavanje.
9. U Beowulf klasteru:
a. Na svakom čvoru se izvršava zasebna kopija Linux kerela
b. Linux kernel se izvršava samo na jednom (master) čvoru
c. Koristi se distribuirana deljena memorija
d. Mreža koja povezuje čvorove mora da bude usklađena sa brzinom operativne memorije
2/4
10. Zaokruži modele posrednog softvera (Middleware-a):
a. Distribuirani sistem datoteka
b. Lokalni poziv procedure
c. Udaljeni poziv procedure
d. Distribuirana memorija
11. Posmatrajmo distribuirani sistem u kome se redosled događaja utvrđuje primenom Lamportovog
algoritma sa vremenskim žigom. Neka ovaj sistem čine računari sa oznakama 1, 2, 3 i 4. Na računar 2
pristižu poruke M1 – M4 sledećim redosledom: (M1, 1, 4) (M2, 1, 1) (M3, 2, 4) (M4, 2, 3). Napisati
pravilni vremenski redosled događaja za pristigle poruke. (zadatak nosi 2 poena)
Odgovor: M2, M1, M4, M3
13. U MQS (Message Queue Systems) modelu, postojanost (perzistentnost) obezbeđuje da:
a. Prijemna aplikacija garantovano potvđuje prijem poruke
b. Poruka garantovano bude pročitana od strane prijemne aplikacije
c. Poruka garantovano bude ubačena u red čekanja prijemne aplikacije
d. I prijemna i predajna aplikacija budu istovremeno aktivne
3/4
19. Koje razrešenje imena je opisano sa A1, A2, A3 a koje sa B1, B2, B3? Koje razrešenje imena je bolje u
situaciji prikazanoj na slici (zadatak nosi 2 poena).
A1
B1
A2
B2
Klijent
B3
A3
Odgovor:
A1, A2, A3: Rekurzivno razrešavanje imena
B1, B2, B3: Iterativno razrešavanje imena
21. Da li je globalno stanje prikazano presekom na slici dosledno ili nedosledno? Obrazložiti odgovor.
(zadatak nosi 2 poena)
Sx
M1
M4 M5
M2 Sy
M3
Sz
M6
Sw
Odgovor:
Globalno stanje jeste dosledno jer nema poruka koje počinju u budućnosti a završavaju se u prošlosti
(levo od preseka – trenutka snimanja).
4/4