Preskočite na sadržaj

Sveučilište u Rijeci
ODJEL ZA INFORMATIKU
Ulica Radmile Matejčić 2, Rijeka
Akademska 2020/2021. godina

DISTRIBUIRANI SUSTAVI

Studij: Diplomski studij informatike, smjer informacijski i komunikacijski sustavi i smjer poslovna informatika
Godina i semestar: 1. godina, 3. semestar

Studij: Diplomski studij informatike, smjer nastavnički
Godina i semestar: 3. godina, 5. semestar

Web stranice predmeta: lab.miletic.net/hr/nastava/kolegiji/DS/ moodle.srce.hr/2020-2021/

ECTS bodovi: 6 (5)

Nastavno opterećenje: 2 + 2

Nositelj predmeta:

izv. prof. dr. sc. Božidar Kovačić

E-mail: bkovacic@inf.uniri.hr
Web stranica: portal.uniri.hr/portfelj/1506
Ured: Ulica Radmile Matejčić 2, O-414
Vrijeme konzultacija: utorkom od 10 do 12 sati ili po dogovoru e-mailom

Asistent:

v. pred. dr. sc. Vedran Miletić

E-mail: vmiletic@inf.uniri.hr
Web stranica: vedran.miletic.net
Ured: Ulica Radmile Matejčić 2, O-520
Vrijeme konzultacija: utorkom od 12 do 14 sati ili po dogovoru e-mailom

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

  1. Tanenbaum A. & Steen, M. V. Distributed Systems: Principles and Paradigms (2nd Edition). (Prentice Hall, 2006).
  2. MPI for Python documentation. Dostupno na: mpi4py.readthedocs.io
  3. PyZMQ documentation. Dostupno na: pyzmq.readthedocs.io
  4. Skripte, prezentacije i ostali materijali za učenje dostupni u e-kolegiju.

Popis literature koja se preporučuje kao dopunska

  1. Coulouris G., Dollimore J. & Tim Kindberg T. Distributed Systems: Concepts and Design (5th Edition). (Addison-Wesley, 2011).
  2. Tanenbaum A. & Woodhull A. Distributed Operating Systems. (Prentice Hall, 2004).
  3. Silberschatz A. & Galvin P. B. Operating System Concepts. (Addison Wesley, 1989).
  4. Open MPI documentation: www.open-mpi.org/doc/
  5. MPI Documents. Dostupno na: www.mpi-forum.org/docs/
  6. ZeroMQ - The Guide. Dostupno na: 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 (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. 2020./2021. godine

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ć

P -- predavanja
V -- vježbe
I -- pisani ili usmeni ispit, kontinuirana provjera znanja
Z -- samostalni zadaci (esej, praktični rad, projekt)

Napomena: Moguće su izmjene rasporeda nastave. Za nove verzije rasporeda potrebno je pratiti obavijesti u e‑kolegiju.