Operating Systems

CS222 • Spring 2025 • University of Cyprus

An Operating System (OS) is a fundamental software layer that manages and coordinates computer hardware and software resources, providing common services for user applications. The course teaches the basic principles that underpin the design and operation of modern operating systems, including concurrency, synchronization, and resource management (CPU, memory, I/O).


Lectures: Tuesday and Friday, 12:00 pm - 1:30 pm (Group 1), 1:30 pm - 3:00 pm (Group 2), Room CTF 02 B05
Recitations: , 3:00 pm - 4:00 pm (Group 1), 4:00 pm - 5:00 pm (Group 2), Room CTF 01 108
Labs: Monday and Thursday, 3:00 pm - 7:30 pm, Room FST 01 103


Instructor: Haris Volos
Teaching Assistant: Christoforos Panagiotou

Schedule

Date Lecture Readings Logistics
Fri 24/01 Lecture #1 :
Introduction
[ slides ]
  • Arpaci-Dusseau Ch1 , Ch2
  • Stallings Ch1, Ch2

Tue 28/01 Lecture #2 :
Processes
[ slides ]
  • Arpaci-Dusseau Ch4, Ch5
  • Stallings Ch3

Fri 31/01 Lecture #3 :
Scheduling
[ slides ]
  • Arpaci-Dusseau Ch7, Ch8
  • Stallings Ch9

Tue 04/02 Lecture #4 :
Virtualizing Memory
[ slides ]
  • Arpaci-Dusseau Ch15, Ch16
  • Stallings Ch7

Fri 07/02 Lecture #5 :
Paging
[ slides ]

Tue 11/02 Lecture #6 :
TLB
[ slides ]
  • Arpaci-Dusseau Ch21
  • Stallings Ch7, Ch8

Fri 14/02 Lecture #7 :
Smaller Tables
[ slides ]
  • Arpaci-Dusseau Ch20
  • Stallings Ch7, Ch8

Tue 18/02 Lecture #8 :
Memory Policy
[ slides ]
  • Arpaci-Dusseau Ch21, Ch22
  • Stallings Ch7, Ch8

Fri 21/02 Lecture #9 :
Slack
[ slides ]
  • Arpaci-Dusseau Ch22
  • Stallings Ch7, Ch8

Tue 25/02 Lecture #10 :
Threads
[ slides ]
  • Arpaci-Dusseau Ch26, Ch27
  • Stallings Ch4

Fri 28/02 Lecture #11 :
Synchronization: Mutual Exclusion
[ slides ]
  • Arpaci-Dusseau Ch28, Ch29
  • Stallings Ch5

Tue 04/03 Lecture #12 :
Synchronization: Semaphores, Monitors, and Condition Variables
[ slides ]
  • Arpaci-Dusseau Ch30, Ch31
  • Stallings Ch5

Fri 07/03 Lecture #13 :
Synchronization: Semaphores, Monitors, and Condition Variables (continue)
[ slides ]
  • Arpaci-Dusseau Ch30, Ch31
  • Stallings Ch5

Tue 11/03 Midterm Exam

Fri 14/03 Lecture #14 :
Deadlock
[ slides ]
  • Arpaci-Dusseau Ch32
  • Stallings Ch6

Tue 18/03 Lecture #15 :
Synchronization: Classical Problems
[ slides ]

Fri 21/03 Lecture #16 :
Synchronization: Classical Problems
[ slides ]

Fri 28/03 Lecture #17 :
I/O Devices and Drivers
[ slides ]
  • Stallings Ch11
  • Arpaci-Dusseau Ch36

Fri 04/04 Lecture #18 :
Storage Devices
[ slides ]
  • Arpaci-Dusseau Ch37
  • Stallings Ch11

Tue 08/04 Lecture #19 :
File Systems
[ slides ]
  • Arpaci-Dusseau Ch39, Ch39
  • Stallings Ch12

Fri 11/04 Lecture #20 :
File Layout and Directories
[ slides ]
  • Arpaci-Dusseau Ch40
  • Stallings Ch12

Tue 29/04 Lecture #21 :
TBD
[ slides ]

Fri 02/05 Lecture #22 :
Wrap Up
[ slides ]

About

Objectives

Introduction to the basic principles of the design and operation of modern operating systems. Familiarization with the various operation levels and mechanisms, case studies involving typical operating systems like UNIX and Windows as well as the dual role of the operating system, as manager of the various parts of the computer hardware and supplier of offered services to the user.

Content

Introduction, history and evolution of operating systems. General structure, operations and characteristics of an operating system. Concurrency. Process management. Scheduling and dispatch. Real and virtual memory management. I/O management and disk scheduling. File management.

Target Audience

The course is aimed at sophomore undergraduate students of computer science. The language of instruction is greek.

Prerequisites

Basic understanding of computer organization through undergraduate course equivalent to CS221 (Computer Organization) and advanced programming concepts through undergraduate course equivalent to CS232 (Programming Techniques and Tools).

Labs

Through lab exercises, students get practical experience and reinforce the basic concepts covered in the lectures.

Homework Assignments

Homeworks are assignments that are designed to help students develop an in-depth understanding of both the theoretical and practical aspects of ideas presented in lecture.

Bibliography

  • Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Version 1.00 (Available free online!)

  • W. Stallings, ‘Operating Systems: Internals and Design Principles’, Prentice Hall, 9th edition, 2015, ISBN-10: 1-292-21429-5, ISBN-13: 978-1-292-21429-0 (Global edition).

Grading

Student progress is evaluated continuously through homework assignments, lab exercises, midterm and final exams. The final grade is based on the following formula:

  • Assignments: 15%
  • Lab exercises: 15%
  • Midterm exam: 20%
  • Final exam: 50%