একটি context switch হলো kernel-এর বর্তমানে চলমান thread-এর CPU state (register, program counter, stack pointer) সংরক্ষণ করা এবং আরেকটি thread-এর state পুনরুদ্ধার করা, যাতে একটি core অনেক thread multiplex করতে পারে। এটি প্রতিটি scheduler preemption, blocking syscall, বা interrupt-এ ঘটে — এবং এটি বিনামূল্যে নয়।
খরচ কোথায় লুকিয়ে থাকে
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
