SVEUČILIŠTE U RIJECI
ODJEL ZA INFORMATIKU
Ulica Radmile Matejčić 2, Rijeka
Akademska godina 2019./2020.
DISTRIBUIRANI SUSTAVI
Studij: Diplomski studij informatike, smjer informacijski i komunikacijski sustavi i smjer poslovna informatika
Godina i semestar: 1. godina, 1. semestar
Studij: Diplomski studij informatike, smjer nastavnički
Godina i semestar: 2. godina, 3. semestar
Web stranice predmeta: lab.miletic.net/hr/nastava/kolegiji/DS/ moodle.srce.hr/2019-2020/
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
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: mpi4py.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: www.open-mpi.org/doc/
- MPI Documents. Dostupno na: www.mpi-forum.org/docs/
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 | 0--15 bodova za svaku kontrolnu zadaću, ovisno o stupnju točnosti i potpunosti | 30 |
Projekt | 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
Pohađanje nastave je obavezno i nastavnik vodi evidenciju pohađanja za svakoga studenta.
Predavanja i vježbe se izvode u bloku od po 2 sata prema rasporedu.
Osim prisustvovanja klasičnoj nastavi na predavanjima i vježbama studenti su dužni koristiti sustav za učenje Merlin (moodle.srce.hr/2019-2020/).
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. Bodovi ostvareni na kolokviju pretvaraju se u ocjenske ako je student točno odgovorio na barem 50% pitanja.
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 svakom od njih student će moći skupiti maksimalno 15 bodova. Bodovi ostvareni na kontrolnoj zadaći pretvaraju se u ocjenske ako je student točno riješio barem 50% zadataka.
Projekt
Tijekom semestra studenti će u grupama po dvoje ili troje odabrati projekt koji će izraditi, predati prije završetka semestra i obraniti usmenim putem. Projekt se sastoji se od izrade programskog koda koji rješava određeni problem 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 svih 100 ocjenskih bodova. Završnog ispita nema.
Studenti koji su skupili najmanje 50 ocjenskih bodova dobivaju konačnu ocjenu.
Student koji je zadovoljio uvjet za dobivanje konačne ocjene ispit prijavljuje za ispitni rok. Na ispitnom roku se samo vrši upis dobivene ocjene.
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:
- 4. veljače 2020.
- 18. veljače 2020.
Izvanredni:
- 31. ožujka 2020.
- 8. rujna 2020.
RASPORED NASTAVE -- zimski (I) semestar ak. god. 2019./2020.
Nastava će se na predmetu odvijati u zimskom semestru prema sljedećem rasporedu:
- predavanja: utorak 12:15--13:45, prostorija O-358
- vježbe: četvrtak 8:15--9:45, prostorija O-365
Tj. | Datum | Vrijeme | Prostor | Tema | Nastava | Izvođač |
---|---|---|---|---|---|---|
1. | 3. listopada 2019. | 8:15--9:45 | O-365 | Modularizacija, testiranje i mjerenje brzine izvođenja programskog koda | V | v. pred. dr. sc. Vedran Miletić |
2. | 8. listopada 2019. | 12:15--13:45 | O-358 | Dan neovisnosti | P | izv. prof. dr. sc. Božidar Kovačić |
2. | 10. listopada 2019. | 8:15--9:45 | online | Dokumentiranje programskog koda | V | v. pred. dr. sc. Vedran Miletić |
3. | 15. listopada 2019. | 12:15--13:45 | O-358 | Distribuirani sustavi: definicija, softverski i hardverski koncepti. Klijent-server modeli | P | izv. prof. dr. sc. Božidar Kovačić |
3. | 17. listopada 2019. | 8:15--9:45 | O-365 | Python modul numpy | V | v. pred. dr. sc. Vedran Miletić |
4. | 22. listopada 2019. | 12:15--13:45 | O-358 | Komunikacija u distribuiranim sustavima: OSI model, ATM model, klijent-server model | P | izv. prof. dr. sc. Božidar Kovačić |
4. | 24. listopada 2019. | 8:15--9:45 | O-365 | Python modul mpi4py: komunikacija točka-do-točke | V | v. pred. dr. sc. Vedran Miletić |
5. | 29. listopada 2019. | 12:15--13:45 | O-358 | Komunikacija u distribuiranim sustavima: poziv procedure na daljinu, objekti, komunikacija porukama | P | izv. prof. dr. sc. Božidar Kovačić |
5. | 31. listopada 2019. | 8:15--9:45 | O-365 | Primjene komunikacije točka-do-točke | V | v. pred. dr. sc. Vedran Miletić |
6. | 5. studeni 2019. | 12:15--13:45 | O-358 | Sinkronizacija: sinkronizacija sata, algoritmi za odabir | P | izv. prof. dr. sc. Božidar Kovačić |
6. | 7. studeni 2019. | 8:15--9:45 | O-365 | Python modul mpi4py: kolektivna komunikacija | V | v. pred. dr. sc. Vedran Miletić |
7. | 12. studeni 2019. | 12:15--13:45 | O-358 | Sinkronizacija: mutual exclusion, distribuirane transakcije | P | izv. prof. dr. sc. Božidar Kovačić |
7. | 14. studeni 2019. | 8:15--9:45 | O-365 | Primjene kolektivne komunikacije | V | v. pred. dr. sc. Vedran Miletić |
8. | 19. studeni 2019. | 12:15--13:45 | O-358 | Procesi: izvođenje na klijentu i serveru | P | izv. prof. dr. sc. Božidar Kovačić |
8. | 21. studeni 2019. | 8:15--9:45 | O-365 | 1. kontrolna zadaća | I | v. pred. dr. sc. Vedran Miletić |
9. | 26. studeni 2019. | 12:15--13:45 | O-358 | 1. kolokvij | I | izv. prof. dr. sc. Božidar Kovačić |
9. | 28. studeni 2019. | 8:00 | online | Objava ponuđenih tema projekata | Z | v. pred. dr. sc. Vedran Miletić |
9. | 28. studeni 2019. | 8:15--9:45 | O-365 | Distribuirani sustav za upravljanje verzijama Git | V | v. pred. dr. sc. Vedran Miletić |
10. | 3. prosinca 2019. | 12:15--13:45 | O-358 | Procesi: migracija koda, softverski agenti | P | izv. prof. dr. sc. Božidar Kovačić |
10. | 5. prosinca 2019. | 8:15--9:45 | O-365 | Python modul mpi4py: komunikatori i grupe, dinamičko upravljanje procesima | V | v. pred. dr. sc. Vedran Miletić |
11. | 10. prosinca 2019. | 12:15--13:45 | O-358 | Konzistentnost i replike: distribuirani protokoli, protokoli konzistentnosti | P | izv. prof. dr. sc. Božidar Kovačić |
11. | 12. prosinca 2019. | 8:00 | online | Rok za odabir teme projekta | Z | v. pred. dr. sc. Vedran Miletić |
11. | 12. prosinca 2019. | 8:15--9:45 | O-365 | Python modul mpi4py: jednostrana komunikacija, paralelni ulaz/izlaz i upravljanje okolinom | V | v. pred. dr. sc. Vedran Miletić |
12. | 17. prosinca 2019. | 12:15--13:45 | O-358 | Oporavak u slučaju grešaka: pouzdanost klijent-server komunikacije, pouzdanost komunikacije u grupi, oporavak | P | izv. prof. dr. sc. Božidar Kovačić |
12. | 19. prosinca 2019. | 8:15--9:45 | O-365 | Python modul scipy: podmoduli linalg i sparse.csgraph. Korištenje modula scipy u kombinaciji s modulom mpi4py | V | v. pred. dr. sc. Vedran Miletić |
13. | 7. siječnja 2020. | 12:15--13:45 | O-358 | Sigurnost: sigurnosni kanali, kontrola pristupa, upravljanje sigurnošću | P | izv. prof. dr. sc. Božidar Kovačić |
13. | 9. siječnja 2020. | 8:15--9:45 | O-365 | Python modul scipy: podmoduli optimize i stats | V | v. pred. dr. sc. Vedran Miletić |
14. | 14. siječnja 2020. | 12:15--13:45 | O-358 | Dodatna tema: algoritmi na distribuiranim sustavima | P | izv. prof. dr. sc. Božidar Kovačić |
14. | 16. siječnja 2020. | 8:15--9:45 | O-365 | 2. kontrolna zadaća | I | v. pred. dr. sc. Vedran Miletić |
15. | 21. siječnja 2020. | 12:15--13:45 | O-358 | 2. kolokvij | I | izv. prof. dr. sc. Božidar Kovačić |
15. | 23. siječnja 2020. | 8:15--9:45 | O-365 | Izvođenje programa na superračunalu | V | v. pred. dr. sc. Vedran Miletić |
16. | 29. siječnja 2020. | 8:00 | online | Rok za predaju završne verzije projekta | Z | v. pred. dr. sc. Vedran Miletić |
P -- predavanja
V -- vježbe
I -- pisani ili usmeni ispit, kontinuirana provjera znanja
Z -- samostalni zadaci (praktični rad, projekt)