Computer Science
>
>

CS 140: Operating Systems

Spring 2020

Stanford University

This course provides an in-depth understanding of the basic facilities provided by modern operating systems. It's structured into three major sections: concurrency, memory management, and file systems, followed by some smaller topics like virtual machines. The class includes one problem set and four programming projects based on the Pintos kernel, requiring a significant commitment of time.

Course Page

Overview

This class introduces the basic facilities provided by modern operating systems. The course divides into three major sections. The first part of the course discusses concurrency: how to manage multiple tasks that execute at the same time and share resources. Topics in this section include processes and threads, context switching, synchronization, scheduling, and deadlock. The second part of the course addresses the problem of memory management; it will cover topics such as linking, dynamic memory allocation, dynamic address translation, virtual memory, and demand paging. The third major part of the course concerns file systems, including topics such as storage devices, disk management and scheduling, directories, protection, and crash recovery. After these three major topics, the class will conclude with a few smaller topics such as virtual machines.

The class work consists of one problem set and a series of four programming projects based on the Pintos kernel. You will learn a lot from these projects, but be prepared to spend a significant amount of time working on them.

Prerequisites

No data.

Learning objectives

No data.

Textbooks and other notes

There is no required textbook for this class: the material of the course is defined by the lectures and does not exactly correspond to any existing book. However, I recommend the following book if you would like an additional source of material to supplement lectures:

Each page of lecture notes lists related readings in this book at the front of the notes page. Most students find that the material from lecture is sufficient for their course needs, so I recommend that you start the course without the book and only purchase the book if you are having difficulties understanding the lectures.

Other courses in Operating Systems

CS240 Advanced Topics in Operating Systems

Winter 2023

Stanford University

CSE 333 Systems Programming

Summer 2022

University of Washington

CS 111 Operating Systems Principles

Autumn 2022

Stanford University

CS 140E: embedded operating systems

Winter 2023

Stanford University

Courseware availability

Lecture slides and notes available at Lecture Schedule

No videos available

Projects available at Projects

No other materials available

Covered concepts