Navigacija

SI3KDP - Konkurentno i distribuirano programiranje

Specifikacija predmeta
Naziv Konkurentno i distribuirano programiranje
Akronim SI3KDP
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 i 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. Zoran Jovanović, Folije za predavanja, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/
    4. 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 0 Usmeni ispit 0
    Projekti 20
    Kolokvijumi 50
    Seminari 0