OS scheduler
The part of the operating system that decides which program runs on which core next, and for how long. (Not the instruction scheduler inside a core.)
The operating-system scheduler chooses the next runnable thread for each core on every preemption, block or wake-up, according to a policy (Linux EEVDF, Windows priority-based, macOS QoS classes).
See also