Course Schedule

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

Topic Deadlines & Materials
Week 1: August 17 – 23

Introduction, OS Basics

Week 2: August 24 – 30

Exploring the OS, Remembering How to C

Booting Up

  • R1 Due ⋅ August 25

  • L1 Due ⋅ August 25

Week 3: August 31 – September 6

Monday: Labor Day

Misc announcements, libc

Week 4: September 7 – 13

Processes and Daemons

System Calls

  • R2 Due ⋅ September 8

  • L2 Due ⋅ September 8

  • Quiz 1 ⋅ September 10

Week 5: September 14 – 20

Program Loader, Scripting

Inter-Process Communication

  • R3 Due ⋅ September 15

  • L3 Due ⋅ September 15

  • P1 Proposal Due ⋅ September 15

Week 6: September 21 – 27

Strace Discussion

Pipes

  • P1 Implementation Due ⋅ September 26

Week 7: September 28 – October 4

Building a Shell

  • Quiz 2 ⋅ October 1

  • P1 Code Review Due ⋅ October 3

Week 8: October 5 – 11

CPU Scheduling

Multi-Level Feedback Queues

Week 9: October 12 – 18

Monday: Fall Break

Week 10: October 19 – 25

Memory Allocation

  • Quiz 3 ⋅ October 22

Week 11: October 26 – November 1

Segmentation

Enhancing our Allocator

Week 12: November 2 – 8

Paging

Addressing

Week 13: November 9 – 15

File Systems

  • Quiz 4 ⋅ November 12

Week 14: November 16 – 22

Files and Disks

Week 15: November 23 – 29

Disk Scheduling & SSDs

Week 16: November 30 – December 6
  • Quiz 5 ⋅ December 3

Week 17: December 7 – 13

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