CS 343: Operating Systems, Winter, 2023

Instructor:Peter Dinda
Teaching Assistants: Nick Wanninger (Mudd 3301)
Griffin Dube (Mudd 3301)
Peer Mentors: Thomas Filipiuk
Garrett Weil
Lecture:Mondays and Wednesdays, 9:30-10:50, Tech M345 (in person)
Optional Discussion:Wednesdays, 4pm, Tech L211 + Zoom (also recorded)
Office Hours: Times and Locations (including Zoom) are on Canvas and Piazza

This course currently has 75 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 for access to Zoom and Zoom Recordings, 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 Campuswire.
  • All lab handouts and handins will be handled via GitHub Classroom. 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, discussion, 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 detailed 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.

    Labs

  • Getting Started Lab (pdf) (Out: 1/3, In: 1/9)
  • Producer-Consumer Lab (pdf) (Out: 1/9, In: 1/25)
  • Queueing/Scheduling Lab (pdf) (Out: 1/25, In: 2/9 [one day extension])
  • Device Driver Lab (pdf) (Out: 2/8, In: 2/23 [one day extension])
  • Paging Lab (pdf) (Out: 2/22, In: 3/8)
  • Exams

  • Midterm: Monday, February 6, Details in Piazza/Email
    Covers lectures 1-9 and related reading/materials in syllabus
    Midterm Review Session: Friday, February 3, 1pm, Searle 2370 (in person, plus Zoom, and will be recorded)
  • Final: Monday, March 13, 12-2 (nominal). Details in Piazza/Email
    Covers lectures 10-19, and related reading/materials in syllabus
    Final Review Session: Thursday, March 9, 4pm, Tech LR2 (in person, plus Zoom, and will be recorded)
  • Resources

  • Make Introduction (pdf)
  • Gdb commands (pdf)
  • Gdb manual (html)
  • 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