Een context switch is de kernel die de CPU-state van de nu draaiende thread opslaat (registers, program counter, stack pointer) en die van een andere thread herstelt, zodat één core veel threads kan multiplexen. Het gebeurt bij elke scheduler-preemptie, blokkerende syscall of interrupt — en het is niet gratis.
Waar de kosten schuilen
DIRECT cost (visible, ~1–5 µs):
save/restore registers · run scheduler logic · switch kernel stacks
if PROCESS switch: also swap page tables (CR3) → FLUSHES the TLB
INDIRECT cost (often much larger):
cold CPU CACHES → the new thread's data isn't in L1/L2/L3 → cache misses to RAM
cold TLB → address translations must be re-walked
lost pipeline / branch-predictor state
