CS134 Operating Systems

Welcome to Operating Systems! Everyone who uses a computer, smartphone, or even microwave regularly interfaces with an Operating System, the software that manages a computer’s resources. An operating system is what allows multiple programs to run on the same hardware at the same time, provides abstract interfaces to the hardware, and provides a standard design for running applications. In this course, you will learn key concepts related to operating system designs, pitfalls, and open challenges in principle and in practice. Topics covered will include:

  • Processes, Process Design, and Process Management;
  • Process Scheduling and Thread Scheduling;
  • Virtualization;
  • Memory Management and Address Translation;
  • Isolation and Security.

In this class, you will implement six (subject to change) C-based programming assignments throughout the course culminating in a minimally functional, usable operating system.

Prerequisites: CS105: Computer Systems

Lecture: MW 2:45-4:00PM (Lincoln 1125)

Final Exam Period: Friday, December 18, 2-5PM (Lincoln 1125)

Course Feedback: Feel free to notify me of things that are working, not working, or otherwise about this course before/after class, in office hours, or via the anonymous feedback form. This only works if I follow up and make the appropriate changes, so please hold me accountable if I fail to accommodate.

Instructor

Prof. Sam Thomas

samuel.thomas@pomona.edu

Office Hours

Edmunds 112. Monday 4-5pm, Tuesday 2:30-3:30pm, Wednesday 4-5pm, Thursday 2:30-3:30pm. Also by appointment.

Schedule an appointment

Syllabus

Find the full syllabus here. Some points of interest may be found below.

Grading

  • Assignments: 70%
  • Final Exam: 20%
  • Participation: 10%

Assignments

There are six assignments throughout this course. Assignments are scheduled to take 2-3 weeks, and points are evenly split across the programming component and code review. For more on what you can expect from assignments in this course, be sure to look at the assignments page.

Final Exam

The final exam is a short answer exam that comprehensively covers the materials from this class in short answer form. Questions on the exam will be open-ended and serve as an opportunity for you to expound on cross-cutting issues in modern operating systems. A study guide will be released 3 weeks in advance of the exam.

Course Policies

Assignment Submissions

All assignments are due at the time specified in the handout. If you need an extension, please contact the instructor at least 48 hours before the assignment is due. Expect extensions to be granted for reasons similar to excused absences. Every 48 hours the assignment is late will be a 10% deduction in the overall score.

Note, deadlines are designed for your benefit and the benefit of your peers. Grades are only to be released after all submissions have been made, and failure to meet the deadline prolongs the release of grades for you and your peers.

Attendance Policy

Lecture attendance is required, particularly for code review sessions. Students may have up to 4 excused absences (informing the instructor 48+ hours in advance) throughout the semester. Failure to meet the attendance policy may result in lower marks in the participation score.

With this in mind, we live in a post COVID-19 world. If you are feeling unwell, please do not come to class and contact the instructor when you are well. You will be directed to the appropriate resources to get back on track.

Collaboration Policy

Assignments in this course are intended to be implemented as a pair-programming assignments! That means that you and your partner are working on the assignment together.

AI Policy

As part of the Pomona CS Pilot AI Policy, this class maintains the Tier 1 level of acceptable AI use. As such, use of AI and LLMs is permitted in this course under limited circumstances. These tools should be treated in the same way that you would use a TA. Any submitted generated code or textual output must be cited. All session logs that have been used to facilitate the generation of submitted materials must be saved, and these logs may be requested by the instructor at any point.

The guiding philosophy of acceptable use is designed to enhance your learning in the classroom while still demonstrating the intended learning goals of the course. As such, the following behaviors are allowed under this policy:

  • Asking to generate practice problems;
  • Asking to explain high level concepts;
  • Asking for high level explanations of error messages (as per searching on StackOverflow).

The following behaviors are not allowed under this policy:

  • Generating code for an assignment (please include “Do not generate code. Only explain in concepts.” in any prompt related to assignment help);
  • Debugging code by pasting in the your code directly.

Additionally, students may not:

  • Using assignment and exam documents or direct language from assignments and exams as part of a query;
  • Using assignment code scaffolding as part of a query.

Note, this list is not exhaustive. If you are unsure if it is acceptable to use AI or LLMs for a particular use case, please verify it with your instructor. Appropriate response to violation of the AI policy will be determined on a case-by-case basis in a meeting with the instructor.

In-Class Discussion Policy

This policy is adapted from the Brown University Sheridan Center. To facilitate effective group discussions, a non-exhaustive list of things to consider include:

  • Constructing an inclusive environment in which discussion participants are encouraged to take risks and be willing to be wrong;
  • Ensuring discussion participants come to the discussion prepared to be effective participants;
  • Initiating discussion with engaging, relevant topics or challenges;
  • Encouraging active listening;
  • Helping participants digest what they are hearing;
  • Managing and facilitating the flow of the session;
  • Making clear the statements open for further discussion;
  • As needed, help the group reach a satisfactory closure point.

Additionally, we will adhere to the following strategies for inclusion in group discussions by:

  • Taking active steps towards knowing each other’s names
  • Respecting speakers by limiting electronic usage to non-destructive note taking
  • Leaving room for others to participate by being conscious of the extent of our own participation
  • In smaller group conversations, orienting our chairs and bodies to include everyone in the conversation
  • Respecting non-verbal participation in group discussion

Office Hours Policy

Office hours are a resource for you to use, and are designed to facilitate your learning. Please come to office hours! At the same time, because it is a shared resource, office hours must be equitably distributed. At my discretion, I will set limits on individual feedback in office hours to ensure that other students are able to receive help.

Given the Collaboration Policy of the course, I expect you and your partner to be in attendance for debugging help. If my posted hours do not work, please email me to schedule an alternate time. Otherwise, I am happy to go over high level concepts, but will recuse myself from looking at code with you. The goal of this policy is not to be punitive but rather to encourage working together and realize the well studied benefits of pair-programming!

My hours are spread out across time slots throughout the week to accommodate students with different availability. If the scheduled times do not work for you, feel free to schedule an appointment. If a large cohort of students is unavailable for office hours, I will do my best to change my schedule to accommodate.

My office hours are split by course-specific times and general times to increase their frequency and utility. General times are designed to be times to chat about the course, research, life, or otherwise – so feel free to attend these to discuss course materials or otherwise!

Policies Policy

These policies are designed to help facilitate your learning, but no policy is set in stone. Accommodations can be made on a case-by-case basis where appropriate. Please contact your instructor with any concerns. I am happy to try to help however possible!

External Resources

See the full syllabus for a list of relevant college-provided resources.


Course page inspired by Kevin Lin's "Just the Class".