A Non-Work-Conserving Operating System Scheduler for SMT Processors
Simultaneous Multi-Threading (SMT) processors run multiple threads simultaneously on a single processing core. Because concurrent threads compete for the processor's shared resources, non-work-conserving scheduling, i.e., running fewer threads than the processor allows even if there are threads ready to run, can often improve performance. Nevertheless, conventional operating systems do not use non-work-conserving policies. The authors present a scheduling algorithm that applies the non-work-conserving policy when it improves performance. The scheduler uses an analytical performance model that, unlike existing models, is sufficiently simple and efficient for use inside the operating system.