The repository contains learning material for Operating Systems: Three Easy Pieces (OSTEP for short).
The ./bookcode/
directory contains example codes in OSTEP, part of which are slightly adapted. The ./homework/
directory contains homework codes of OSTEP.
Book Notes and homework solutions are available in my blogs. Follow the liks for reference. (Updating...)
- A Dialogue on the Book
- Introduction to Operating Systems
- A Dialogue on Virtualization
- The Abstraction: The Process
- Interlude: Process API
- Mechanism: Limited Direct Execution
- Scheduling: Introduction
- Scheduling: The Multi-Level Feedback Queue
- Scheduling: Propositional Share
- Multiprocessor Scheduling (Advanced)
- Summary Dialogue on CPU Virtualization
- A Dialogue on Memory Virtualization
- The Abstraction: Address Spaces
- Interlude: Memory API
- Mechanism: Address Translation
- Segmentation
- Free-Space Management
- Paging: Introduction
- Paging: Faster Translations (TLBs)
- Paging: Smaller Tables
- Beyond Physical Memory: Mechanisms
- Beyond Physical Memory: Policies
- Complete Virtual Memory Systems
- Summary Dialogue on Memory Virtualization
- A Dialogue on Concurrency
- Concurrency: An Introduction | Homework
- Interlude: Thread API | Homework
- Locks
- Lock-based Concurrent Data Structures
- Condition Variables
- Semaphores
- Common Concurrency Problems
- Event-based Concurrency (Advanced)
- Summary Dialogue on Concurrency
- A Dialogue on Persistence
- I/O Devices
- Hard Disk Drives
- Redundant Arrays of Inexpensive Disks (RAIDs)
- Interlude: Files and Directories
- File System Implementation
- Locality and The Fast File System
- Crash Consistency: FSCK and Journaling
- Log-structured File Systems
- Flash-based SSDs
- Data Integrity and Protection
- Summary Dialogue on Persistence
- A Dialogue on Distribution
- Distributed Systems
- Sun's Network File System (NFS)
- The Andrew File System (AFS)
- Summary Dialogue on Distribution