Operating Systems

Course ID
CEID_24Υ330
Department
Division of Computer Software
Professor
HADJIDOUKAS PANAGIOTIS, ILIAS ARISTIDIS, MAKRIS CHRISTOS, SIOUTAS SPYROS
Semester
5
ECTS
8

Definitions of operating systems, their historical evolution, their main parts. Processes, threads, process states, process control block, interrupt handling. Interprocess communication, critical areas, mutual exclusion, primitives of mutual exclusion, the algorithm of Dekker, the algorithm of Peterson, the bakery algorithm (Lamport), hardware solutions, test-and-set instructions. Semaphores, implementation of semaphores, counting semaphore, binary semaphores, conditional critical areas, event queues, monitors, implementation of message buffers, readers and writers, producer-consumer systems. Scheduling of processes, scheduling of threads. Distributed synchronization. Memory management: (a) Real memory: organization, memory allocation continuous or not,  fixed partitioning method, swapping. (b) Virtual Memory: paging, segmentation, combination of techniques, average page length, average number of holes, 50% rule, page replacement methods, locality, working set, demand paging, program behavior. Scheduling CPU and Disks. Deadlock Theory.  Examples of modern operating systems and principles of designing them.

Skip to content