Navigation

13E113KDP - Concurrent and Distributed Programming

Course specification
Course title Concurrent and Distributed Programming
Acronym 13E113KDP
Study programme Electrical Engineering and Computing
Module Computer Engineering and Informatics
Type of study bachelor academic studies
Lecturer (for classes)
Lecturer/Associate (for practice)
Lecturer/Associate (for OTC)
ESPB 6.0 Status mandatory
Condition Programming 1, and Object-Oriented Programming 2
The goal Introducing basic concepts of concurrent and distributed programming to students. Introduction of concepts of different abstraction levels in concurrent and distributed programming. Enabling students to write concurrent and distributed programs for most common problems in different programming languages.
The outcome Understanding the basic concepts, algorithms, principles, problems, and solutions related to concurrent and distributed programming. Students should be able to identify different levels of abstraction in a concurrent and distributed programming, to independently write simple concurrent and distributed applications using Java language and to solve common problems of synchronization.
Contents
Contents of lectures Concepts of processes and synchronization. Locks and barriers. Synchronization algorithms. Different methods of barrier implementations. Semaphores. Distributed binary semaphores, Passing the baton, resource allocation. Monitors. Conditional variables, disciplines for the signal, analysis of monitor state. Message passing. Asynchronous and synchronous message passing. Remote procedure calls.
Contents of exercises Using semaphores, monitors, regions and message passing for solving typical problems: Readers- Writers, Producers-Consumers, One Lane Bridge, Dining Philosophers, Cigarette Smokers, Sleeping Barber, Roller coaster, Client-Server, etc. Distributed programming (CSP and Linda). Implementation of semaphores, conditional regions, monitors, message passing, and remote method invocation in Java.
Literature
  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ć, Scripts from class lectures, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/
  4. Zaharije Radivojević, Problems for exercise, http://rti.etf.bg.ac.rs/rti/ri4drs/literatura/
Number of hours per week during the semester/trimester/year
Lectures Exercises OTC Study and Research Other classes
2 2 1
Methods of teaching Lectures, exercises, laboratory exercises, projects
Knowledge score (maximum points 100)
Pre obligations Points Final exam Points
Activites during lectures 0 Test paper 40
Practical lessons 0 Oral examination 0
Projects
Colloquia 40
Seminars 20