Operating Systems Principles

Ethics Content Description

The ethics materials cover principles of trust in operating systems. Lectures provided a framing of trust as an unquestioning attitude that extends our agency, different ways trust manifests (assumption, inference), technical and socio-technical approaches to partly substitute the need to trust, and contextual factors related to trusting operating systems. Assignments explored case studies related to race conditions, long-term OS support, and file system permissions.

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 flash memory and virtual machines.

Contributors

Ethics materials created by Benjamin Xie, Xiyu Zhang, William Ray III, Liana Keesing, Swayam Parida, Julia Kwak, Makenzy Storm Caldwell, Prof. Nick Troccoli, and Prof. John Ousterhout.

Modules (Assignments + Lectures)

Download all