DISTRIBUIRANI SUSTAVI¶
Web stranice predmeta: https://lab.miletic.net/hr/nastava/kolegiji/DS/ https://moodle.srce.hr/2020-2021/
ECTS bodovi: 6 (5)
Nastavno opterećenje: 2 + 2
Nositelj predmeta:
izv. prof. dr. sc. Božidar Kovačić
Asistent:
v. pred. dr. sc. Vedran Miletić
DISTRIBUIRANI SUSTAVI¶
Razvijanje općih i specifičnih kompetencija (znanja i vještina)¶
upoznavanje studenata sa distribuiranim sustavima i usvajanje osnovnih pojmova distribuiranih operacijskih sustava: komunikacija i sinkronizacija, upravljanje podacima, sigurnost i zaštita
Korespodentnost i korelativnost programa¶
Sadržaj predmeta naslanja se na kolegij Operacijski sustavi 2 preddiplomskog studija informatike te na kolegije koji se odnose na građu računala i računalne mreže. Formalnih preduvjeta za upis predmeta nema.
Okvirni sadržaj predmeta¶
Distribuirani sustavi: definicija, sotverski i hardverski koncepti. Klijent-server modeli.
Komunikacija u distribuiranim sustavima: poziv procedure na daljinu, objekti, komunikacija porukama.
Procesi: izvođenje na klijentu i serveru, migracija koda, softverski agenti.
Imenovanje: imenovanje entiteta, lociranje mobilnih entiteta.
Sinkronizacija: sinkronizacija sata, algoritmi za odabir, mutual exclusion, distribuirane transakcije.
Konzistentnost i replike: distribuirani protokoli, protokoli konzistentnosti.
Opravak u slučaju grešaka: pouzdanost klijent-server komunikacije, pouzdanost komunikacije u grupi, oporavak.
Oblici provođenja nastave i način provjere znanja¶
Predavanja, vježbe, samostalni zadaci, konzultacije.
Popis literature potrebne za studij i polaganje ispita¶
Tanenbaum A. & Steen, M. V. Distributed Systems: Principles and Paradigms (2nd Edition). (Prentice Hall, 2006).
MPI for Python documentation. Dostupno na: https://mpi4py.readthedocs.io/
PyZMQ documentation. Dostupno na: https://pyzmq.readthedocs.io/
Skripte, prezentacije i ostali materijali za učenje dostupni u e-kolegiju.
Popis literature koja se preporučuje kao dopunska¶
Coulouris G., Dollimore J. & Tim Kindberg T. Distributed Systems: Concepts and Design (5th Edition). (Addison-Wesley, 2011).
Tanenbaum A. & Woodhull A. Distributed Operating Systems. (Prentice Hall, 2004).
Silberschatz A. & Galvin P. B. Operating System Concepts. (Addison Wesley, 1989).
Open MPI documentation: https://www.open-mpi.org/doc/
MPI Documents. Dostupno na: https://www.mpi-forum.org/docs/
ZeroMQ - The Guide. Dostupno na: http://zguide.zeromq.org/
Način praćenja kvalitete i uspješnosti izvedbe predmeta¶
Kroz ustrojeni sustav osiguranja kvalitete Odjela za informatiku.
Mogućnost izvođenja na stranom jeziku¶
Nema.
R . BR. |
OČEKIVANI ISHODI |
---|---|
1. |
definirati pojam distribuiranih sustava u kontekstu klijent server modela |
2. |
opisati izvođenje poziva procedure na daljinu, uporabu objekata i poruka za potrebe komunikacije u distribuiranim sustavima |
3. |
objasniti izvođenje procesa u distribuiranim sustavima |
4. |
argumentirano opisati izvođenje sinkronizacije u distribuiranim sustavima: sinkronizacije sata, algoritmi za odabir, mutual exclusion, distribuirane transakcije |
5. |
argumentirano analizirati problematiku primjene replika i konzistentnosti podataka u distribuiranim sustavima |
6. |
opisati implementaciju pouzdanosti i oporavka distribuiranih sustava u slučaju pogreške |
7. |
definirati pojam i načine implementacije sigurnosti u distribuiranim sustavima |
AKTIVNOSTI I OCJENJIVANJE STUDENATA¶
VRSTA AKTIVNOSTI |
ECTS |
ISHODI UČENJA |
SPECIFIČNA AKTIVNOST |
METODA PROCJENJIVANJA |
BODOVI MAX. |
---|---|---|---|---|---|
Pohađanje nastave |
1 |
1–7 |
Prisutnost studenata |
Popisivanje (evidencija) |
0 |
Pisani ispit |
2 |
1–7 |
Dva kolokvija |
0–20 bodova za svaki kolokvij, ovisno o stupnju točnosti i potpunosti |
40 |
Kontinuirana provjera znanja |
1 |
2–4 |
Dvije kontrolne zadaće |
20 bodova za prvu kontrolnu zadaću i 10 bodova za drugu kontrolnu zadaću, ovisno o stupnju točnosti i potpunosti |
30 |
Završni ispit |
2 (1) |
2–4 |
Dizajn, implementacija i prezentacija distribuiranog algoritma |
30 bodova prema definiranim kriterijima |
30 |
UKUPNO |
6 (5) |
100 |
Obveze i vrednovanje studenata¶
Pohađanje nastave¶
Nastava se odvija prema mješovitom modelu u kombinaciji klasične nastave u učionici i online nastave uz pomoć sustava za e-učenje Merlin (https://moodle.srce.hr/2020-2021/).
Pisani ispit¶
Tijekom semestra pisat će se dva kolokvija koji će uključivati pitanja iz gradiva predavanja i na svakom od njih student će moći skupiti maksimalno 20 bodova.
Kontinuirana provjera znanja¶
Tijekom semestra pisat će se dvije kontrolne zadaće koje će uključivati praktične zadatke iz gradiva vježbi i na prvoj od njih student će moći skupiti maksimalno 20 bodova, a na drugoj maksimalno 10 bodova.
Završni ispit¶
Tijekom semestra studenti će u grupama po dvoje ili troje odabrati projekt koji će izraditi i predati neposredno prije ispitnog roka, a zatim na završnom ispitu obraniti usmenim putem. Projekt se sastoji se od izrade programskog koda koji rješava određeni problem korištenjem distribuiranog algoritma i pripadne dokumentacije. Vrednovat će se točnost i potpunost predanog programskog koda i pripadne dokumentacije te opis načina rješavanja danog problema. Da bi student mogao pristupiti usmenoj obrani projekta, mora barem jednom doći na konzultacije s djelomično izrađenim projektom.
Ocjena iz kolegija¶
Završni ispit¶
Kontinuiranim radom tijekom semestra na prethodno opisani način studenti mogu ostvariti najviše 70 ocjenskih bodova, a da bi mogli pristupiti završnom ispitu moraju ostvarili 50% i više bodova (minimalno 35).
Studenti koji su skupili najmanje 35 ocjenskih bodova, mogu pristupiti završnom ispitu.
Završni ispit nosi udio od maksimalno 30 ocjenskih bodova, a smatra se položenim samo ako na njemu student postigne minimalno 50%-ni uspjeh (ispitni prag je 50% uspješno riješenih zadataka).
Ukoliko je završni ispit prolazan, skupljeni bodovi će se pribrojati prethodnima i prema ukupnom rezultatu formirati će se pripadajuća ocjena. U suprotnom, student ima pravo pristupa završnom ispitu još 2 puta (ukupno do 3 puta).
Konačna ocjena¶
Donosi se na osnovu zbroja svih bodova prikupljenih tijekom izvođenja nastave prema sljedećoj skali:
A – 90%–100% (ekvivalent: izvrstan 5)
B – 75%–89,9% (ekvivalent: vrlo dobar 4)
C – 60%–74,9% (ekvivalent: dobar 3)
D – 50%–59,9% (ekvivalent: dovoljan 2)
F – 0%–49,9% (ekvivalent: nedovoljan 1)
Ispitni rokovi¶
Redoviti:
2. veljače 2021.
16. veljače 2021.
Izvanredni:
30. ožujka 2021.
14. rujna 2021.
RASPORED NASTAVE – zimski (I) semestar ak. godine 2020./2021.¶
Nastava će se na predmetu odvijati u zimskom semestru prema sljedećem rasporedu:
predavanja: utorak 12:15–13:45, prostorija O-358 i online
vježbe: četvrtak 16:15–17:45, prostorija O-366
Tj. |
Datum |
Vrijeme |
Prostor |
Tema |
Nastava |
Izvođač |
---|---|---|---|---|---|---|
1. |
6. 10. 2020. |
12:15–13:45 |
O-358 |
Distribuirani sustavi: definicija, softverski i hardverski koncepti |
P |
izv. prof. dr. sc. Božidar Kovačić |
1. |
8. 10. 2020. |
16:15–17:45 |
O-366 |
Postavljanje okoline za razvoj softvera. Modularizacija, dokumentiranje, testiranje i mjerenje vremena izvođenja programskog koda |
V |
v. pred. dr. sc. Vedran Miletić |
2. |
13. 10. 2020. |
12:15–13:45 |
O-358 |
Klijent-server modeli |
P |
izv. prof. dr. sc. Božidar Kovačić |
2. |
15. 10. 2020. |
16:15–17:45 |
O-366 |
Python moduli numpy i scipy |
V |
v. pred. dr. sc. Vedran Miletić |
3. |
20. 10. 2020. |
12:15–13:45 |
online |
Komunikacija u distribuiranim sustavima: OSI model, ATM model, klijent-server model |
P |
izv. prof. dr. sc. Božidar Kovačić |
3. |
22. 10. 2020. |
16:15–17:45 |
O-366 |
Python modul mpi4py: komunikacija točka-do-točke |
V |
v. pred. dr. sc. Vedran Miletić |
4. |
27. 10. 2020. |
12:15–13:45 |
online |
Komunikacija u distribuiranim sustavima: poziv procedure na daljinu, objekti, komunikacija porukama |
P |
izv. prof. dr. sc. Božidar Kovačić |
4. |
29. 10. 2020. |
16:15–17:45 |
O-366 |
Primjene komunikacije točka-do-točke |
V |
v. pred. dr. sc. Vedran Miletić |
5. |
3. 11. 2020. |
12:15–13:45 |
online |
Sinkronizacija: sinkronizacija sata, algoritmi za odabir |
P |
izv. prof. dr. sc. Božidar Kovačić |
5. |
5. 11. 2020. |
16:15–17:45 |
O-366 |
Python modul mpi4py: kolektivna komunikacija |
V |
v. pred. dr. sc. Vedran Miletić |
6. |
10. 11. 2020. |
12:15–13:45 |
online |
Sinkronizacija: mutual exclusion, distribuirane transakcije |
P |
izv. prof. dr. sc. Božidar Kovačić |
6. |
12. 11. 2020. |
16:15–17:45 |
O-366 |
Primjene kolektivne komunikacije |
V |
v. pred. dr. sc. Vedran Miletić |
7. |
17. 11. 2020. |
12:15–13:45 |
online |
Procesi: izvođenje na klijentu i serveru |
P |
izv. prof. dr. sc. Božidar Kovačić |
7. |
19. 11. 2020. |
16:15–17:45 |
O-366 |
Python modul mpi4py: komunikatori i grupe, dinamičko upravljanje procesima, jednostrana komunikacija, paralelni ulaz/izlaz i upravljanje okolinom |
V |
v. pred. dr. sc. Vedran Miletić |
8. |
24. 11. 2020. |
12:15–13:45 |
O-358 |
1. kolokvij |
I |
izv. prof. dr. sc. Božidar Kovačić |
8. |
26. 11. 2020. |
16:15–17:45 |
O-366 |
Distribuirani sustav za upravljanje verzijama Git |
V |
v. pred. dr. sc. Vedran Miletić |
9. |
1. 12. 2020. |
12:15–13:45 |
online |
Procesi: migracija koda, softverski agenti |
P |
izv. prof. dr. sc. Božidar Kovačić |
9. |
3. 12. 2020. |
16:15–17:45 |
O-366 |
1. kontrolna zadaća |
I |
v. pred. dr. sc. Vedran Miletić |
10. |
8. 12. 2020. |
12:15–13:45 |
online |
Konzistentnost i replike: distribuirani protokoli, protokoli konzistentnosti |
P |
izv. prof. dr. sc. Božidar Kovačić |
9. |
10. 12. 2020. |
8:00 |
online |
Objava ponuđenih tema projekata |
Z |
v. pred. dr. sc. Vedran Miletić |
10. |
10. 12. 2020. |
16:15–17:45 |
O-366 |
Python modul zmq: osnove asinkrone komunikacije |
V |
v. pred. dr. sc. Vedran Miletić |
11. |
15. 12. 2020. |
12:15–13:45 |
online |
Oporavak u slučaju grešaka: pouzdanost klijent-server komunikacije, pouzdanost komunikacije u grupi, oporavak |
P |
izv. prof. dr. sc. Božidar Kovačić |
11. |
17. 12. 2020. |
16:15–17:45 |
O-366 |
Python modul zmq: utičnice i uzorci poručivanja |
V |
v. pred. dr. sc. Vedran Miletić |
12. |
22. 12. 2021. |
12:15–13:45 |
online |
Sigurnost: sigurnosni kanali, kontrola pristupa, upravljanje sigurnošću |
P |
izv. prof. dr. sc. Božidar Kovačić |
12. |
7. 1. 2020. |
8:00 |
online |
Rok za odabir teme projekta |
Z |
v. pred. dr. sc. Vedran Miletić |
12. |
7. 1. 2020. |
16:15–17:45 |
O-366 |
Python modul zmq: složeniji uzorci poručivanja tipa zahtjev-odgovor |
V |
v. pred. dr. sc. Vedran Miletić |
13. |
12. 1. 2021. |
12:15–13:45 |
online |
Primjeri izvođenja algoritama na distribuiranim sustavima |
P |
izv. prof. dr. sc. Božidar Kovačić |
13. |
14. 1. 2021. |
16:15–17:45 |
O-366 |
Python modul zmq: pouzdani uzorci poručivanja tipa zahtjev-odgovor |
V |
v. pred. dr. sc. Vedran Miletić |
14. |
19. 1. 2021. |
12:15–13:45 |
online |
Primjeri izvođenja algoritama na distribuiranim sustavima |
P |
izv. prof. dr. sc. Božidar Kovačić |
14. |
21. 1. 2021. |
16:15–17:45 |
O-366 |
2. kontrolna zadaća |
I |
v. pred. dr. sc. Vedran Miletić |
15. |
26. 1. 2021. |
12:15–13:45 |
O-358 |
2. kolokvij |
I |
izv. prof. dr. sc. Božidar Kovačić |
15. |
28. 1. 2021. |
16:15–17:45 |
O-366 |
Izvođenje distribuiranih programa na superračunalu |
V |
v. pred. dr. sc. Vedran Miletić |
Napomena: Moguće su izmjene rasporeda nastave. Za nove verzije rasporeda potrebno je pratiti obavijesti u e‑kolegiju.