CS 343: Operating Systems, Winter, 2025

Instructor:Peter Dinda
Teaching Assistants: David Krasowska (Mudd 3302)
Kirill Nagaitsev (Mudd 3301)
Peer Mentors: Rafael Biedron
Kevin Hayes
John Hileman
Liam Strand
Emily Wei
Lecture:Mondays and Wednesdays, 2:00-3:20, Annenberg G15 (in person only)
Office Hours: Times and Locations (including Zoom) are on the class calender linked to from the Canvas home page for the course.

This course currently has 100 students (high point: 120 students).

CS 343 satisfies one of the systems breadth, 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/6, In: 1/13)
  • Producer-Consumer Lab (pdf) (Out: 1/13, In: 1/29)
  • Queueing/Scheduling Lab (pdf) (Out: 1/29, In: 2/12) [updated to 2/14]
  • Device Driver Lab (pdf) (Out: 2/12, In: 2/26) [updated to 2/28]
  • Paging Lab (pdf) (Out: 2/27, In: 3/14)
  • Exams

  • Midterm: Tuesday, February 11, 6pm, Outside of Class, Details in Piazza/Email
    Covers lectures 1-9 and related reading/materials in syllabus
    Midterm Review Session: Monday, February 10, 6pm, Outside of Class (in person, plus Zoom, and will be recorded)
  • Final: Tuesday, March 18, 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)
  • 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
  • Last modified: Mon Feb 28 18:25:33 CST 2022