Operating Systems

Professors Konstantinos Lambrinoudakis
Christos Manousopoulos
Course category Core
Course ID DS-209
Credits 5
Lecture hours 3 hours
Lab hours 2 hours
Digital resources View on Aristarchus (Open e-Class)

Learning Outcomes

The purpose of the course is to familiarize the students with the basic concepts of operating systems, their design principles, the themes they manage and the impact of their various variants on the operation of systems.

In this context, the learning outcomes of the course, after its successful completion, are that the students will be able:

  • to understand the basic concepts of operating systems as well as the key areas / operating difficulties of a computational system that they are required to manage.
  • to know the basic mechanisms that an operating system implements in order to serve multiple processes, to manage memory and manage the file system.
  • to analyse, evaluate and justify alternative technologies / mechanisms of operating systems.

Course Contents

  • Basic Concepts and History of Operating Systems.
  • Operating Systems Structure.
  • Processes: Process Properties and Implementation, Interprocess Communication, Process time sharing and scheduling.
  • Thread Use and Implementation, Emerging threads, Conversion of a single thread code to Multi-Threaded code, Thread Schedule.
  • Deadlocks: Ostrich’s Algorithm, Detection, Recovery, Avoidance, Prevention.
  • Memory Management: Virtual Memory, Design and Implementation of paging Mechanisms, Page Replacement Algorithms, Segmentation.
  • Input / Output: Input / Output Hardware and Software, Disks, Terminals.
  • File Systems: Files and Directories, Implementation.

Recommended Readings

  • Andrew S. Tanenbaum, Herbert Bos (2018), Modern Operating Systems, 4th American Edition.
  • Silberschatz, Galvin, Gagne (2013), Operating Systems Concepts.