Dispatch Latency
Introduction
會在 process switch 時產生,是從 scheduler 決定要切換 process 到新 process 真正開始跑的時間,這個過程可以拆成兩個 Phase:
process switch 不等於 context switch
Phase 1: Conflict Phase
這是讓 CPU 騰出空間給新 process 所需的時間,包含兩件事:
- Preemption:如果當前 process 正在跑 kernel mode,不能直接強制中斷,必須等到一個安全的 preemption point 才能拔掉它
- Resource Release:如果 low-priority process 持有 high-priority process 需要的資源(例如 lock),它必須先釋放
Phase 2: Dispatch Phase
就 dispatcher 做事