An Overview of Linux Symmetric Multiprocessing (SMP) Scheduling

February 13th, 2017 by

SMP, or symmetric multiprocessing, scheduling involves two or more multiprocessors that share hardware and/or software and are connected to a single memory. The two processors are remotely connected and thus have full access to shared I/O devices. They are also controlled from a single terminal. All operations are therefore treated equally.

SMP scheduling in Linux is only triggered when a specific time has lapsed. This is possible because each processer is designed to run a task or scheduler of its own. This, however, does not mean that a single task will be performed at a time. The possibility of multitasking is not limited.

Application of a scheduler in Linux

CFS, or Completely Fair Scheduler, was included during the release of 2.6.23 Linux Kernel and became the default system. The purpose of this scheduler is to handle resource allocation for the CPU. By doing so, it maximizes utilization of CPU memory and space. This makes interaction performance seamless.

Choosing the right scheduler

The tasks involved or those that require execution depend on the task at hand. As such, you need a system or programming that is accurately timed and one that considers perfect time allocation. It must accurately judge the jobs that are I/O bound and those that are bound for the processor. The scheduler should also have full control of the multitasking function of your operating system. It requires the input of an experienced developer to evaluate your systems, identify the areas of need and install the best scheduler.

Round robin scheduling

This method of scheduling is used by time sharing RTOS (real-time operating system) The algorithm ensures that equal or relative time is scheduled for each activity or function. There is a circular order or equal slice of time for each function. It means that no function or operation will get priority. This process of scheduling is also referred to as cyclic executive.

The Linux operating system is more open to other systems. It is therefore easily found in machinery and applications. It is preferred for scheduling especially where external interfaces are involved.


Leave a Comment