CS 492 Operating Systems

Spring 2021

InstructorsGeorgios Portokalidis
Jun Xu
LecturesMonday-Wednesday-Friday (online)
Section A: 9:00-9:50am
Section B: 10:00-10:50am
Section C: 10:00-10:50am
TAs Brad Bachrach
Dennis Zhang
Tarquin Bennett
Enes Goktas
Communications Piazza

Course Description

The use and internals of modern operating systems: lectures focus on internals whereas programming assignments focus on use of the operating system interface. Major topics include: the process concept; concurrency and how to program with threads; memory management techniques, covering virtual memory and shared libraries; file system data structures; and I/O.

Detailed information about the course can be found in the syllabus.

Course Material

Mandatory:

Other readings:

  • Modern Operating Systems (4th Edition), Andrew S. Tanenbaum, Herbert Bos
  • Linux Device Drivers 4th Edition (3rd Edition is also good) (open-source)
  • Materials posted on Canvas

Optional:

  • Understanding the Linux Kernel, any Edition

Course Schedule and Readings

Introduction

Readings: zyBook Ch.1, MOS Ch.1

Process and Threads

Readings: zyBook Ch.2, MOS Ch.2.1-2.2,6.1

Introduction to Linux

Scheduling

Readings: zyBook Ch.3, MOS Ch.2.4

Concurrency

Readings: zyBook Ch.4, MOS Ch.2.3, 2.5

Memory Management

Readings: zyBook Ch.6, MOS Ch.3.1-3.3, 3.7

Virtual Memory

Readings: zyBook Ch.7, MOS Ch.3.3-3.5

File Systems

Readings: zyBook Ch.8, MOS Ch.4.1-4.3

Input/Output

Readings: zyBook Ch.9, MOS Ch.5.1-5.4, 4.4

Deadlock

Readings: zyBook Ch.5, MOS Ch.6.2, 6.4-6.6

Security

Readings: zyBook Ch.10, MOS Ch.9