# ostep-code Code from various chapters in OSTEP (http://www.ostep.org) * [Introduction](intro) ## Virtualization CPU Virtualization Chapters: * Processes * [Process API](https://github.com/remzi-arpacidusseau/ostep-code/tree/master/cpu-api) * Direct Execution * CPU Scheduling * Multi-level Feedback * [Lottery Scheduling](https://github.com/remzi-arpacidusseau/ostep-code/tree/master/cpu-sched-lottery) * Multi-CPU Scheduling Memory Virtualization Chapters: * [Address Spaces](https://github.com/remzi-arpacidusseau/ostep-code/tree/master/vm-intro) * Memory API * Address Translation * Segmentation * Free Space Management * Introduction to Paging * Translation Lookaside Buffers * Advanced Page Tables * Swapping: Mechanisms * Swapping: Policies * Complete VM Systems ## Concurrency Concurrency Chapters: * [Concurrency and Threads](https://github.com/remzi-arpacidusseau/ostep-code/tree/master/threads-intro) * [Threads API](https://github.com/remzi-arpacidusseau/ostep-code/tree/master/threads-api) * [Locks](https://github.com/remzi-arpacidusseau/ostep-code/tree/master/threads-locks) * Locked Data Structures * [Condition Variables](https://github.com/remzi-arpacidusseau/ostep-code/tree/master/threads-cv) * [Semaphores](https://github.com/remzi-arpacidusseau/ostep-code/tree/master/threads-sema) * Concurrency Bugs * Event-based Concurrency ## Persistence Persistence Chapters: * I/O Devices * Hard Disk Drives * Redundant Disk Arrays (RAID) * Files and Directories * File System Implementation * Fast File System (FFS) * FSCK and Journaling * Log-structured File System (LFS) * Flash-based SSDs * Data Integrity and Protection * Distributed Systems * Network File System (NFS) * Andrew File System (AFS)