Operating Systems · Chapter 12

Multicore Scheduling & Load Balancing Simulator

Explore how tasks are distributed across multiple CPU cores. Compare a global shared queue with per-core queues, and observe the effects of processor affinity and load balancing.

Task Set

TaskWork unitsPreferred coreRemainingState

Core State

Tick0
Completed tasks0
Task migrations0
Load imbalance0

Scheduler Log

Concept Guide

Shared queue: all idle cores pull work from one global ready queue. Balancing is simple, but the shared queue can become a synchronization bottleneck.

Per-core queues: each core maintains its own ready queue. This improves locality and scalability but may create uneven load.

Soft affinity: the scheduler prefers keeping a task on its previous or preferred core but may migrate it.

Hard affinity: the task is constrained to its preferred core in this simulator.

Load balancing: moves queued tasks from busier cores to less busy ones to reduce imbalance.

This is a conceptual scheduler model. Real kernels consider priorities, NUMA topology, cache hierarchy, interrupts, power states, and many other factors.