Почетна

Информације о предмету

Спецификација предмета
Назив предмета Конкурентно и дистрибуирано програмирање
Акроним СИ3КДП
Студијски програм Софтверско инжењерство
Модул
Тип студија основне академске студије
Наставник (за предавања) проф. др Зоран Јовановић
Наставник/сарадник (за вежбе) доц. др Захарије Радивојевић
Наставник/сарадник (за ДОН) доц. др Захарије Радивојевић
Број ЕСПБ 6 Статус предмета обавезан
Услов Програмирање 1 и Објектно оријентисано програмирање 2
Циљ предмета Упознавање студената са основним концептима конкурентног и дистрибуираног програмирања. Увођење појма различитих нивоа апстракције у конкурентном и дистрибуираном програмирању. Оспособљавање студената за писање конкурентних и дистрибуираних програма за најчешће проблеме у различитим програмским језицима.
Исход предмета Поседовање основних знања о концептима, алгоритмима, принципима, проблемима и решењима везаним за конкурентно и дистрибуирано програмирања. Препознавање различитих нивоа апстракције у конкурентном и дистрибуираном програмирању. Оспособљеност студента да у језику Јава самостално пишу једноставне конкурентне и дистрибуиране апликације и да самостално решава најчешће проблеме синхронизације.
Садржај предмета
Садржај теоријске наставе Концепти процеса и синхронизације. Locks и баријере, Tie Breaker, Ticket и Bakery алгоритми. Различити начини имплементације баријера. Семафори. Расподељени бинарни семафори, технике прослеђивања штафете, алокација ресурса. Монитори. Условне променљиве, дисциплине за сигнал, анализа дијаграма стања монитора. Прослеђивање порука. Асинхроно и синхроно прослеђивање порука. Удаљени позиви процедура.
Садржај практичне наставе Коришћење семафора, монитора, региона и прослеђивања порука за решавање типских проблема: Читаоци и писци, Произвођачи и потрошачи, Мост са једном коловозном траком, Филозофи за ручком, Нервозни пушачи, Берберин који спава, Вожња тобоганом и други. Дистрибуирано програмирање (CSP и Linda). Реализација семафора, условних региона, монитора, прослеђивања порука и удаљеног позива метода у Јави.
Литература
1Захарије Радивојевић, Игор Икодиновић, Зоран Јовановић, Конкурентно и дистрибуирано програмирање, Академска мисао, 2008., Zaharije Radivojević, Igor Ikodinović, Zoran Jovanović, Konkurentno i distribuirano programiranje, Akademska misao, 2008.
2Gregory Andrews, Foundation of Multithreaded, Parallel and Distributed Programming, Addison Wesley, 2000
3Зоран Јовановић, Фолије за предавања, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/, Zoran Jovanović, Folije za predavanja, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/
4Захарије Радивојевић, Задаци за вежбу, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/, Zaharije Radivojević, Zadaci za vežbu, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/
Број часова активне наставе недељно током семестра/триместра/године
Предавања Вежбе ДОН Студијски и истраживачки рад Остали часови
2 2 1
Методе извођења наставе Предавања, аудиторне вежбе, лабораторијске вежбе, пројекти
Оцена знања (максимални број поена 100)
Предиспитне обавезе Поена Завршни испит Поена
Активности у току предавања 0 Писмени испит 30
Практична настава 0 Усмени испит 0
Пројекти 20
Колоквијуми 50
Семинари 0