Day 79 - Multi-Processor Scheduling In Operating Systems

As we learned before that there on a single-core processor only one process can be executed at a time and in multi-core processors multiple threads can be executed at the same time by the operating system. But everything comes with a price. In Multi-core processors scheduling the processes for efficient utilizing becomes more complex than in a single-core processors. There are many ways to accomplish this but none is perfect as all of them have their own advantages and disadvantages.

In modern computing systems, following system architectures can be called multiprocessor.

  • Multicore CPUs
  • Multithreaded cores
  • NUMA (Non-Uniform Memory Access) systems
  • Heterogeneous multiprocessing

Approaches to Multi-Processor Scheduling

One approach to multi-processor scheduling is to give one processor to the scheduling decesions, I/O processing and other system activites while all other processor only executes the user processes. This way the processor executing the system activites does not have to rely on data sharing to and from other processors but this can also cause it to form a bottle-neck situation on the processor which can cause overall system performance to be reduced. This approach is called Asymmetric Multi-Processing.

Another approach called Symmetric Multi-Processing, where each processor is self-scheduling. Basically each processor scheduler selects the process from the ready queue and assigns the CPU to it. This provides two possible strategies for organizing the threads which are eligible to be scheduled for processing. These are.

  • All threads may be in a common ready queue.
  • Each processor may have its own private ready queue.

All modern Operating Systems, Windows, Linux, MacOS, iOS and Android etc, support Symmetric Multi-Processing.


zainscizainsci