Course Schedule

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

Topic Deadlines & Materials
Week 1: August 18 – 24

Introduction, OS Basics

Exploring the OS

Week 2: August 25 – 31

Remembering How to C

Improving our C Library

Booting Up

  • Lab 0 Due ⋅ August 26

Week 3: September 1 – 7

Monday: Holiday

Processes and Daemons

  • Lab 1 Due ⋅ September 2

Week 4: September 8 – 14

System Calls

Init & Program Loader

  • init.c, exec.c, sh.c modifications
  • Recording
  • Lab 2 Due ⋅ September 9

  • Quiz 1 ⋅ September 9

  • P1 Plan Due ⋅ September 9

Week 5: September 15 – 21

Scripting, P1 Submission

Debugging, Syscall Tracing

Inter-Process Communication

  • Lab 3 Due ⋅ September 16

Week 6: September 22 – 28

Pipes

Code Reviews and Quiz 2

  • Lab 4 Due ⋅ September 25

  • P1 Implementation Due ⋅ September 23

Week 7: September 29 – October 5

Building a Shell

Lab & Project Overview

  • Quiz 2 ⋅ September 30

  • P1 CR1 Due ⋅ September 30

  • P1 CR2 Due ⋅ September 30

Week 8: October 6 – 12

CPU Scheduling

Multi-Level Feedback Queues

  • Lab 5 Due ⋅ October 7

Week 9: October 13 – 19

Fall Break

Lab 5 and P2 Grading

Quiz 3 Study Guide

  • P2 Part 1 Due ⋅ October 16

Week 10: October 20 – 26

Monday: Quiz 3

Memory Allocation

  • Lab 6 Due ⋅ October 21

  • Quiz 3 ⋅ October 21

Week 11: October 27 – November 2

Segmentation

Week 12: November 3 – 9

Paging

  • P2 Part 2 Due ⋅ November 4

Week 13: November 10 – 16

Writing a Memory Allocator

  • Quiz 4 ⋅ November 11

Week 14: November 17 – 23

File Systems

Week 15: November 24 – 30

Files and Disks

Week 16: December 1 – 7

Disk Scheduling & SSDs

  • Quiz 5 ⋅ December 4

Week 17: December 8 – 14

Final Quiz: Monday, December 9 ⋅ 10:00am – 10:30am