Sebuah context switch adalah kernel menyimpan state CPU thread yang sedang berjalan (register, program counter, stack pointer) dan memulihkan milik thread lain, sehingga satu core bisa melakukan multiplexing banyak thread. Ini terjadi pada setiap preemption scheduler, blocking syscall, atau interrupt — dan itu tidak gratis.
Di mana biayanya bersembunyi
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
