An operating system is the core software layer that manages hardware resources, provides abstractions like processes and files, and mediates between user programs and the underlying machine. This cheat sheet covers the foundational concepts every systems programmer and computer science professional needs: process and thread models, CPU scheduling strategies, memory management from allocation to virtual memory, synchronization primitives, deadlock theory, inter-process communication, file systems, system calls, and disk scheduling. Topics progress from core abstractions through increasingly specialized mechanisms, with each concept linked to its authoritative primary source. Whether preparing for system design interviews, OS coursework, or low-level development, this reference provides the essential vocabulary and mechanics in one place.
What This Cheat Sheet Covers
This topic spans 13 focused tables and 110 indexed concepts, 108 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: OS Core Abstractions
The most fundamental OS concepts define what the operating system is and how it bridges user software and hardware. Understanding kernel types, execution modes, and the process/thread distinction is the prerequisite for everything else in OS study.
| Concept | Example | Description | |
|---|---|---|---|
PID 1234 running chrome.exe | • Program in execution • has its own address space, stack, heap, and OS resources | ||
Two threads sharing one process's heap | • Lightweight unit of execution within a process • shares address space and file descriptors with siblings | ||
ls binary on disk | • Passive, static executable stored on disk • becomes a process only when loaded and run | ||
Linux kernel managing fork() calls | • Core OS component running in privileged mode • manages CPU, memory, I/O, and system calls | ||
Linux, FreeBSD | • All OS services (FS, drivers, IPC) run in kernel space • fast but large attack surface | ||
QNX, Minix 3 | • Only IPC and basic scheduling in kernel • services run as user-space servers • Slower IPC but more stable | ||
Windows NT, macOS XNU | • Combines monolithic performance with microkernel modularity • critical services in kernel, others in user space | ||
syscall instruction switches ring 3→0 | • Two CPU privilege levels • kernel mode has unrestricted hardware access, user mode is sandboxed | ||
Scheduler saves PCB of P1, loads PCB of P2 | • Saving and restoring CPU state (registers, PC, stack pointer) when switching between processes • pure overhead |