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 :
CPU Scheduling
[ slides ]
  • Stallings Ch9
  • Arpaci-Dusseau Ch7, Ch8

Fri 23/02 Lecture #10 :
Deadlock
[ slides ]
  • Stallings Ch6
  • Arpaci-Dusseau Ch32

Tue 27/02 Lecture #11 :
Memory Management Overview
[ slides ]
  • Stallings Ch7
  • Arpaci-Dusseau Ch15, Ch16

Fri 01/03 Lecture #12 :
Paging
[ slides ]

Tue 05/03 Lecture #13 :
Swapping, Memory Allocation and Sharing
[ slides ]
  • Stallings Ch7, Ch8
  • Arpaci-Dusseau Ch21

Fri 08/03 Lecture #14 :
Page Replacement
[ slides ]
  • Stallings Ch7, Ch8
  • Arpaci-Dusseau Ch22

Tue 12/03 Lecture #15 :
Working Sets
[ slides ]
  • Stallings Ch7, Ch8
  • Arpaci-Dusseau Ch22

Fri 15/03 Midterm Exam

Tue 19/03 Lecture #16 :
I/O Devices and Drivers
[ slides ]
  • Stallings Ch11
  • Arpaci-Dusseau Ch36

Fri 22/03 Lecture #17 :
Storage Devices
[ slides ]
  • Stallings Ch11
  • Arpaci-Dusseau Ch37

Tue 26/03 Lecture #18 :
File Systems
[ slides ]
  • Stallings Ch12
  • Arpaci-Dusseau Ch39, Ch39

Fri 29/03 Lecture #19 :
File Layout and Directories
[ slides ]
  • Stallings Ch12
  • Arpaci-Dusseau Ch40

Tue 02/04 Lecture #20 :
File Performance
[ slides ]
  • Stallings Ch12
  • Arpaci-Dusseau Ch41

Fri 05/04 Lecture #21 :
File Reliability
[ slides ]
  • Stallings Ch12
  • Arpaci-Dusseau Ch42

Tue 09/04 Lecture #22 :
Distributed Systems
[ slides ]
  • Stallings Ch12
  • Arpaci-Dusseau Ch48

Fri 12/04 Lecture #23 :
Datacenters and Clouds
[ slides ]
  • Stallings Ch16
  • Arpaci-Dusseau Ch48

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%