1 - 20 Flashcards
Usporedite raspodijeljeno i centralizirano računarstvo, te navedite barem tri
primjera aktualnih raspodijeljenih računalnih sustava.
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
Skicirajte programske komponente raspodijeljenog sustava, te ukratko objasnite ulogu
svake od njih.
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.
Navedite i ukratko objasnite izazove raspodijeljenog računarstva, te navedite
svojstva idelanog raspodijeljenog sustava.
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.
Objasnite problem i rješenja transparentnosti raspodijeljenog računalnog sustava.
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
Ukratko usporedite asinkroni i sinkroni raspodijeljeni sustav.
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.
Navedite barem 5 proizvoljnih i vremenskih pogrešaka u raspodijeljenom
računalnom sustavu.
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
Navedite osnovne ciljeve posredničkog sloja/međusloja.
- vodi racuna o raznorodnosti (kompatibilnost)
- podrska vise razine. Cini raspodijeljenu prirodu transparentnom prema
korisniku/programeru - prikazuje udaljene objekte, parcijalne pogreske itd.
- dogradivost
Objasnite osnovna svojstva raspodijeljenih aplikacija i skicirajte postupak
pozivanja poslužitelja od strane klijenata.
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.
Skicirajte osnovne oblike organiziranja procesora i memorije u raspodijeljenim
računalnim sustavima, te oblike višeprocesorskih i višeračunalnih sustava.
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.
Skicirajte prema razini apstraktnosti paradigme raspodijeljenih računalnih
sustava.
IMA SLIKA.
Skicirajte i ukratko objasnite paradigmu izmjene poruka.
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.
Skicirajte i ukratko objasnite paradigmu klijent-poslužitelj.
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
Skicirajte i ukratko objasnite P2P raspodijeljenu paradigmu.
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).
Ukratko objasnite i usporedite point-to-point i publish/subscribe modele poruka.
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.
Skicirajte i ukratko objasnite poziv udaljene procedure (RPC).
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.