CPU scheduling more complex when multiple CPU’s are available
Most common cases : Symmetric multiprocessing (SMP) :
- all processors are identical, can be scheduled independently.
- have separate ready-queue for each processor (Linux), or shared ready-queue.
Process Affinity
Process affinity for CPU on which it is currently running
- Soft Affinity current CPU only preferred when re-scheduled
- Hard Affinity Process may be bound to specific CPU Advantages : caches remain valid, avoiding time-consuming cache invalidation and recovery.
Load Balancing
Idea : use all CPU’s equally (goes against processor affinity)
- Push migration : periodically check load, and push processes to less loaded CPU’s.
- Pull migration : idle CPU’s pull processes from busy CPU’s