1 - 20 Flashcards

1
Q

Usporedite raspodijeljeno i centralizirano računarstvo, te navedite barem tri
primjera aktualnih raspodijeljenih računalnih sustava.

A

Centralizirano racunarstvo predstavlja obavljanje svih operacija na jednom racunalu
(jednoprocesorsko).
Raspodijeljeni sustav je skupina nezavisnih racunala, spojenih mrezom, sposobnih za suradnju
u obavljanju postavljenog zadatka. Raspodijeljeno racunarstvo je racunarstvo omoguceno na
raspodijeljenom sustavu.
Primjeri: Internet, IoT, ATM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Skicirajte programske komponente raspodijeljenog sustava, te ukratko objasnite ulogu
svake od njih.

A

Raspodijeljeni sustavi sastoje se od konkretnih, lokalnih racunalnih resursa (sustava, donji sloj)
koji su mrezno dostupni putem softvera srednjeg sloja (middleware). Aplikacijski sloj (gornji sloj)
koristi tako izlozene usluge preko definiranog sucelja. Takvo sucelje apstraktira raspodijeljenost
sustava.
IMA SLIKA.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Navedite i ukratko objasnite izazove raspodijeljenog računarstva, te navedite
svojstva idelanog raspodijeljenog sustava.

A

Izazovi:
● raznorodnost - razlike u racunalnim arhitekturama i platformama (linux, windows, java,
cpp itd)
● kasnjenje/prikrivenost (latency) - vremensko kasnjenje u razmjeni informacija izmedu
komponenata sustava i izmedu sustava i aplikacijskog sloja
● udaljena memorija vs. lokalna memorija - brze je pristupiti lokalnoj memoriji
● sinkronizacija - istovremeno medudjelovanje s minimizacijom posljedica i ocuvanjem
integriteta podataka
● djelomicni kvarovi/pogreske - prilagodba na djelomicne ispade i kvarove dijelova sustava
● potrebe za otvorenoscu (openness) - sucelja u PP trebaju biti standardizirana i dostupna
developerima za lakse popravke i dodavanje funkcionalnosti
● sigurnost (security) - odbijanje napada i zloupotrebe sustava
● nadogradivost/prosirivost (scalability) - mogucnost prosirenja opsega sustava s
minimalnim utjecajem na performanse
● transparentnost - uvijek jednak pristup podacima, bez obzira na lokaciju ili nacin
spremanja
Idealni raspodijeljeni sustav je onaj koji nadilazi navedene izazove.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Objasnite problem i rješenja transparentnosti raspodijeljenog računalnog sustava.

A

Transparentnost uvodi apstrakciju:
● pristupa - lokalni i udaljeni resursi dostupni koristenjem identicnih operacija
● polozaja - pristup resursima bez obzira na njihov fizicki ili mrezni polozaj
● istovremenosti - mnostvo procesa obavlja rad uporabom dijeljenih resursa bez ometanja
● repliciranja - uporaba visestrukih resursa s ciljem povecanja pouzdanosti i performansi
bez korisnickog saznanja o tome da su resursi dijeljeni
● pogresaka/kvarova - skrivanje pogresaka i oporavka resursa
● mobilnosti premjestanja - neometan rad unatoc premjestanju klijenata ili resursa
● performansi - rekonfiguracija sustava s ciljem poboljsanja performansi
● nadogradnje - sirenje bez promjena strukture sustava ili primjenskog programa
● perzistentnosti - skrivanje kada je resurs u memoriji ili na disku

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ukratko usporedite asinkroni i sinkroni raspodijeljeni sustav.

A

Sinkroni sustav:
● vrijeme izvodenja svakog koraka procesa ima gornju i donju granicu
● svaka poruka prenesena kanalom primljena bez poznatih ogranicenja u kasnjenju
● svaki proces ima lokalni sat ciji drift je ogranicenje s gledista rada u stvarnom vremenu
Asinkroni sustav:
● svaki korak procesa moze trajati proizvoljno dugo
● vrijeme isporuke poruka je proizvoljno
● driftovi satova su proizvoljni
U sinkronom sustavu, odstupanja u vremenu mogu posluziti za otkrivanje pogresaka. U
asinkronom sustavu, ovo je nemoguce.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Navedite barem 5 proizvoljnih i vremenskih pogrešaka u raspodijeljenom
računalnom sustavu.

A

Proizvoljne:
1. stop-pogreska (proces staje i ostaje zaustavljen, detectable)
2. ispad (isto kao stop, ali undetectable)
3. propust (poruka ne stize na drugu stranu)
4. send-omission (izvrsen send, ali poruka nije stavljena u odlazni spremnik)
5. receive-omission (poruka stavljena u dolazni spremnik, ali ju proces ne primi)
Vremenske:
1. prekoracenje drifta ogranicenja
2. prekoracenje intervala izmedu dva koraka
3. prekoracenje vremena prijenosa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Navedite osnovne ciljeve posredničkog sloja/međusloja.

A
  1. vodi racuna o raznorodnosti (kompatibilnost)
  2. podrska vise razine. Cini raspodijeljenu prirodu transparentnom prema
    korisniku/programeru
  3. prikazuje udaljene objekte, parcijalne pogreske itd.
  4. dogradivost
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Objasnite osnovna svojstva raspodijeljenih aplikacija i skicirajte postupak
pozivanja poslužitelja od strane klijenata.

A

Raspodijeljena aplikacija je ona koja se sastoji od skupa procesa koji su raspodijeljeni po mrezi
racunala i rade zajedno kao postrojenje za rjesavanje zajednickog problema.
Klijentske aplikacije pozivaju neku posluziteljsku operaciju od koje ocekuju rezultat. Server se
moze apstraktirat na nacin da klijent ne zna za podlezecu strukturu (REST API npr)
IMA SLIKA.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Skicirajte osnovne oblike organiziranja procesora i memorije u raspodijeljenim
računalnim sustavima, te oblike višeprocesorskih i višeračunalnih sustava.

A

Memorija moze biti shared (svi procesi pristupaju istoj memoriji, potrebno sinkronizirati, npr.
OpenMP) i private (svaki proces dobija svoj memorijski odjeljak, npr. OpenMPI)
Organizacija procesorskog pristupa memoriji moze biti switch ili bus based.
IMA SLIKA.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Skicirajte prema razini apstraktnosti paradigme raspodijeljenih računalnih
sustava.

A

IMA SLIKA.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Skicirajte i ukratko objasnite paradigmu izmjene poruka.

A

To je temeljna paradigma raspodijeljenih aplikacija.
1. Proces salje poruku (zahtjev)
2. Poruka je isporucena prijemniku, koji je obraduje i salje odziv
Osnovne operacije su send i receive. Ako su operacije zasnovane na spajanju (npr. sockets)
potrebno je i connect i disconnect.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Skicirajte i ukratko objasnite paradigmu klijent-poslužitelj.

A

Najpoznatija paradigma mreznih aplikacija. Dodjeljuje asimetricne uloge dvama suradnim
procesima.
● Posluziteljski proces igra ulogu davatelja usluge koji pasivno ceka na dolazak klijentskog
zahtjeva
● Na dolazak zahtjeva, obraduje ga i vraca odzivne podatke
● Pojednostavljena sinkronizacija - server ceka zahtjev, a klijent ceka odziv
IMA SLIKA

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Skicirajte i ukratko objasnite P2P raspodijeljenu paradigmu.

A

Peer-to-peer je arhitektura u kojoj se racunalni resursi i usluge izravno izmjenjuju izmedu
ravnopravnih racunalnih sustava.
U takvoj arhitekturi, racunala koja se tradicionalno koriste kao klijenti komuniciraju izravno
izmedu sebe i istovremeno imaju ulogu klijenta i posluzitelja. Primjer su torrenti, gdje su
klijentska racunala istovremeno potrosaci (downloading) i pruzatelji usluge (seeding).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Ukratko objasnite i usporedite point-to-point i publish/subscribe modele poruka.

A

Point to point:
● Sustav poruka prosljeduje poruku od posiljatelja u red poruka primatelja. Posrednicki sloj
omogucava pohranu poruka i odgodeno slanje i prijem poruka. Proces primatelj izdvaja
poruke iz svog reda poruka i rukuje sa svakom zasebno.
Publish/subscribe:
● Svakoj poruci pridruzena je odredena tema ili dogadaj. Aplikacije zainteresirane za
odredene dogadaje pretplacuju se na poruke tog dogadaja. Kada dode do takvog
dogadaja, proces objavljuje poruku pozivajuci dogadaj ili temu. Posrednicki sustav
poruka raspodjeljuje poruku svim takvim pretplatnicima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Skicirajte i ukratko objasnite poziv udaljene procedure (RPC).

A

RPC je paradigma koja omogucuje programiranje raspodijeljenih programa slicno
jednoprocesorskim. RPC zahtjeva dva nezavisna procesa koji mogu biti na odvojenim
strojevima. Kad proces A zeli poslati zahtjev procesu B, poziva preddefiniranu proceduru s
argumentima. Proces B zatim poziva proceduru s argumentom rezultata izvodenja nad
procesom A.
IMA SLIKA.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Skicirajte i ukratko objasnite poziv udaljene metode (RMI).

A

Objektno-orijentirani ekvivalent RPC. Proces poziva metode u objektima koje ostaju na remote
host. Argumenti se mogu proslijediti pozivanjem, kao i u RPC.
IMA SLIKA.

17
Q

Skicirajte i ukratko objasnite Object Request Broker (ORB) paradigmu

A

Aplikacija izdaje zahtjeve brokeru koji ih usmjerava prema odgovarajucem objektu koji
omogucuje trazenu uslugu. Paradigma je bliska RMI modelu u pristupu udaljenim objektima, ali
s dodanim meduslojem - brokerom, koji omogucuje visestruki pristup lokalnim ili udaljenim
objektima.
IMA SLIKA.

18
Q

Ukratko objasnite paradigmu prostora objekata.

A

Najveca apstrakcija OO paradigmi. Pretpostavlja postojanje logickih entiteta poznatih kao
objektni prostori. Sudionici aplikacije teze u zajednicki prostor objekata. Davatelj usluge smješta
objekte kao dijelove prostora objekata, a tražitelji pristupaju tim entitetima.
Omogućuje virtualni prostor/sobu za sastanke između davanja/zahtjevanja mrežnih objekata
IMA SLIKA.

19
Q

Objasnite prednosti i nedostatke višenitnosti u raspodijeljenim računalnim sustavima
na strani klijenta i poslužitelja, razliku između jednostavnih, nezavisnih i suradnih niti, te
primjer jednostavne implementacije višenitnosti.

A

Nedostaci niti:
● koriste isti adresni prostor, sto povecava mogucnost pogreske (race conditions i sl)
● nema podrske operacijskog sustava ili hardvera u zastiti memorije koju niti dijele
● teze debuggiranje, pisanje koda i testiranje
● tesko je upravljat concurrencyem
Prednosti klijentskih niti:
● skrivanje kasnjenja mreze - npr, dohvacanje vise datoteka. Umjesto sekvencijalno, svako
dohvacanje je jedna nit, pa sveukupno se dohvate brze
● visestruki zahtjev-odziv prema ostalim racunalima - klijent radi niz poziva istovremeno,
svaki s razlicitom niti i ceka rezultate. Ocito poboljsanje umjesto sekvencijalnog.
Prednosti posluziteljskih niti:
● poboljsanje performansi - pokretanje niti je jeftinije od pokretanja procesora. S klijentske
strane se skriva kasnjenje mreze reagirajuci na sljedeci zahtjev dok se na prethodni
odgovara (sto bi bilo nemoguce u jednonitnom nacinu)
● bolja struktura - vecina posluzitelja ima visoke I/O zahtjeve, pa se koristenjem
jednostavnih blokirajucih poziva pojednostavljuje struktura.
Jednostavne niti rade s lokalnim podacima. Nezavisne niti ne dijele podatke i njihovo izvodenje
je medusobno neovisno. Suradne niti su primjerice nit koja salje neke podatke i druga nit koja
cita poslane podatke; bez jedne niti, ova druga nema smisla.
Jednostavna implementacija visenitnosti: kreiranje Thread objekta u Javi i pokretanje
blokirajuceg network poziva u njemu.

20
Q

Objasnite izraz za paralelizam na razini niti.

A

c_i -> vrijeme u kojem se i niti izvodi istovremeno
N -> maksimalan broj niti koje se mogu izvesti istovremeno
c_o -> vrijeme u kojem se nijedna nit ne izvodi istovremeno
IMA SLIKA