OSTEP

The repository contains learning material for Operating Systems: Three Easy Pieces (OSTEP for short).

Repository Structure

The ./bookcode/ directory contains example codes in OSTEP, part of which are slightly adapted. The ./homework/ directory contains homework codes of OSTEP.

Book Notes & Homework

Book Notes and homework solutions are available in my blogs. Follow the liks for reference. (Updating...)

  1. A Dialogue on the Book
  2. Introduction to Operating Systems

I. Virtualization

  1. A Dialogue on Virtualization
  2. The Abstraction: The Process
  3. Interlude: Process API
  4. Mechanism: Limited Direct Execution
  5. Scheduling: Introduction
  6. Scheduling: The Multi-Level Feedback Queue
  7. Scheduling: Propositional Share
  8. Multiprocessor Scheduling (Advanced)
  9. Summary Dialogue on CPU Virtualization
  10. A Dialogue on Memory Virtualization
  11. The Abstraction: Address Spaces
  12. Interlude: Memory API
  13. Mechanism: Address Translation
  14. Segmentation
  15. Free-Space Management
  16. Paging: Introduction
  17. Paging: Faster Translations (TLBs)
  18. Paging: Smaller Tables
  19. Beyond Physical Memory: Mechanisms
  20. Beyond Physical Memory: Policies
  21. Complete Virtual Memory Systems
  22. Summary Dialogue on Memory Virtualization

II. Concurrency

  1. A Dialogue on Concurrency
  2. Concurrency: An Introduction | Homework
  3. Interlude: Thread API | Homework
  4. Locks
  5. Lock-based Concurrent Data Structures
  6. Condition Variables
  7. Semaphores
  8. Common Concurrency Problems
  9. Event-based Concurrency (Advanced)
  10. Summary Dialogue on Concurrency

III. Persistence

  1. A Dialogue on Persistence
  2. I/O Devices
  3. Hard Disk Drives
  4. Redundant Arrays of Inexpensive Disks (RAIDs)
  5. Interlude: Files and Directories
  6. File System Implementation
  7. Locality and The Fast File System
  8. Crash Consistency: FSCK and Journaling
  9. Log-structured File Systems
  10. Flash-based SSDs
  11. Data Integrity and Protection
  12. Summary Dialogue on Persistence
  13. A Dialogue on Distribution
  14. Distributed Systems
  15. Sun's Network File System (NFS)
  16. The Andrew File System (AFS)
  17. Summary Dialogue on Distribution