You are on page 1of 4

8015.

Konkurentni i distribuirani sistemi - Septembar 2008


(ispit za 30 poena) Odgovori
1. Brojačkom semaforu može se dodeliti inicijalna negativna vrednost N :
a. Ako je potrebno naznačiti da N procesa čeka u stanju mrtve petlje (busy waiting)
b. Ako je potrebno naznačiti da N procesa čeka u blokiranom stanju
c. Ako je potrebno naznačiti da N resursa je trenutno zauzeto
d. Pitanje nema smisla jer brojački semafori mogu da se inicijalizuju samo na vrednosti ≥ 0.

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)

typedef int mutex;


extern void swap(int*, int*);

void wait (int* lock) {


int acquired;
for (acquired=0; !acquired;) swap(&acquired,lock);
}

void signal (int* lock) {*lock=1;}


Primer upotrebe:
int main(void) {
mutex m;
wait(&m);
signal(&m);
return 0;
}
4. Distribuirani objekti poseduju:
a. Distribuirani proxy
b. Distribuirani skeleton
c. Distribuirani interfejs
d. Distribuirane metode
e. Distribuirana stanja (podatke)

5. Transparentnost distribuiranog sistema u odnosu na postojanost (perzistentnost) znači:


a. Sakrivene su razlike u predstavljanju podataka i pristupu resursima
b. Sakrivena je lokacija resursa
c. Resurs može da menja lokaciju, ali je to sakriveno
d. Resurs može da menja lokaciju tokom upotrebe, ali je to sakriveno
e. Nije vidljivo da li je softverski resurs u memoriji ili na disku

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)

/* Proces broj 1 */ /* Proces broj 2 */


void proc_1( ) { void proc_2( ) {
do { do {
semWait(S); semWait(R);
semWait(R); semWait(S);
x++; x--;
semSignal(S); semSignal(S);
SemSignal(R); SemSignal(R);
} while (1); } while (1);
} }

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.

7. Mrežni operativni sistem je:


a. Slabo spregnuti operativni sistem za heterogene multiračunare
b. Dodatni sloj iznad mrežnog operativnog sistema koji pruža usluge opšte namene
c. Čvrsto spregnuti operativni sistem za multiprocesore i homogene multiračunare

8. Kod simetrične multiprocesorke obrade (SMP):


a. kernel može istovremeno da se izvršava na bilo kom broju procesora
b. kernel mora da se izvršava samo na jednom procesoru
c. jedan kernel može distribuirano da se izvršava na više procesora

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

12. MPI (Message Passing Interface) је primer komunikacije koja je:


a. Tranzijentna
b. Zasnovana na porukama
c. Postojana (perzistentna)
d. Zasnovana na RPC

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

14. Lociranje entiteta u distribuiranom sistemu može se izvršiti upotrebom:


a. Metode prosleđivanja pointera
b. Metode prosleđivanja vrednosti
c. Metode matične lokacije
d. Metode centralizovanog repozitorijuma

15. Redosled događaja kod distribuiranih sistema određuje se na osnovu:


a. Centralizovanog sistemskog časovnika
b. Sistemskog časovnika sinhronizovanog upotrebom Berkli algoritma
c. Upotrebom vremeskih pečata (Time Stamps)
d. Numeričkih oznaka (ID-ova) računara

16. U algoritmu wait-die:


a. Starija transakcija čeka na završetak mlađe transakcije
b. Mlađa trasakcija čeka
c. Mlađa trasakcija se ubija i ponovo restartuje
d. Starija transakcija nikada ne čeka na završetak mlađe transakcije

17. Koja vrsta transakcija dozvoljava izvođenje deo po deo:


a. Ugnježdene (nested) transakcije
b. Hijerarhijske transakcije
c. ACID transakcije
d. Ravne (flat) transakcije

18. Šta je od navedenog protokol za pristup distribuiranom direktorijumskom servisu:


a. NTFS
b. X.500 DAP
c. LDAP
d. FTP

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

Odredišni web server: www.cs.vu.nl


Komunikacija na velikom rastojanju

Odgovor:
A1, A2, A3: Rekurzivno razrešavanje imena
B1, B2, B3: Iterativno razrešavanje imena

U navedenom primeru, bolje rešenje je rekurzivno razrešavanje, da bi se izbeglo višestruko slanje


paketa na velikom rastojanju.

20. Šta od nevedenog predstavlja mehanizam distribuirane serijalizacije:


a. Zaključavanje u dve faze (Two-Phase Locking)
b. Sprovođenje u dve faze (Two-Phase Commit)
c. Sprovođenje u tri faze (Three-Phase Commit)
d. Striktno zaključavanje u dve faze (Strict Two-phase Locking)

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

You might also like