Course Schedule

The following is a tentative schedule for the course (subject to change).

Topic Deadlines & Materials
Week 1: January 21 – 27

Introduction, OS Basics

Remembering how to C

Working Remotely

Week 2: January 28 – February 3

Improving our C Library

Booting Up

Processes and Daemons

  • Lab 0 Due ⋅ January 29

  • Lab 1 Due ⋅ January 29

Week 3: February 4 – 10

System Calls

GitHub Workflow

Debugging with GDB

  • Lab 2 Due ⋅ February 5

Week 4: February 11 – 17

Quiz Study Guide

The Init System

The Program Loader

  • Lab 3 Due ⋅ February 12

  • Quiz 1 ⋅ February 14

  • P1 Plan Due ⋅ February 12

Week 5: February 18 – 24

Monday: No class, Presidents' Day

Inter-Process Communication

Friday: Project Check

  • Lab 4 Due ⋅ February 21

Week 6: February 25 – March 2

Monday: No class

Pipes

  • P1 Implementation Due ⋅ February 26

Week 7: March 3 – 9

Quiz 2

Building a Shell

  • Quiz 2 ⋅ March 4

  • P1 CRs Due ⋅ March 8

Week 8: March 10 – 16

Spring Break!

Week 9: March 17 – 23

CPU Scheduling Intro

Basic Scheduling

Week 10: March 24 – 30

Monday: Lab & P2 Grading

Project Hints

  • Lab 5 Due ⋅ March 25

  • P2 Part 1 Due ⋅ March 25

Week 11: March 31 – April 6

Multi-Level Feedback Queues

Quiz and Work Time (Friday)

  • Lab 6 Due ⋅ April 1

  • Quiz 3 ⋅ April 5

  • P2 Part 2 Due ⋅ April 3

  • Reading: OSTEP Ch 8
Week 12: April 7 – 13

Memory Allocation

Week 13: April 14 – 20

Segmentation

Paging

Week 14: April 21 – 27

Writing a Memory Allocator

Study Guide, Lab 7

Week 15: April 28 – May 4

File Systems

Files and Disks

Disk Scheduling & SSDs

  • Lab 7 Due ⋅ April 29

  • Quiz 4 ⋅ April 29

Week 16: May 5 – 11

P3 and Quiz 5

allocation hints

  • Lab 8 Due ⋅ May 6

  • Quiz 5 ⋅ May 8

  • P3 Due ⋅ May 8

Week 17: May 12 – 18

Final Quiz: Monday, May 13 ⋅ 10:00am – 12:00pm