CS 111

CS 111: Operating Systems Principles

Course Description

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.

Course Staff

Robbie Jones
Robbie Jones
Course Assistant
rmjones@stanford
Isaac Scheinfeld
Isaac Scheinfeld
Course Assistant
ischein@stanford

Add ".stanford.edu" or ".edu" to all e-mail addresses above. For most issues, the best way to contact staff is to post a question on Ed Discussions rather than emailing a particular person.

General Information

Lectures
MWF 11:30-12:20 on Canvas Zoom
Sections
F 2:00-2:50 on Canvas Zoom
Office Hours
Discussions
Ed Discussions (signup here)
Midterm Exam 1
Weds. May 5, 7:00-8:30 PM PDT on Zoom
Midterm Exam 2
Fri., May 28, Time TBD

Upcoming Lectures

Upcoming Projects

Useful Links

What's the relationship between CS 110 and CS 111?