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: 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ć

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ć

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: https://mpi4py.readthedocs.io/

  3. PyZMQ documentation. Dostupno na: https://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: https://www.open-mpi.org/doc/

  5. MPI Documents. Dostupno na: https://www.mpi-forum.org/docs/

  6. 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.

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.

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.

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 scripy

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)