Навигација

13С113КДП - Конкурентно и дистрибуирано програмирање

Спецификација предмета
НазивКонкурентно и дистрибуирано програмирање
Акроним13С113КДП
Студијски програмСофтверско инжењерство
Модул
Тип студијаосновне академске студије
Наставник (предавач)
Наставник/сарадник (вежбе)
Наставник/сарадник (ДОН)
Број ЕСПБ6.0Статус предметаобавезан
Условљност другим предметимаПрограмирање 1, Објектно оријентисано програмирање 2
Циљеви изучавања предметаУпознавање студената са основним концептима конкурентног и дистрибуираног програмирања. Увођење појма различитих нивоа апстракције у конкурентном и дистрибуираном програмирању. Оспособљавање студената за писање конкурентних и дистрибуираних програма за најчешће проблеме у различитим програмским језицима.
Исходи учења (стечена знања)Поседовање основних знања о концептима, алгоритмима, принципима, проблемима и решењима везаним за конкурентно и дистрибуирано програмирања. Препознавање различитих нивоа апстракције у конкурентном и дистрибуираном програмирању. Оспособљеност студента да у језику Јава самостално пишу једноставне конкурентне и дистрибуиране апликације и да самостално решава најчешће проблеме синхронизације.
Садржај предмета
Садржај теоријске наставеКонцепти процеса и синхронизације. Locks и баријере, Tie Breaker, Ticket и Bakery алгоритми. Различити начини имплементације баријера. Семафори. Расподељени бинарни семафори, технике прослеђивања штафете, алокација ресурса. Монитори. Условне променљиве, дисциплине за сигнал, анализа дијаграма стања монитора. Прослеђивање порука. Асинхроно и синхроно прослеђивање порука. Удаљени позиви процедура.
Садржај практичне наставеКоришћење семафора, монитора, региона и прослеђивања порука за решавање типских проблема: Читаоци и писци, Произвођачи и потрошачи, Мост са једном коловозном траком, Филозофи за ручком, Нервозни пушачи, Берберин који спава, Вожња тобоганом и други. Дистрибуирано програмирање (CSP и Linda). Реализација семафора, условних региона, монитора, прослеђивања порука и удаљеног позива метода у Јави.
Литература
  1. Захарије Радивојевић, Игор Икодиновић, Зоран Јовановић, Конкурентно и дистрибуирано програмирање, Академска мисао, 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. Зоран Јовановић, Фолије за предавања, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/
  5. Захарије Радивојевић, Задаци за вежбу, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/
Број часова активне наставе недељно током семестра/триместра/године
ПредавањаВежбеДОНСтудијски и истраживачки радОстали часови
221
Методе извођења наставеПредавања, аудиторне вежбе, лабораторијске вежбе, пројекти
Оцена знања (максимални број поена 100)
Предиспитне обавезеПоенаЗавршни испитПоена
Активности у току предавања0Писмени испит30
Практична настава20Усмени испит0
Пројекти0
Колоквијуми50
Семинари0