CS 374 :: Spring 2026 :: Operating Systems I



Textbooks

No required textbook. Reading materials will be provided on the course website and/or distributed in class. If you lack the basics in system programming, please refer to this short online course:

  • [MIT] The Missing Semester of Your CS Education [Link]

Prerequisites

CS 261 (261H) and (CS 271 or ECE 271)
A minimum grade of C is required in those courses.

  • CS 261 (261H): Data Structures
  • CS 271: Computer Architecture and Assembly Language
  • ECE 271: Digital Logic Design

Grading

Your final grade for this course will be based on the following scheme:

  • 60%: 5 Online Programming Assignments
  • 40%: 4 Online Mid-term Quizzes
  • Up to 10%: Extra point opportunities
    • +2%: Rust programming

Course Objectives

By the end of this course, you will be able to:


Announcements


Schedule

*[Note] This is a tentative outline; the lecture contents or the deadlines can change depending on progress.
Date Topics Notes Supplementary Materials
Overview and Motivation
Mon.
03/30
Intro to Operating Systems [Slides]
Wed.
04/01
Preliminaries [Slides] [Reading] The Missing Semester of Your CS Education
Part I: OS Fundamentals
Mon.
04/06
Processes and Threads [Slides] [Due] Syllabus Quiz
Wed.
04/08
Context Switching [Slides]
Mon.
04/13
Virtual Memory
[Online]
[Slides] [Due] Programming Assignment I
[Reading] Thrashing
Wed.
04/15
Scheduling (Basics) [Slides] [Reading] Process scheduling
[Reading] Real-Time Operating Systems (RTOS)
Part II: Files and File System Basics
Mon.
04/20
Files [Slides] [Due] Midterm Quiz I
[Reading] The UNIX Time-sharing System
Wed.
04/22
I/O [Slides]
Mon.
04/27
Filesystem Internals [Slides] [Due] Programming Assignment II
[OS Internals] Linux file descriptor table
[OS Internals] Linux source code for fopen()
Part III: IPC, RPC, and Networking
Wed.
04/29
Signals and PIPEs [Slides] [Due] Midterm Quiz II
Mon.
05/04
Sockets [Slides]
Wed.
05/06
Networking I [Slides] [Reading] IPv4 vs. IPv6
[Reading] HTTPS (explained IPv6)
[Reading] Man-in-the-Middle attack
[Reading] Apache or NGINX
Mon.
05/11
Networking II
[SH's Conference Travel]
[Slides] (Async) Recorded materials on Canvas
Part IV: Synchronization
Wed.
05/13
Synchronization I [Slides] [Due] Midterm Quiz III
[Due] Programming Assignment III
[Reading] Resource contention
Mon.
05/18
Deadlock
[SH's Conference Travel]
[Slides] (Async) Recorded materials on Canvas
Wed.
05/20
Synchronization II
[SH's Conference Travel]
[Slides] (Async) Recorded materials on Canvas
[Reading] Race condition
[Reading] Google's Syzkaller
Mon.
05/25
Memorial Day [No lecture]
Wed.
05/27
Synchronization III [Slides] [Due] Programming Assignment IV
[Tools/Tips] Semaphore Man Page
[Reading] Linearizability
Part V: Safe Operating Systems
Mon.
06/01
Rust in Linux Kernel [Slides] [Reading] Paper: Security of GitHub's Code Copilot
[Reading] Rust in the Linux Kernel
Wed.
06/03
Rowhammer and Side-channels [Slides] [Reading] PrisonBreak: Jailbreaking LLMs with at Most 25 Targeted Bit-flips
Finals Week (06/08 - 06/12): Please do your late submissions for programming assignments by 06/12.
Mon.
06/08
- [Due] Midterm Quiz IV
Fri.
06/12
- [Due] Programming Assignment V
[Due: late submissions] Programming Assignment I-V