CPSC 331 Operating Systems Spring 2026

CPSC 331 Course Information

On this page:


Course Description and Objectives

From the course catalog:

An operating system, such as Windows, Mac OS, or Linux, is a fundamental part of any computing system. The core concept of processes in modern operating systems is explored. Techniques covered include process execution, CPU scheduling, address translation, and virtual memory. Additional topics may include concurrency with threads, file systems, and security basics. An introduction to the C programming language is used to demonstrate system level applications.

Our study of these topics will be organized around three main concepts: virtualization, concurrency, and persistence. Virtualization lies at the core of what an operating system does, providing each program with an easy-to-use view of the underlying hardware and the illusion of having exclusive access to the system. Concurrency and persistence address two essential supporting capabilities: the safe and efficient management of multiple activities executing at the same time, and the reliable storage of programs and data that outlive individual processes and can survive system crashes or power failures.

By the end of the course, the successful student should be able to:

  • Explain the process abstraction and CPU virtualization mechanisms, including process creation, execution, context switching, and preemption.
  • Analyze and compare CPU scheduling policies, evaluating their behavior and trade-offs using performance metrics such as turnaround time, response time, and fairness.
  • Explain how operating systems virtualize memory, including address spaces, address translation, and the role of hardware support such as page tables and TLBs.
  • Analyze virtual memory mechanisms, including paging, page replacement policies, and swapping, and evaluate their performance and space trade-offs.
  • Identify and analyze concurrency problems, including race conditions, atomicity violations, and deadlock.
  • Explain and apply synchronization mechanisms, such as locks, condition variables, and semaphores, to ensure correct concurrent execution.
  • Explain file system abstractions and implementation techniques, including files, directories, allocation methods, and metadata management.
  • Perform basic tasks using the Unix command line and write C programs that use system calls and libraries to interact with operating system services.

Class Format and Expectations

This is primarily a lecture-based class with three class meetings per week, weekly written homeworks, a series of projects, and in-class exams. To assist with the programming projects, a weekly one-hour lab period will be scheduled.

You are expected to attend all scheduled class meetings and at least five lab sessions over the course of the semester. The timing of the lab sessions will be set early in the semester and effort will be made to schedule them at times everyone can attend. If you cannot attend a scheduled lab, it can be made up by coming to office hours instead.

You should expect to spend approximately 8-10 hours per week on average on additional work (readings, homework, projects, studying) outside of class. While your experience may vary from topic to topic or from week to week, if you routinely spend substantially more time or you feel like you are spinning your wheels and not making progress, you should visit office hours for help.


Prerequisites

CPSC 225 is required.
Most of the homeworks will involve running programs instead of writing them, but the projects are a chance to do some programming. Programming will be done in C, which will be introduced in the course.


Required Materials
Textbook

Operating Systems: Three Easy Pieces
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
Arpaci-Dusseau Books
November, 2023 (Version 1.10)

The book is freely available at https://pages.cs.wisc.edu/~remzi/OSTEP/. You can download PDF versions of individual chapters for free from the website, or order a printed copy if you'd like a physical copy. A single PDF of the whole book is also available for a small fee. Please do not use the Math/CS department printers to print the text for yourself.

Additional material will be handed out or posted on the course webpage.

Software

All assignments should be done using the campus Linux environment, accessible in Demarest 002 or remotely through the Linux VDI.