Search⌘ K

Single-Queue Scheduling

Explore single-queue scheduling for multiprocessor systems to understand how it simplifies multi-CPU process management. Learn the limitations related to scalability and cache affinity, and discover how affinity mechanisms help maintain performance by reducing process migration across CPUs.

With the background in place, we now discuss how to build a scheduler for a multiprocessor system. The most basic approach is to simply reuse the basic framework for single processor scheduling, by putting all jobs that need to be scheduled into a single queue; we call this single-queue multiprocessor scheduling or SQMS for short. This approach has the advantage of simplicity; it does not require much work to take an existing policy that picks the best job to run next and adapt it to work on more than one CPU (where it might pick the best two jobs to run, if there are two CPUs, for example).

Shortcomings of SQMS

However, SQMS has obvious shortcomings:

Lack of scalability

The first problem ...