ΓραμματείαSecretariat: 2410 684574 | ΦοιτητικάStudents: 2410 684387 g-ds@uth.gr

Advanced Programming

Module ID

Υ302

Semester

3

Hours/Week - ECTS

5 – 5

Petros Lampsas

Professor

Learning Outcomes

Upon successful completion of the course, the student will be able to:

  • Describe the mechanism that operating systems provide to programmers to utilize kernel services (system calls).
  • Recognize the differences between processes and threads as mechanisms that operating systems provide for executing user programs.
  • List communication mechanisms between processes running on the same system (Interprocess Communication – IPC).
  • Define the concurrency problem.
  • Mention classic synchronization problems and how to solve them with one of the mechanisms that achieve synchronization.
  • Explain the most common concurrency control mechanisms: mutexes, semaphores, monitors, condition variables.
  • Synthesize his/her knowledge of threading and concurrency in developing multi-threaded applications with performance and serviceability requirements.

Indicative Module Content

  • Processes/Threads
  • Job scheduling in Operating Systems
  • Process/Thread communication with/without shared memory
  • Definition of concurrency in programming, the critical section problem, algorithms for the critical section problem, verification of concurrent programs
  • Concurrency techniques: mutual exclusion, busy waiting, semaphores, monitors
  • Introduction to distributed algorithms