CS 343: Operating Systems, Winter, 2026

Instructor:Peter Dinda
Teaching Assistant: Friedrich Doku (Mudd 3302)
Peer Mentors: Hasan Aybars Ari
Harry Guan
Kevin Hayes
Jack Riconosciuto
Liam Strand
Haresh Wedanayake
Leo Zhang
Lecture:Mondays and Wednesdays, 3:30-4:50, Tech L211 (in person only)
Office Hours: Times and Locations are on the class calender linked to from the Canvas home page for the course.

This course currently has 60 students (high point: 63 students).

CS 343 satisfies one of the systems breadth, systems concentration, tech elective, or project requirements within the Computer Science major. It can also be taken for credit within the CE major.

Communication

We will use Canvas to report grades and to disseminate the occasional recording, but for little else. For critical announcements, we will send email to the addresses that CAESAR maintains.

For discussion, we will use Piazza. Directing your questions to Piazza will likely produce the fastest response, and everyone else in the class will also benefit. Piazza is configured to allow anonymous posting.

Accounts, Remote Access, Getting Started with Unix

  • You will have a Linux account on the Wilkinson lab.
  • You will also have a Linux account on private servers we have set up. These accounts will be discussed in class, discussion, and on Piazza.
  • It is possible to set up your own machine to do the labs. More info is on Piazza.
  • All lab handouts and handins will be handled via GitHub Classroom (with some use of Gradescope as well). You should be sure to sign up for a GitHub account if you don't already have one. The details of using GitHub Classroom will be discussed in class and on Piazza.
  • Handouts

  • Syllabus (pdf)

  • Concurrency (pdf)
  • Workload Characterization (pdf)
  • Queueing Theory and Scheduling (pdf)
  • THERAC-25 (article scan, searchable version)
  • Mars Pathfinder (classic account, nice recent summary)
  • Meltdown/Spectre (Full Site, Good Blog Post)
  • Unix Systems Programming In A Nutshell (pdf)
  • I don't use slides. You are welcome to check out Branden Ghena's Slides. I do expect you to do all assigned reading and fill out a short form about it before each lecture.

    Labs

  • Getting Started Lab (pdf) (Out: 1/5, In: 1/12)
  • Producer-Consumer Lab TBD
  • Queueing/Scheduling Lab TBD
  • Device Driver Lab TBD
    We are considering whether to do a File Systems Lab instead
  • Paging Lab TBD
  • Exams

  • Midterm: TBD, Outside of Class, Details in Piazza/Email
    Covers lectures 1-9 and related reading/materials in syllabus
    Midterm Review Session: TBD Outside of Class (in person, plus Zoom, and will be recorded)
  • Final: Friday, March 20, 3-5 (nominal), Details in Piazza/Email
    Covers lectures 10-19, and related reading/materials in syllabus
    Final Review Session: TBD, Outside of Class (in person, plus Zoom, and will be recorded)
    We will try to improve this date/time
  • Resources

  • Deadlock Empire Game
  • Make Introduction (pdf)
  • Gdb commands (pdf)
  • Gdb manual (html)
  • Gdb PT Dump may be very helpful, particularly for Paging Lab
  • The Intel Architecture Manuals and the AMD Architecture Manuals
  • See also the materials from CS 213
  • OSDev: A great site folks who like this enough to want to make their own OS