Distribuirani procesi
Važne obavijesti
- Sljedeći termin za prezentacije projekata je četvrtak 17.07.2025. u 10 h preko platforme Zoom.
Link za spajanje je https://zoom.us/j/96387199555?pwd=9dvELDgIt6JgARr2w64xKYZkFNUBof.1
Mole se svi studenti da prisustvuju.
- U sklopu drugog ispitnog termina ljetog roka pisali su se ponovljeni kolokviji.
Studenti koji su sudjelovali na tom terminu dobili su svoje rezultate mailom.
- U rubrici "Projekti, kolokviji, ... " objavljeno je novo ukupno stanje bodova i ocjene.
- U istoj rubrici također se nalaze i upute u vezi prvog ispitnog termina jesenskog roka.
- Timovi koji su dovršili projekt i žele ga prezentirali neka se jave mailom nastavniku.
Osnovni podaci o kolegiju
- Predaje se na drugoj godini diplomskog studija Računarstvo i matematika.
- Predaje se jedan semestar (ljetni).
- Satnica: 2 sata predavanja i 1 sat vježbi tjedno.
- ECTS bodovi: 5.
Ciljevi kolegija
- Upoznavanje s temeljnim problemima vezanim uz rad distribuiranih procesa.
- Proučavanje distribuiranih algoritama koji rješavaju navedene temeljne probleme.
- Stjecanje vještine korištenja barem jednog alata za razvoj distribuiranih programa.
- Izrada vlastitog distribuiranog programa.
Svrha kolegija
- Ovaj predmet potreban je zato jer je on sastavni dio obrazovanja svakog softverskog inženjera.
- Naime, zbog globalne umreženosti svih vrsta računala, od današnjeg softverskog inženjera
očekuje se da razvija distribuirane aplikacije.
- Predmet je koristan zato jer softverskog inženjera osposobljava da pri razvoju distribuiranih
aplikacija koristi provjerena rješenja.
Sadržaj predavanja
- Uvod. Paralelni i distribuirani sustavi. Programi, procesi i dretve.
Programski jezik Java. Podrška za dretve u Javi.
- Distribuirano programiranje. IP adrese i imena računala.
Utičnice zasnovane na UDP protokolu. Primjer slanja i primanja datagrama.
Utičnice zasnovane na TCP protokolu.
Primjer jednostavnog poslužitelja imena.Primjer povezivanja skupa procesa.
- Modeli i satovi. Model distribuiranog sustava. Modeli distribuiranog
računanja. Jednostavni logički satovi. Vektorski satovi. Satovi neposredne ovisnosti.
Matrični satovi.
- Međusobno isključivanje. Specifikacija problema. Centralizirani algoritam.
Lamportov algoritam. Algoritam Ricarta i Agrawale. Algoritam sa žetonom koji kruži.
- Globalna snimka. Globalna snimka i modeli računanja. Algoritam Chandya i
Lamporta. Snimanje kanala na strani pošiljatelja. Studijski primjer – snimka žetona
koji kruži.
- Otkrivanje završetka rada. Difuzijsko računanje i njegov završetak.
Studijski primjer - traženje najkraćeg puta u mreži. Algoritam Dijkstre i
Scholtena. Algoritam zasnovan na žetonu.
- Uređivanje redoslijeda poruka. Uređajne relacije za poruke. Algoritam
za osiguravanje kauzalnog uređaja. Studijski primjer - chat. Algoritam za
osiguravanje sinkronog uređaja.
- Izbor vođe i još ponešto. Izbor vođe u prstenu. Izbor vođe u općenitoj
mreži. Konstrukcija razapinjućeg stabla. Računanje globalne funkcije.
- Sinkronizacija. Općenito o sinkronizaciji. Jednostavni sinkronizator.
Studijski primjer – konstrukcija BFS stabla. Sinkronizatori α i β.
- Usuglašavanje. Konsenzus u asinkronoj mreži, uz mogućnost prestanka
rada procesa. Konsenzus u sinkronoj mreži, uz mogućnost prestanka rada procesa.
Konsenzus u sinkronoj mreži, u uvjetima “bizantinskih” grešaka.
Sadržaj vježbi
- Studenti se udružuju u timove od dva do tri člana.
- Svaki tim bira jedan od ponuđenih projektnih zadataka te radi na njemu.
- Rezultati rada na projektnom zadatku su: referat u pismenom obliku,
softversko rješenje, prezentacija na seminaru.
Literatura
- Garg V.K., Concurrent and Distributed Computing in Java. Wiley – IEEE Press,
Hoboken NY, 2004.
- Fokkink W., Distributed Algorithms: An Intuitive Approach. Second Edition.
The MIT Press, Cambridge MA, 2018.
- Kshemkalyani A.D., Singal M., Distributed Computing: Principles, Algorithms and
Systems. Cambridge University Press, Cambridge, 2011.
- Raynal M., Distributed Algorithms for Message-Passing Systems. Springer,
Berlin Heidelberg, 2013.
- Raynal M., Fault-Tolerant Message-Passing Distributed Systems: An Algorithmic
Approach. Springer, Berlin Heidelberg, 2018.
- Garg V.K., Elements of Distributed Computing. Wiley – IEEE Press, New York NY,
2008.
- Tel G., Introduction to Distributed Algorithms. Second Edition. Cambridge
University Press, Cambridge, 2008.
- Lynch N.A., Distributed Algorithms. Morgan Kaufmann, San Francisco CA, 1997.
- Attiya H., Welch J., Distributed Computing: Fundamentals, Simulations, and
Advanced Topics. Second Edition. Wiley-Interscience, New York NY, 2004.
- Van Steen M., Tannenbaum A.S., Distributed Systems: Principles and Paradigms.
Third Edition. CreateSpace Independent Publishing Platform, North Charleston
SC, 2017.
- Pattamsetti R.M.R. Distributed Computing in Java 9: Leverage the Latest
Features of Java 9 for Distributed Computing. Packt Publishing, Birmingham UK,
2017.
- Ghosh S. Distributed Systems: An Algorithmic Approach. Second Edition. Chapman
and Hall/CRC, Boca Raton FL, 2020.
- Ghosh R.K., Ghosh H., Distributed Systems: Theory and Applications. IEEE Press,
Piscataway NJ, 2023.
- Sigs F. Distributed Algorithms: A Verbose Tour. Independently published, 2019.
- Santoro N. Design and Analysis of Distributed Algorithms. Wiley-Interscience,
New York, 2006.
- Burns B., Designing Distributed Systems. O’Reilly Media, 2018.
- Liu M.L., Distributed Computing: Principles and Applications. Pearson, 2019.
- Wattenhofer R., Mastering Distributed Algorithms. Independently published, 2020.
Obveze studenata, pravila ocjenjivanja
- Obveze su: sudjelovanje u nastavi, rad na projektnom zadatku, polaganje
kolokvija i ispita.
- Pravila ocjenjivanja detaljno su opisana u sljedećem dokumentu
(pdf) .
Nastavni materijali
- Skripta: R. Manger, "Distribuirani procesi"
(pdf) ,
- Web sjedište autora
Vijay K. Garg-a .
- Programi u Javi od istog autora koji se koriste na predavanjima
(zip) .
- Alati za programiranje u Javi s pripadnom
dokumentacijom na stranicama tvrtke Oracle
(download) .
- Priručnici za Javu, također na stranicama tvrtke Oracle
(tutorials) .
Projekti, kolokviji, ispiti, rezultati
- Ukupno stanje bodova i (privremene) ocjene nalaze se ovdje:
(pdf) .
Prolazne privremene ocjene za studente koji su pisali oba kolokvija i predali projekt
upisat će se u ISVU kao konačne ocjene. Ostale ocjene zasad se neće upisivati u ISVU.
Studenti koji žele da se u njihovom slučaju postupi drukčije trebaju se javiti mailom nastavniku.
- Prvi ispitni termin jesenskog roka je u petak 29.08.2025. u 10 h.
U tom ispitnom terminu studenti koji još nemaju konačnu ocjenu mogu ponovo
pisati prvi ili drugi kolokvij te na taj način popraviti svoje ukupno stanje bodova.
Da bi ostvarili tu mogućnost, studenti se moraju prijaviti na ispitni termin preko studomata.
Također, studenti trebaju poslati mail nastavniku s naznakom koji kolokvij žele ponavljati.
- Primjeri zadataka na prvom kolokviju (za one koji će ga pisati ponovo):
- prvi kolokvij iz 2024. godine
(pdf),
- prvi kolokvij iz 2023. godine
(pdf).
- Primjeri zadataka na drugom kolokviju (za one koji će ga pisati ponovo):
- drugi kolokvij iz 2024. godine
(pdf),
- drugi kolokvij iz 2023. godine
(pdf).
- Popis tema za projekte
(pdf) .
Nastavnici u akademskoj godini 2024/2025
- Predavanja i vježbe: Robert Manger. Konzultacije su utorkom 12-14 h u sobi 232.
Raspored sati u akademskoj godini 2024/2025
- Predavanja i vježbe: četvrtak 9-12 h, dvorana 005.