Distribuirani sistemi (MSS)

Cilj predmeta

Sticanje znanje o tehnologijama i načinu funkcionisanja distribuiranih sistema i njihovoj primeni.

Ishod predmeta

Po završetku kursa, student ima osnovna znanja o fundamentalnim problemima, pojmovima i paradigmama distribuiranih sistema. Razume značaj nestruktuiranih podataka i primene distribuiranih fajl sistema za smeštanje podataka. Razume i zna da primeni adekvatne platforme za distribuirano izračunavanje.

Sadržaj predmeta

Teorijska nastava
Osnove i značaj distribuiranih sistema. Osnove Cloud, Peer2Peer i Grid Computing sistema. Model distribuiranog izvršavanja. Globalno stanje distribuiranog sistema. Preseci kod distribuiranog izračunavanja. Logičko vreme. Skalarno, vektorsko i matrično vreme. Sinhronizacija fizičkih časovnika. Globalno stanje i algoritmi za njegovo snimanje. Algoritmi za FIFO i ne-FIFO kanale. Snimanje stanja u sistemima sa kauzalnom isporukom. Konzistentni globalni snimci. Osnovni distribuirani algoritmi. Replikacija i migracija. Sinhronizatori. Izbor lidera. Redosled poruka i grupna komunikacija. Distribuirano uzajamno isključivanje. Distribuirana deljena memorija. Dogovor i konsenzus. Detekcija otkaza. Tolerancija otkaza.

Praktična nastava
Implementacija vektorskih časovnika. Diferencijalna tehnika. Tehnika direktne zavisnosti. Adaptivna tehnika. Problemi u snimanju globalnog stanja. Chandy–Lamport i Spezialetti–Kearns algoritam. Venkatesan inkrementalni algoritam. Helary talasni sinhronizacioni metod. Lai–Yang i Li algoritam. Mattern algoritam. Algoritmi za distribuirano uzajamno isključivanje. Lamportov algoritam. Ricart–Agrawala i Singhal algoritam. DHT i Chord. Distribuirani fajl sistemi, nestruktuirani podaci i NoSQL/distributed key-value store (Google GFS, Hadoop HDFS, Cassandra, Redis). Zookeeper za sinhronizaciju i druge primene. Konzistentnost i Paxos. MapReduce kao programski model za distribuirano izračunavanje. Distribuirane baze podataka. Bezbednost distribuiranih aplikacija.