Предмет | Конкурентно и дистрибуирано програмирање (пројекат) |
---|---|
Модул | Информациони системи и технологије |
Статус предмета | Изборни предмет |
Катедра | Катедра за електронско пословање |
Број ЕСПБ бодова | 5 |
Циљ овог курса је да се студенти упознају са концептима, методама, технолошком инфраструктуром и софтверским алатима који се користе у развоју и имплементацији паралелних конкурентних програма, који се извршавају у дистрибуираним рачунарским окружењима, као и да стечена знања примене у пројектовању и имплементацији решења једног конкретног и комплексног проблема у области електронског пословања.
Студенти, преко теоријске наставе и пројекта стичу теоријска и практична знања неопходна за развој и имплементацију паралелизованих програма и комплексних дистрибуираних рачунарских система који имају конкретну примену у електронском пословању.
Класична предавања. Аудиторне вежбе и лабораторијске вежбе у рачунарској сали. Израда пројеката/семинарских радова, електронско образовање.
Теоријска настава
Рационала мултипрограмских система, хардверске иновације. Кернел мултипрограмског система. Flunn-ова класификација, MIMD машине. Типичне организације мултипроцесора и рачунарских мрежа, кластери. Дистрибуирани рачунарски системи, компоненте дистрибуираних рачунарских система. Типични проблеми комуникације и синхронизације процеса. Системска и архитектонска средства за контролу приступа критичном региону: регион, семафор, догађај, услов и монитор. Координација и синхронизација процеса у дистрибуираним рачунарским системима. Управљање процесима, меморијом и уређајима у дистрибуираном окружењу. Процесно и сервисно оријентисане архитектуре засноване на дистрибуираној размени порука. Конкурентно и дистрибуирано програмирање у програмским језицима: C++ , JAVA и Python. Развојна окружења за дистрибуиране системе. Примери примене: P2P мреже, дистрибуирани фајл системи, дистрибуиране базе података, пословна аналитика, blockchain технологије. Савремени трендови у дистрибуираном и конкурентном програмирању.
Практична настава
Пројектовање и имплементација дистрибуираног и паралелизованог софтверског решења за комплексан и конкретан проблем електронског пословања коришћењем једног или више развојних окружења и софтверских пакета: Pympi, OpenMP, Webmapreduce, Hadoop, Spark, Flink, Hyperledger. Пројекат садржи: пројектни задатак, документацију пројектног решења, имплементациону документацију и анализу постигнутих резултата. Одбрана пројекта се врши пред предметним наставницима и свим студентима модула Електронско пословање. Пројектна документација се доставља студентима модула, а предметни наставник именује једног студента који ће бити опонент и чији задатак ће бити да на основу детаљно проучене документације припреми коментаре, питања и уз помоћ предметних наставника води дискусију током одбране пројекта.
1.Despotović-Zrakić M., Milutinović V., Belić A. High performance and cloud computing in scientific research and education IGI Global 2014
2. N.N. Sakhare, V.V. Meshram Meshram, S.A. Chiwhane Principles of concurent and distributed programming Nirali Prakashan 2015
3. B. Burns Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services O’Reilly Media 2018
4. C. Varela Programming Distributed Computing Systems: A Foundational Approach The MIT Press 201
5. E.Hewwit Technology Strategy Patterns: Architecture as Strategy O’Reilly Media 2018
6. J.F. Gonzalez Mastering Concurrency Programming with Java 9 – Second Edition: Fast, reactive and parallel application development, 2nd Revised edition edition Packt Publishing 2017
7. B. Wittman, A. Mathur, T. Korb Start Concurrent: An Introduction to Problem Solving in Java With a Focus on Concurrency Purdue University Press 2014
8. B. Benmammar Concurrent, Real-Time and Distributed Programming in Java: Threads, RTSJ and RMI Wiley-ISTE 2017
9. M. Raynal Concurrent Programming: Algorithms, Principles, and Foundations Springer 2013
10. B. Radenković, M. Despotović-Zrakić, Z. Bogdanović, D. Barać, A. Labus Materijali za predmet Konkurentno i distribuirano programiranje – projekat, u e-formi, sa portala za eučenje moodle.elab.fon.bg.ac.rs 2021