GENERAL INFORMATION:

Instructors: Katsiri Eleftheria
Semester: 7th

CREDITS:

ECTS Units: 3
Teaching Units: 4 
Theory Hours: 2
Exercises Hours: 1
Lab Hours: 2

COURSE PAGE: https://eclass.duth.gr/courses/TMA478/

Course Description

Operating systems and their types. Core operating principles and desirable features. Process and  thread models. Race conditions, synchronisation and mutual exclusion, locks, semaphores, Multiple Readers Single Writer and Producer Consumer problems. Preemptive and non-preemptive scheduling and resource allocation. Deadlocks and livelocks, avoidance and prevention approaches, Banker’s algorithm with single and multiple resource types. Memory management, virtual memory, paging, page replacement algorithms. Principles of filesystems. The course involves four practical sessions providing hands-on experience in the linux operating system as well as a coursework where learnings are applied to simulating parts of an operating system using C or python.