Navigacija

13S113KDP - Konkurentno i distribuirano programiranje

Specifikacija predmeta
Naziv Konkurentno i distribuirano programiranje
Akronim 13S113KDP
Studijski program Softversko inženjerstvo
Modul
Tip studija osnovne akademske studije
Nastavnik (predavač)
Nastavnik/saradnik (vežbe)
Nastavnik/saradnik (DON)
Broj ESPB 6.0 Status predmeta obavezan
Uslovljnost drugim predmetima Programiranje 1, Objektno orijentisano programiranje 2
Ciljevi izučavanja predmeta Upoznavanje studenata sa osnovnim konceptima konkurentnog i distribuiranog programiranja. Uvođenje pojma različitih nivoa apstrakcije u konkurentnom i distribuiranom programiranju. Osposobljavanje studenata za pisanje konkurentnih i distribuiranih programa za najčešće probleme u različitim programskim jezicima.
Ishodi učenja (stečena znanja) Posedovanje osnovnih znanja o konceptima, algoritmima, principima, problemima i rešenjima vezanim za konkurentno i distribuirano programiranja. Prepoznavanje različitih nivoa apstrakcije u konkurentnom i distribuiranom programiranju. Osposobljenost studenta da u jeziku Java samostalno pišu jednostavne konkurentne i distribuirane aplikacije i da samostalno rešava najčešće probleme sinhronizacije.
Sadržaj predmeta
Sadržaj teorijske nastave Koncepti procesa i sinhronizacije. Locks i barijere, Tie Breaker, Ticket i Bakery algoritmi. Različiti načini implementacije barijera. Semafori. Raspodeljeni binarni semafori, tehnike prosleđivanja štafete, alokacija resursa. Monitori. Uslovne promenljive, discipline za signal, analiza dijagrama stanja monitora. Prosleđivanje poruka. Asinhrono i sinhrono prosleđivanje poruka. Udaljeni pozivi procedura.
Sadržaj praktične nastave Korišćenje semafora, monitora, regiona i prosleđivanja poruka za rešavanje tipskih problema: Čitaoci i pisci, Proizvođači i potrošači, Most sa jednom kolovoznom trakom, Filozofi za ručkom, Nervozni pušači, Berberin koji spava, Vožnja toboganom i drugi. Distribuirano programiranje (CSP i Linda). Realizacija semafora, uslovnih regiona, monitora, prosleđivanja poruka i udaljenog poziva metoda u Javi.
Literatura
  1. Zaharije Radivojević, Igor Ikodinović, Zoran Jovanović, Konkurentno i distribuirano programiranje, Akademska misao, 2008.
  2. Gregory Andrews, Foundation of Multithreaded, Parallel and Distributed Programming, Addison Wesley, 2000
  3. Allen B. Downey, The Little Book of Semaphores, Green Tea Press, 2016
  4. Zoran Jovanović, Folije za predavanja, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/
  5. Zaharije Radivojević, Zadaci za vežbu, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/
Broj časova aktivne nastave nedeljno tokom semestra/trimestra/godine
Predavanja Vežbe DON Studijski i istraživački rad Ostali časovi
2 2 1
Metode izvođenja nastave Predavanja, auditorne vežbe, laboratorijske vežbe, projekti
Ocena znanja (maksimalni broj poena 100)
Predispitne obaveze Poena Završni ispit Poena
Aktivnosti u toku predavanja 0 Pismeni ispit 30
Praktična nastava 20 Usmeni ispit 0
Projekti 0
Kolokvijumi 50
Seminari 0