Operating Systems
Processes, threads, concurrency, memory virtualization, and file systems, covering a standard undergraduate operating systems course.
Take a quick diagnostic
All 27 topics
Every skill the diagnostic can check, grouped the way the map is. Open any topic to start a lesson on it.
Foundations
Processes and threads
Concurrency
CPU scheduling
Memory virtualization
- Address spaces: Each process's private view of memory, starting at zero, that the OS maps onto real physical RAM.
- Free-space memory allocation: How the OS carves up physical memory among processes, and tracks the resulting free space.
- Paging: Splitting memory into fixed-size pages so a process's address space doesn't need to sit in one contiguous block.
- TLBs and fast address translation: A small hardware cache of recent address translations, so paging doesn't cost a memory access on every access.
- Multi-level and inverted page tables: Multi-level and inverted page tables, ways to keep the translation structure itself from eating too much memory.
- Virtual memory and page replacement: Letting total memory usage exceed physical RAM by swapping pages to disk, and deciding which page to evict.
Storage and I/O
- I/O devices and interrupts: How the OS talks to devices, through polling, interrupts, or DMA, without the CPU babysitting every transfer.
- Hard disks and SSDs: How spinning disks and flash storage actually store and retrieve data, and why their performance shapes differ.
- The file system abstraction: Files and directories as the OS's user-facing model, sitting on top of raw disk blocks.
- File system implementation: How a real file system, FFS, FAT, NTFS, lays out inodes, directories, and data blocks on disk.
- Crash consistency and journaling: Keeping the file system's on-disk structures coherent after a crash, via journaling or fsck-style checking.
- Redundancy and RAID: Spreading or duplicating data across multiple disks so one drive failing doesn't lose data.
Security