Operating Systems

CS222 • Spring 2024 • 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, Room CTF 02 B05
Recitations: , 3:00 pm - 4:00 pm, Room CTF 01 108
Labs: Monday, 12:00 pm - 7:30 pm, Room FST 01 103


Instructor: Haris Volos
Teaching Assistant: Christoforos Panagiotou

Schedule

Date Lecture Readings Logistics
Tue 23/01 Lecture #1 :
Introduction
[ slides ]
  • Stallings Ch1
  • Arpaci-Dusseau Ch1

Fri 26/01 Lecture #2 :
Overview
[ slides ]
  • Stallings Ch2
  • Arpaci-Dusseau Ch2

Tue 30/01 Lecture #3 :
OS Structure
[ slides ]
  • Stallings Ch2
  • Arpaci-Dusseau Ch6

Fri 02/02 Lecture #4 :
Processes
[ slides ]
  • Stallings Ch3
  • Arpaci-Dusseau Ch4, Ch5

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

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

Tue 13/02 Lecture #7 :
Synchronization: Semaphores, Monitors, and Condition Variables
[ slides ]
  • Stallings Ch5
  • Arpaci-Dusseau Ch30, Ch31

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

Tue 20/02 Lecture #9 :
Synchronization: Classical Problems
[ slides ]

Fri 23/02 Lecture #10 :
Synchronization: Classical Problems
[ slides ]

Tue 27/02 Lecture #11 :
Deadlock
[ slides ]
  • Stallings Ch6
  • Arpaci-Dusseau Ch32

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

Tue 05/03 Lecture #13 :
CPU Scheduling
[ slides ]
  • Stallings Ch9
  • Arpaci-Dusseau Ch7, Ch8

Fri 08/03 Lecture #14 :
Virtualizing Memory
[ slides ]
  • Stallings Ch7
  • Arpaci-Dusseau Ch15, Ch16

Tue 12/03 Lecture #15 :
Paging
[ slides ]

Fri 15/03 Midterm Exam

Tue 19/03 Lecture #16 :
TLB
[ slides ]
  • Stallings Ch7, Ch8
  • Arpaci-Dusseau Ch21

Fri 22/03 Lecture #17 :
Smaller Tables
[ slides ]
  • Stallings Ch7, Ch8
  • Arpaci-Dusseau Ch22

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

Fri 29/03 Lecture #19 :
Memory Policy
[ slides ]
  • Stallings Ch7, Ch8
  • Arpaci-Dusseau Ch22

Tue 02/04 Lecture #20 :
I/O Devices and Drivers
[ slides ]
  • Stallings Ch11
  • Arpaci-Dusseau Ch36

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

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

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

Tue 16/04 Lecture #24 :
TBD
[ slides ]

Fri 19/04 Lecture #25 :
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

  • 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).

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

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%