CS 343: Operating Systems, Winter, 2022

Instructor:Peter Dinda (Office Hours: Thursdays, 12-3, Zoom, or by appointment)
Teaching Assistants: Deniz Ulusel (Office Hours: Tuesdays, 11-2, Zoom, or by appointment)
Madhav Suresh (Office Hours: Mondays, 3:30-5, and Wednesdays, 3:30-5, Zoom, or by appointment)
Peer Mentors: Peizhi Liu (Office Hours: Mondays, 12-1:30, and Fridays, 9-10:30, Zoom, or by appointment)
Kevin McAfee (Office Hours: Tuesdays, 3:30-5, and Thursdays, 3:30-5, Zoom, or by appointment)
Kailai Tang (Office Hours: Fridays, 12:30-2, and Fridays 3-4:30, Zoom, or by appointment)
Kevin Mendoza Tudares (Office Hours: Tuesdays, 9:30-11, and Wednesdays, 9:30-11, Zoom, or by appointment)
Yue Wang (Office Hours: Mondays, 9-12, Zoom, or by appointment)
Lecture:Mondays and Wednesdays, 2-3:20, Zoom, hopefully transitioning back to in-person at some point
Optional Discussion:Fridays, 2-3ish, Zoom (also recorded)

This course currently has 90 students.

Midterm Review Session: Friday, February 4, 2pm, in Discussion (also recorded)

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.

Note that because of Omicron and other issues, this quarter is complicated. We will be starting with remote education (Zoom), and then hopefully transitioning to in-person at some point. See the syllabus and CampusWire for more information.

Communication

We will use Canvas to report grades, and for access to Zoom and Zoom Recordings, but for nothing else. For critical announcements, we will send email to the addresses that CAESAR maintains.

For discussion, we will use CampusWire. Directing your questions to CampusWire will likely produce the fastest response, and everyone else in the class will also benefit. CampusWire 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 and on CampusWire.
  • 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 and on CampusWire.
  • 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/10)
  • Producer-Consumer Lab (pdf) (Out: 1/10, In: 1/26)
  • Queueing/Scheduling Lab (pdf) (Out: 1/26, In: 2/9)
  • Device Driver Lab (pdf) (Out: 2/9, In: 2/23)
  • Paging Lab (pdf) (Out: 2/23, In: 3/9)
  • Exams

  • Midterm: Monday, February 7, outside of class. Details in CampusWire/Email
    Covers lectures 1-9 and related reading/materials in syllabus
    Midterm Review Session: Friday, February 4, 2pm in discussion (on Zoom and will be recorded)
  • Final: Monday, March 14 (with accommodations). Details in CampusWire/Email
    Covers lectures 10-19, and related reading/materials in syllabus
    Final Review Session: Friday, March 11, 2pm in discussion (on 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
  • Last modified: Mon Feb 28 18:25:33 CST 2022