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