Back to Schedule

Lecture 1 Introduction

Lecture 3 Process Abstraction

Overview

In Lecture 2 we will investigate the concept of resource virtualization, focusing on how operating systems virtualize CPU, memory, and I/O devices to manage concurrent program execution and resource allocation efficiently. Through demonstrations involving code snippets (available at GitHub), we will explore the mechanisms behind CPU scheduling, the abstraction of memory through virtual addressing, and the concurrency issues arising from multi-threaded program execution. This lecture highlights the operating system's role as a resource manager, aiming for efficient, fair resource distribution among processes and ensuring system stability and performance. We will gain practical insights into system calls, the virtualization of storage for persistent I/O operations, and the significance of OS design goals such as concurrency management, abstraction provision, performance optimization, and security.

Assigned Reading

Assigned Videos

https://youtu.be/26QPDBe-NB8?si=1-HbppNA8h1WQCr3

Slides

https://docs.google.com/presentation/d/10dTI65a_jOGCJBBi-_ckiMRAXTE-XKc3ZjGqeGDYU04/edit?usp=sharing

Example Code

References / Resources

Code examples from the book

You may find it helpful to clone the all of the code associated with the book. You can clone the book's code repository. This will allow you to quickly review the code associated with each chapter.

git clone <https://github.com/remzi-arpacidusseau/ostep-code.git>

Some useful resources in case you are a little rusty.