Operating Systems Design


Educational goals

The goal of the course is to cover the theoretical background required to understand the general principles and components of Operating Systems. Upon successful completion of the course the student will be able to:

  • Explain the fundamental concepts and principles of operating systems
  • To distinguish the objectives as well as the basic and desired characteristics of the operating systems
  • Describe the elements of the operating system architecture
  • Identify key issues and solutions to synchronization and process blocking problems
  • Explain the I/O management and scheduling of a computer system unit
  • Identify and distinguish single-processor, multiprocessor, and real-time scheduling algorithms
  • To distinguish and identify the main memory management techniques
General Skills
  • Search, analyze and synthesize data and information, using the necessary technologies
  • Commenting on common classroom errors in class exercises
  • Exercising criticism and self-criticism
  • Promoting free, creative and inductive thinking

Course Contents

Εισαγωγή: Evolution of OS, Computer Systems Overview: Introduction to Operating Systems, Objectives, Basic and Desired Features of Operating Systems.
Operating System Architecture: Operating System Architecture, Operating System kernel.
Διεργασίες: Mutual exclusion, and Deadlocks, Introduction to processes, interrupts, representation of processes with graphs (AND symbols, parbegin-parend, fork-join). Key issues (mutual exclusion, synchronization, deadlocks) and the Critical Section problem. Communication between processes. Using semiconductors to solve synchronization and process blocking problems. Classical process communication-synchronization problems (reader-writer problem, producer-consumer problem, philosophers eating problem).
Manage Input-Output and Drives: I/O hardware and software principles, drive management and scheduling. Disk Scheduling algorithms (FCFS, SSTF,SCAN, LOOK,C-SCAN, C-LOOK, N steps scan, F-SCAN) RAID technology.
Centralized and Ideal Memory Management and Organization: Memory Hierarchy. Introduction and Key Issues in Central Memory Management (MS), Exchange, Static and Dynamic Distribution. Memory management strategies (transfer strategy, placement strategy, replacement strategy). Page replacement algorithms (FIFO, LRU, Clock, Optimal), buddy system, Paging, segmentation and combination of paging and segmentation. Memory protection.
Central Processing Unit Management (CPU): Introduction and principles of single processor scheduling. CPU scheduling algorithms (First-Come-First-Served, Shortest Job First, Response ratio, Priority-based service). Switching algorithms. Evaluation of scheduling algorithms. Principles of multiprocessor and real time scheduling.
Organizing and Managing Files: Description, access and how to organize files. File system management. Logical organization and file directories. File storage methods. File system security. Distributed File Systems: Distributed File System Requirements (transparency, concurrency, security, efficiency, error tolerance), File Service Architecture, Access Control.
Special issues: Embedded operating systems: Introduction, principles and features. Examples of embedded operating systems. Modern operating systems: Principles and key features of Windows, Linux, Chrome OS, Mac OSX as well as those for Android, iOS, Windows Phone, Firefox OS, Tizen.

Teaching Methods - Evaluation

Teaching Method
  • Face to face theoretical teaching (teaching, discussion, problem solving).
Use of ICT means
  • Using presentetion software.
  • Using an online learning platform (moodle).
  • Electronic communication with students.
Teaching Organization
Activity Semester workload
Individual study and analysis of literature128
Total 180
Students evaluation

Written Final Examination (TE) (100%) which includes:
- Multiple choice, correct-wrong questions, matching
- Short answer questions
- Exercises

Recommended Bibliography

Recommended Bibliography through "Eudoxus"
  1. A. S. Tanenbaum, “Modern Operating Systems”, 4th Edition, KLIDARITHMOS LTD Publications, 2018, ISBN: 978-960-461-853-8, Book Code in Eudox: 77108683.
  2. W. Stallings, “Operating Systems”, 9th Edition, A. Tziola and Sons Publications SA, 2017, ISBN: 978-960-418-715-7, Book Code in Eudox: 68374433.
  3. A. Silberschatz, P. B. Galvin and G. Gagne, "Operating Systems", 9th Edition, Ch. GIURDA & SIA Publications, 2013, ISBN: 978-960-512-6513, Book Code in Evdux: 33154660.
Complementary greek bibliography
  1. A. Sidiropoulos, "Introduction to Operating Systems", Online Book, Greek Academic Electronic Textbooks and Accessories Publications, 2016, ISBN: 978-960-603-108-3.
  2. Andrew S. Tanenbaum & Maarten van Steen, “Distributed Systems: Principles and Paradigms”, 2nd edition, Pearson Prentice Hall, 2007.
  3. Abraham Silberschatz, Peter Baer Galvin and Greg Gagne, “Operating Systems”, ION Publications, 2007.
  4. Ioannis Kavouras, "Operating Systems", 7th Edition, Keystone Edition, 2009.
Complementary international bibliography
  1. George Coulouris, Jean Dollimore and Tim Kindberg, “Distributed Systems: Concepts and Design”, 5th edition, Addison-Wesley, 2005.