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
Schedule
Date | Lecture | Readings | Logistics | |
---|---|---|---|---|
Tue 23/01 |
Lecture #1
:
Introduction [ slides ] |
|
||
Fri 26/01 |
Lecture #2
:
Overview [ slides ] |
|
||
Tue 30/01 |
Lecture #3
:
OS Structure [ slides ] |
|
||
Fri 02/02 |
Lecture #4
:
Processes [ slides ] |
|||
Tue 06/02 |
Lecture #5
:
Threads [ slides ] |
|||
Fri 09/02 |
Lecture #6
:
Synchronization: Mutual Exclusion [ slides ] |
|||
Tue 13/02 |
Lecture #7
:
Synchronization: Semaphores, Monitors, and Condition Variables [ slides ] |
|||
Fri 16/02 |
Lecture #8
:
Synchronization: Semaphores, Monitors, and Condition Variables (continue) [ slides ] |
|||
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 ] |
|
||
Fri 01/03 |
Lecture #12
:
Deadlock [ slides ] |
|
||
Tue 05/03 |
Lecture #13
:
CPU Scheduling [ slides ] |
|||
Fri 08/03 |
Lecture #14
:
Virtualizing Memory [ slides ] |
|||
Tue 12/03 |
Lecture #15
:
Paging [ slides ] |
|||
Fri 15/03 | Midterm Exam | |||
Tue 19/03 |
Lecture #16
:
TLB [ slides ] |
|
||
Fri 22/03 |
Lecture #17
:
Smaller Tables [ slides ] |
|
||
Tue 26/03 |
Lecture #18
:
Memory Policy [ slides ] |
|
||
Fri 29/03 |
Lecture #19
:
Memory Policy [ slides ] |
|
||
Tue 02/04 |
Lecture #20
:
I/O Devices and Drivers [ slides ] |
|
||
Fri 05/04 |
Lecture #21
:
Storage Devices [ slides ] |
|
||
Tue 09/04 |
Lecture #22
:
File Systems [ slides ] |
|||
Fri 12/04 |
Lecture #23
:
File Layout and Directories [ slides ] |
|
||
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%