Një context switch është ruajtja nga kernel-i e gjendjes CPU të thread-it që po ekzekutohet aktualisht (registers, program counter, stack pointer) dhe rikthimi i gjendjes së një thread-i tjetër, në mënyrë që një core i vetëm të mund të multipleksojë shumë thread-e. Ndodh në çdo preemption të scheduler-it, çdo blocking syscall, ose interrupt — dhe nuk është falas.
Ku fshihet kostoja
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
