Home > Undergraduate studies > Concurrent programming

Concurrent programming

Study programInformation systems and technologies
Course statusElective
TeachersBožidar Lj. Radenković, Srđan M. Krčo
Course content

Lectures: Rationale multiprogram system, hardware innovations. Kernel of multi-system, Examples of competing programs. Flunn’s classification, MIMD machines. Typical multiprocessors. Distributed Computing Systems, components of distributed computing systems. Typical problems of communication and synchronization process. Architectural tools for controlling access to a critical region. Monitors. Concurrent programming in JAVA. Concurrent Programming in C++ language. Coordination and synchronization of processes in distributed computing systems. Service-oriented architecture and distributed business logic. Current trends in distributed and concurrent programming.

Practical exercises: Concepts of coordination and synchronization in the C programming language, operating system UNIX, and Windows. Examples of concurrent programs in Java programming language. Coordination and synchronization of processes in the ORACLE DBMS.

Aim of the course is to introduce students to the methods, technological infrastructure and software tools used in the development and implementation of distributed computer systems and concurrent programming.
  1. E-resoruces from website
  2. Despotović-Zrakić M., Milutinović V., Belić A. (Eds), High performance and cloud computing in scientific research and education, monografija, IGI Global, 2014.
  3. M. Ben-Ari , Principles of concurent and distributed programming, New York: Prentice-Hall 1991.
  4. Fred B. Schneider, On Concurrent Programming,  Springer 1997.