9
7/24/2019 RRS_PITANJA_2015_16 http://slidepdf.com/reader/full/rrspitanja201516 1/9 RASPODIJELJENI RAČ UNALNI SUSTAVI  ISPITNA PITANJA  2015/2016.  Predavanje 1 1. Usporedite raspodijeljeno i centralizirano računarstvo, te navedite barem tri primjera raspodijeljenih računalnih sustava.  2. Skicirajte programske komponente raspodijeljenog sustava, te ukratko objasnite ulogu svake od njih. 3. Navedite i ukratko objasnite barem 5 izazova raspodijeljenog računa rstva. 4. Objasnite problem i rješenja proširivosti/nadogradivosti raspodijeljenog računalnog sustava.  5. Objasnite problem i rješenja transparentnosti raspodijeljenog računalnog sustava. 6. Ukratko usporedite asinkroni i sinkroni raspodijeljeni sustav. 7. Navedite barem 5 proizvoljnih i vremenskih pogrešaka u raspodijeljenom računalnom sustavu. 8. Navedite osnovne ciljeve posredničkog sloja. 9. Objasnite osnovna svojstva raspodijeljenih aplikacija i skicirajte postupak pozivanja poslužitelja od strane klijenata.  10.  Skicirajte osnovne oblike organiziranja procesora i memorije u raspodijeljenim računalnim sustavima, te oblike višeprocesorskih i višeračunalnih sustava.  11.  Usporedite prema stupnju transparentnosti, osnovi komuniciranja, upravljanju resursima, nadogradivosti i otvorenosti raspodijeljene, mrežne i posrednički zasnovane OS. Predavanje 2 12.  Skicirajte prema razini složenosti paradigme raspodijeljenih računalnih sus tava. 13.  Skicirajte i ukratko objasnite paradigmu izmjene poruka. 14.  Skicirajte i ukratko objasnite paradigmu klijent-poslužitelj. 15.  Skicirajte i ukratko objasnite P2P raspodijeljenu paradigmu. 16.  Ukratko objasnite i usporedite point-to-point i publish/subscribe modele poruka. 17.  Skicirajte i ukratko objasnite poziv udaljene procedure (RPC). 18.  Skicirajte i ukratko objasnite poziv udaljene metode (RMI). 19.  Skicirajte i ukratko objasnite Object Request Broker (ORB) paradigmu 20.  Ukratko objasnite paradigmu prostora objekata. 21.  Ukratko skicirajte i objasnite paradigmu mobilnih agenata. Predavanje 3 22.  Objasnite prednosti i nedostatke višenitnosti u raspodijeljenim računalnim sustavima. 23.  Ukratko navedite najbitnije detalje dizajna klijenta i detalje dizajna poslužitelja.  24.  Skicirajte spajanje klijenta na poslužitelj korištenjem daemona i korištenjem superposlužitelja. 

RRS_PITANJA_2015_16

Embed Size (px)

Citation preview

Page 1: RRS_PITANJA_2015_16

7/24/2019 RRS_PITANJA_2015_16

http://slidepdf.com/reader/full/rrspitanja201516 1/9

RASPODIJELJENI RAČUNALNI SUSTAVI ISPITNA PITANJA 

2015/2016. 

Predavanje 1 

1.  Usporedite raspodijeljeno i centralizirano računarstvo, te navedite barem tri

primjera raspodijeljenih računalnih sustava. 2.  Skicirajte programske komponente raspodijeljenog sustava, te ukratko objasnite

ulogu svake od njih.

3.  Navedite i ukratko objasnite barem 5 izazova raspodijeljenog računarstva.

4.  Objasnite problem i rješenja proširivosti/nadogradivosti raspodijeljenogračunalnog sustava. 

5.  Objasnite problem i rješenja transparentnosti raspodijeljenog računalnogsustava.

6.  Ukratko usporedite asinkroni i sinkroni raspodijeljeni sustav.

7.  Navedite barem 5 proizvoljnih i vremenskih pogrešaka u raspodijeljenomračunalnom sustavu. 

8.  Navedite osnovne ciljeve posredničkog sloja. 9.  Objasnite osnovna svojstva raspodijeljenih aplikacija i skicirajte postupak

pozivanja poslužitelja od strane klijenata. 10.  Skicirajte osnovne oblike organiziranja procesora i memorije u raspodijeljenim

računalnim sustavima, te oblike višeprocesorskih i višeračunalnih sustava. 11.  Usporedite prema stupnju transparentnosti, osnovi komuniciranja, upravljanju

resursima, nadogradivosti i otvorenosti raspodijeljene, mrežne i posredničkizasnovane OS.

Predavanje 2 

12.  Skicirajte prema razini složenosti paradigme raspodijeljenih računalnih sustava.

13.  Skicirajte i ukratko objasnite paradigmu izmjene poruka.

14.  Skicirajte i ukratko objasnite paradigmu klijent-poslužitelj. 15.  Skicirajte i ukratko objasnite P2P raspodijeljenu paradigmu.

16. 

Ukratko objasnite i usporedite point-to-point i publish/subscribe modele poruka.17.  Skicirajte i ukratko objasnite poziv udaljene procedure (RPC).

18.  Skicirajte i ukratko objasnite poziv udaljene metode (RMI).

19.  Skicirajte i ukratko objasnite Object Request Broker (ORB) paradigmu

20.  Ukratko objasnite paradigmu prostora objekata.

21.  Ukratko skicirajte i objasnite paradigmu mobilnih agenata.

Predavanje 3 

22.  Objasnite prednosti i nedostatke višenitnosti u raspodijeljenim računalnimsustavima.

23.  Ukratko navedite najbitnije detalje dizajna klijenta i detalje dizajna poslužitelja.  24.

 

Skicirajte spajanje klijenta na poslužitelj korištenjem daemona i korištenjemsuperposlužitelja. 

Page 2: RRS_PITANJA_2015_16

7/24/2019 RRS_PITANJA_2015_16

http://slidepdf.com/reader/full/rrspitanja201516 2/9

25.  Skicirajte način rada višenitnog poslužitelja organiziranog po modeludispečer/radnik. 

26.  Ukratko objasnite postupak i razloge migriranja koda.

Predavanje 4 

27. 

Navedite korake poziva udaljene procedure.

28.  Skicirajte način međudjelovanja klijenta i poslužitelja kod asinkronog RPČ-a.

29.  Skicirajte jednostavnu organizaciju udaljenog objekta s proxyjem na prijemnoj

strani.

30.  Navedite osam koraka stvaranja raspodijeljene aplikacije korištenjem RMI-ja.

31.  Ukratko objasnite pojam socketa, te programiranje socketa TCP-om, te ga

usporedite s izvedbom UDP-om.

Predavanje 5 

32.  Skicirajte izravno i T-razinsko dodjeljivanje imena u raspodijeljenim sustavima.

33. 

Ukratko objasnite hijerarhijski pristup lociranja entiteta.34.  Ukratko objasnite mobilne entitete s gledišta dodjeljivanja imena. 35.  Ukratko definirajte pojmove: LDAP, UDDI i WSDL

Predavanje 6 

36.  Skicirajte i ukratko objasnite Čristianov algoritam sinkronizacije fizičkog sata. 37.  Ukratko objasnite pojam logičkih satova u raspodijeljenim računalnim sustavima

s osvrtom na Lamportove satove.

38.  Usporedite prema bitnim pokazateljima tri algoritma međusobnog isključivanja. 39.  Objasnite i po potrebi skicirajte Bullyjev algoritam nadglasavanja.

Predavanje 7 

40.  Navedite barem 3 mehanizma koji podržavaju paradigmu raspodijeljenihobjekata.

41.  Ukratko objasnite osnove rada Java RMI arhitekture.

42.  Ukratko objasnite osnove rada CORBA sustava raspodijeljenih objekata.

Predavanje 8 

43.  Navedite na koja sve pitanja trebaju odgovoriti problemi paralelizacije.

44.  Skicirajte model raspodijeljenog računala, te objasnite osnovnu razliku izmeđugrozda i spleta računala. 

45.  Ukratko objasnite osnovne modele (paradigme) paralelnih programa.

46.  Napišite i ukratko objasnite izraz za ubrzanje prema Amdahlovom zakonu.

47.  Navedite osnovne korake pretvorbe slijednog algoritma u paralelni.

48.  Navedite i ukratko objasnite barem 2 tipa dekompozicije problema za rad na

paralelnoj platformi.

49.  Objasnite pojam funkcionalne dekompozicije problema prilikom prilagodbe

serijskog programa paralelnom izvođenju. 50.  Objasnite pojam raščlanjivanja domene problema prilikom prilagodbe serijskog

programa paralelnom izvođenju. 

51. 

Navedite osnovne značajke nakupina računala (engl. cluster), te ukratko opišitebarem 3 vrste od njih.

Page 3: RRS_PITANJA_2015_16

7/24/2019 RRS_PITANJA_2015_16

http://slidepdf.com/reader/full/rrspitanja201516 3/9

Predavanje 9 

52.  Što je OpenMP i koje su njegove 3 glavne komponente? 

53.  Navedite osnovne elemente programske okoline OpenMP-ja.

54.  Objasnite i pokažite primjer korištenja smjernice (pragma) za paraleliziranje for

petlje.55. 

Napišite i objasnite ulogu  funkcija omp_get_num_procs() i

omp_set_num_threads().

56.  Navedite opcije (klauzule) smjernice definiranja vidljivosti varijabli i pokažiteprimjer uporabe private.

57.  Objasnite mogućnosti redukcije (reduce) u OpenMP-ju i pokažite primjer

korištenja iste.

58.  Objasnite mogućnosti i opcije raspoređivanja u OpenMP-ju.

59.  Objasnite i na primjeru pokažite uporabu smjernica parallel, for, single, nowait isections.

60.  Koja su 2 glavna pristupa paralelizmu pomoću OpenMP-ja?

61. 

Koja je razlika između zajedničkih i privatnih varijabli OpenMP smjernica?  62.  Navedite i ukratko objasnite 3 temeljne funkcije OpenMP okruženja. 

Predavanje 10 

63.  Objasnite pojam spleta računala (engl. grid) kroz postojeće definicije, te navedite

barem 4 oblika upotrebe takvih sustava.

64.  Skicirajte slojeve građe spleta računala i njegovih posredničkih slojeva. 65.  Navedite i ukratko objasnite barem 4 usluge spleta računala. 66.  Usporedite potencijal spleta računala sa strane njegovih potrošača i davatelja

usluga.67.  Opišite što je Grid Service Broker (GSB) i navedite njegove glavne mogućnosti. 68.  Navedite barem 3 primjera spleta računala u primjeni i ukratko ih opišite. 

Predavanje 11 

69.  Opišite osnovna načela oblaka računala (engl. cloud computing).

70.  Opisno usporedite (ili skicirajte) oblak računala s ostalim  računalnimtehnologijama slične namjene. 

71.  Navedite i ukratko objasnite osnovne modele isporuke oblaka računala. 72.  Navedite barem 7 usluga koje može ponuditi oblak računala. 

73. 

Što mora ispunjavati oblak računala da bi se mogao nametnuti kao optimalanizbor mogućem korisniku? 

74.  Skicirajte građu Google App Engine-a i objasnite njegovu ulogu.

75.  Što je Microsoft Windows Azure, čemu služi i koji su alati potrebni krajnjemkorisniku za njegovu upotrebu?

76.  Usporedite Amazon, Microsoft i Google po pitanju svojstava njihovih PaaS usluga.

Predavanje 12 

77.  Ukratko objasnite višeslojnu arhitekturu na webu zasnovanih sustava i skicirajtenačin korištenja ČGI programa na poslužiteljskoj strani. 

78.  Skicirajte HTTP načina spajanja i objasnite HTTP metode.

79. 

Objasnite SOAP protokol i njegovo korištenje. 

Page 4: RRS_PITANJA_2015_16

7/24/2019 RRS_PITANJA_2015_16

http://slidepdf.com/reader/full/rrspitanja201516 4/9

80.  Objasnite osnove načina rada i načela REST (engl. Representational State

Transfer) arhitekture.

81.  Skicirajte i objasnite skalabilnu sadržajno osviještenu (engl. content-aware)

nakupinu web poslužitelja. 

Predavanje 13 

82.  Opišite probleme postojećih računala visokih performansi sa stajališta potrošnjeenergije.

83.  Navedite i opišite principe uštede energije procesora i radne memorije. 84.  Opišite virtualizaciju sa stajališta zelenog računalstva. 85.  Navedite energetski učinkovite tehnologije prema slojevima primjene. 

Predavanje 14 

86.  Definirajte pojam velikih skupova podataka (engl. Big Data), te navedite i ukratko

objasnite tri glavna izazova u tom području. 87.

 

Ukratko objasnite proces ETL i njegove zadaće. 88.  Ukratko opišite sustav Hadoop, te njegove glavne dijelove. 89.  Ukratko opišite način rada i navedite osnovne funkcije programskog modela

MapReduce.

90.  Ukratko objasnite ulogu i mogućnosti aplikacije Hive i sustava Pig. 

LV i predavanja 8 i 991.  Navedite barem tri primjera raspodijeljenih računalnih sustava, te ukratko

objasnite što ih čini raspodijeljenima. 92.  Navedite željena svojstva kod stvaranja paralelnih programa. 

93. 

Navedite četiri faze razvoja paralelnog algoritma. 94.  Navedite podjelu međuprocesne komunikacije na cjeline po nekoliko osnova.

95.  Navedite datoteke zaglavlja koje moraju biti uključene u programskom kodu koji

koristi biblioteku MPI te u programskom kodu koji koristi biblioteku OpenMP.

96.  Napišite i ukratko objasnite dvije  osnovne funkcije koje se moraju nalaziti u

svakom MPI programu u kojem će se koristiti MPI pozivi.97.  Navedite 5 tipova podataka MPI Č++ okruženja. 98.  Napišite i ukratko objasnite funkcije slanja i prijema poruka blokirajuće MPI

komunikacije od točke do točke, te njihove parametre.

99.  Napišite i ukratko objasnite funkcije slanja i prijema poruka   komunikacije od

točke do točke bez blokiranja, te njihove parametre.100.  Koje su prednosti i nedostaci MPI komunikacije bez blokiranja u odnosu na

blokirajuću MPI komunikaciju? 

101.  Navedite i ukratko objasnite osnovne tipove kolektivne međuprocesne 

komunikacije.

102.  Napišite i ukratko objasnite funkciju za razašiljanje  (odašiljanje)  poruke svim

procesima, te njezine parametre.

103.  Napišite i objasnite funkciju za postizanje sinkronizacije na barijeri.

104.  Napišite i objasnite funkciju redukcije, te njezine parametre. 105.  Pretpostavite da imate MPI kôd u programskom jeziku C++, datoteka je naziva

kod.cpp. Objasnite postupak pokretanja tog programa u MPI okruženju Linuxtemeljenog OS-a, na 4 procesa. Kako biste pokrenuli program na samo 2 procesa?

Page 5: RRS_PITANJA_2015_16

7/24/2019 RRS_PITANJA_2015_16

http://slidepdf.com/reader/full/rrspitanja201516 5/9

106.  Opišite općenitu strukturu MPI C++ programa.

107.  Objasnite pojam komunikatora unutar MPI okruženja. 108.  Kojom MPI funkcijom ćete dohvatiti broj procesa na kojima je program pokrenut?

109.  Kojom MPI funkcijom ćete dohvatit i rang procesa na kojem se izvršava kod?

110. 

Što će se dogoditi prilikom izvođenja sljedećeg koda na 3 procesa?

#include <iostream>#include <mpi.h>

using namespace std;

int main (int argc, char* argv[]) {

int rang, velicina;

MPI::Init(argc, argv);rang = MPI::COMM_WORLD.Get_rank();

velicina = MPI::COMM_WORLD.Get_size();

for (int i=0; i<rang; i++) {cout << "Procesor " << rang << " od " << velicina

<< ": Hello World!\n";}

MPI::Finalize();}

111.  Što će se točno dogoditi nakon pokretanja sljedećeg koda na 2 procesa?

. . .

if( mojrang == 0 ){MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);

}else if( mojrang == 1 ){MPI::COMM_WORLD.Recv(b, 100, MPI::DOUBLE, 0, 17, status);

}

. . .

112. 

Pretpostavite MPI program koji se izvodi kroz 4 procesa. Jedan proces trebaposlati vektor od 50 elemenata svim ostalim procesima koristeći blokirajućupoint-to-point komunikaciju. Napišite dio koda koji je potreban da bi se obavila

navedena radnja (slanje i primanje).

113.  Kako biste preuredili slijedeći kôd da proces 1 šalje ostalim procesima (može ihbiti više) 50 elemenata vektora b? 

. . .

if( mojrang == 0 ){MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);

}else if( mojrang == 1 )

Page 6: RRS_PITANJA_2015_16

7/24/2019 RRS_PITANJA_2015_16

http://slidepdf.com/reader/full/rrspitanja201516 6/9

  {MPI::COMM_WORLD.Recv(b, 100, MPI::DOUBLE, 0, 17, status);

}

. . .

114. 

Ukratko opišite mehanizam slanja i primanja poruka u MPI okruženju (što sedogađa s porukom prilikom slanja i primanja). 

115.  Kako biste preuredili navedeni kôd da ne dođe do zastoja?

. . .

if( rang == 0 ) {MPI::COMM_WORLD.Recv(b, 100, MPI::DOUBLE, 1, 19, status);MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);

}else if( rang == 1 ){MPI::COMM_WORLD.Recv(b, 100, MPI::DOUBLE, 0, 17, status);MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 0, 19);

}

. . .

116.  Što će se dogoditi pri pokretanju sljedećeg dijela koda, i zašto, ako nigdje u koduprije i poslije nema poziva funkcije MPI::Comm.Recv?

. . .

if( rang == 0 ) {MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);

}else if( rang == 1 ){

MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 0, 19);}

. . .

117.  Objasnite ulogu upravitelja zahtjeva (engl. Request Handle) kod point-to-point

komunikacije bez blokiranja, te način njegove upotrebe.

118.  Navedite i objasnite dvije funkcije koje omogućuju provjeru  završetka

komunikacije bez blokiranja, te opišite primjer korištenja za svaku .

119.  Detaljno objasnite što će se dogoditi prilikom izvođenja sljedećeg programskog

koda

. . .

if( rang == 0 ) {zahtjev1 = MPI::COMM_WORLD.Irecv(b, 100, MPI::DOUBLE, 1, 19);MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);zahtjev1.Wait(status);

}else if(rang == 1 ) {zahtjev2 = MPI::COMM_WORLD.Irecv(b, 100, MPI::DOUBLE, 0, 17);MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 0, 19);zahtjev2.Wait(status);

}

. . .

Page 7: RRS_PITANJA_2015_16

7/24/2019 RRS_PITANJA_2015_16

http://slidepdf.com/reader/full/rrspitanja201516 7/9

 

120.  Koje su razlike između kolektivne međuprocesne komunikacije i point -to-point

komunikacije?

121.  Koje izmjene je potrebno napraviti u sljedećem kodu, kako bi ga bilo  moguće

izvesti na 10 procesa? Objasniti.. . .

MPI::Init(argc, argv);rang = MPI::COMM_WORLD.Get_rank();if(rang==5) param=23.0;MPI::COMM_WORLD.Bcast(&param, 1, MPI::DOUBLE, 5);

. . .

122.  Kako biste izmijenili navedeni kod na način da svi procesi istovremeno pozivaju

funkciju Bcast?

. . .

if(rang==matProc) cout << „Maticni proces: “ << rang;

MPI::COMM_WORLD.Bcast(&param, 1, MPI::DOUBLE, matProc);

cout << "P:" << rang << „, “ << param << endl; MPI::Finalize();return 0;

}

123. 

Navedeni kod nije ispravan, kako biste ga izmijenili da izbjegnete grešku? . . .

if(rang==matProc)MPI::COMM_WORLD.Bcast(&temp, 1, MPI::DOUBLE, matProc);

else MPI::COMM_WORLD.Bcast(&temp, 0, MPI::DOUBLE, matProc);

. . .

124.  Opišite što će se dogoditi nakon pokretanja navedenog isječka programskog 

koda, te objasnite postoji li kakvo ograničenje na broj procesa na kojima se

može pokrenuti navedeni kod. 

. . .

matProc = 4;izvor = rang+1;cout << "P" << rang << ": izvorisni podatak = " << izvor << endl;

MPI::COMM_WORLD.Reduce(&izvor, &rezultat, 1, MPI::INT, MPI::PROD,matProc);

if(rang==matProc)cout << "P" << rang << ": rezultat = " << rezultat << endl;

MPI::Finalize();return 0;

}

Page 8: RRS_PITANJA_2015_16

7/24/2019 RRS_PITANJA_2015_16

http://slidepdf.com/reader/full/rrspitanja201516 8/9

 

125.  Kako biste paralelizirali navedeni kod pomoću OpenMP-ja?

. . .

for(i=0; i<dim; i++) {for(j=0; j<dim; j++) {

for(k=0; k<dim; k++) {matrix3[i][j]+=matrix1[i][k]*matrix2[k][j];

}}

}

. . .

126.  Koje izmjene je potrebno napraviti u sljedećem programskom kodu kako bi

paralelni dio (dio unutar smjernice parallel) izvršavala samo nit ranga 4? Na

koliko se minimalno niti mora pokrenuti navedeni kod kako bi takva izmjena

imala smisla?

. . .

#pragma omp parallel{

cout << „Rezultat proracuna niti 4 jest: “ << rez << endl; }

. . .

127.  Što će i kako ispisivati navedeni dio programskog koda, ako je paralelni dio

izvršen na 3 programske niti? Napomena: vrijednost varijable x nije bitna.

. . .

#pragma omp parallel for private(x) ordered{

for(i=0; i<sizeA; i++) {x = workerFunction(i);#pragma omp ordered {

cout << i << " " << j << x << endl;}

}}

. . .

128.  Kolika će biti vrijednost varijable br neposredno prije izlaska iz paralelnog

dijela koda (prije uništavanja niti), ako u paralelnom izvođenju sudjeluju 2 niti? 

. . .

int br = 4;#pragma omp parallel for firstprivate(br)

for(i=1; i<=5; i++){br += i;

}

Page 9: RRS_PITANJA_2015_16

7/24/2019 RRS_PITANJA_2015_16

http://slidepdf.com/reader/full/rrspitanja201516 9/9

 . . .

129.  Kolika će biti vrijednost varijable br neposredno nakon izlaska iz paralelnog

dijela koda (nakon uništavanja niti), ako u paralelnom izvođenju sudjeluju 4programske niti?

. . .

#pragma omp parallel for lastprivate(br)for(i=1; i<=5; i++){

br = i;}

. . .

130. 

Da li navedeni dio koda sadrži podatkovnu zavisnost, tj. uvjete utrkivanja (engl.race conditions)? Objasnite.

. . .

int i, j;#pragma omp parallel for private(x){

for(i=0; i<width; i++) {for(j=0; j<height; j++) {

x = workerFunction(i, j);}

}}

. . .

prof.dr.sc. Goran Martinović 

dr.sc. Zdravko Krpić