What is SMP (Symmetric Multiprocessing)? (Explained)

What is SMP (Symmetric Multiprocessing)?

SMP, a short for Symmetric Multiprocessing, refers to a specific method of processing data by two or more processors that share the same memory and operating system.

Technically, in this specific type of processor architecture, the combination of processors has a host operating system that is responsible for the management, execution and allotment of tasks performed by the CPUs.


  • Symmetric Multiprocessing is an architecture where there is a combination of two or more processors that perform a task in parallel, which is typically allotted, executed and managed by a host operating system.
  • SMP is a very useful process to follow especially in a resource-intensive computing environment that involves high computing power in order to carry out programs and application processes and tasks.
  • In SMP, any specific thread or process can be assigned to any processor in the system by the kernel.
  • Hardware and software multiprocessing are combined in SMP, where the hardware offers the raw computing power and the software handles the selection, distribution and segregation of the hardware processor.

Understanding Symmetric Multiprocessing (SMP)

What is SMP (Symmetric Multiprocessing)

Symmetric Multiprocessing is a process where a single operating system is responsible for the functioning of all the processors involved in the computing tasks that share it as well as the physical memory.

In this method, all the processors share a lot of things between them such as:

  • The memory
  • Motherboard
  • Storage
  • Data path
  • I/O bus
  • Operating system

Usually, the systems supporting SMP come with two CPUs, but there can be more of these. For example, a Linux kernel may theoretically support as many as 255 CPUs.

The concept of SMP dates back to the 1960s. This is the period when IBM came up with a dual CPU model with their System/360, followed by Digital Equipment. Other companies also designed SMP on UNIX platforms such as:

  • Sequent
  • Encore
  • Pyramid

All these early SMP systems had several CPUs with a single core.

However, in the early 2000s, the manufacturers of the CPUs wanted to add more cores to a single CPU which would perform in parallel as separate processors.

Read Also:  What is Cooper Lake Processor? (Explained)

This means that there will be no need to increase the number of processors in the computer system.

Combining hardware and software in the process, the hardware capabilities of SMP are dependent on the support provided by the physical memory and data buses used in the process.

On the other hand, the software capabilities are dependent on the OS support to manage and execute the workload of processes that are application specific. Ideally, it makes the best use of the distributed processing architecture.

Typically, there are primarily two types of multiprocessor systems. These are:

  • Symmetric Multiprocessor System
  • Asymmetric Multiprocessor System

In the symmetric multiprocessor system, all processors are treated equally and work in tandem by sharing the same memory and operating system to carry out a process.

However, in the asymmetric multiprocessor systems, processors are held in reserve for special purposes.

Typically, just like the uniprocessor systems, the SMP systems also need different programming techniques to offer maximum performance.

The main reason for it is that the hardware interrupts normally suspend the execution of programs.

However, the kernel that is responsible for handling the programs can carry them out on an idle processor instead.

In such cases, it may look as if the programs are running smoothly, but that is where it ends. There will be no significant boost in the performance level, as such.

Therefore, the systems programmers need to build support into the operating systems for SMP.

Otherwise, the supplementary processors will remain idle. This means that the multi-core system will function just like a uni-core system.

The SMP systems are quite complex with reference to the instruction sets.

A system with homogeneous processors will typically need additional registers to handle special types of instructions such as SIMD or Single Instruction, Multiple Data.

On the other hand, if it is a heterogeneous system, it can handle different types of hardware and use different types of instruction sets and use cases.

Read Also:  Evolution of Hexa-Core Processors: Past, Present & Future

Use Cases:

The SMP systems are considered suitable for specific types of use cases such as online transaction processing.

This is mainly because the entire workload is balanced more dynamically among the computers and hardware in SMP to serve a large number of users more quickly as compared to the MMP or Massively Parallel Processing systems.

Today, almost every microprocessor has multiple cores in it that support SMP.

Typically, symmetric multiprocessing systems are used in a wide and diverse range of computing applications, including, but not limited to:

Even all major operating systems today support SMP, unlike the early days. This means that today, the users do not need to possess or acquire exceptional programming dexterity to use SMP.

What are the Basic Features of an SMP?

The most significant feature of an SMP is that in this type of processing all the processors are treated equally. In addition to that, the shared memory assures better communication.

Some of the basic characteristics of Symmetric Multiprocessing can be summarized as follows:

  • All the processors are identical
  • The mode of communication among the processors is better
  • The design is complex
  • All units share the same data bus
  • The memory is interconnected to all the processors and is therefore shared
  • Full accessibility of processors to all the I/O devices with a shared I/O bus
  • Expensive in nature
  • Tasks of the operating system are executed by the processors individually rather than by a master processor
  • Every processor has its own private cache memory that reduces data access time and bus traffic on the system
  • Any process can be executed by a processor irrespective of the location of the necessary data in the memory
  • Usually, in a symmetric multiprocessing system tasks can be executed most comfortably if the number of processors is not more than 16
  • Processors are usually interconnected by buses, on-chip mesh networks, or crossbar switches.

Does Windows Use SMP?

Typically, the Microsoft Windows NT-based operating system is intended to run consistently on symmetric multiprocessor platforms as well as on uniprocessor platforms.

Read Also:  What is Memory Dependence Prediction? (Explained)

Even the kernel mode versions are designed to do the same. Ideally, most modern network operating systems, such as Windows NT, Windows 2000, Windows XP, and UNIX support multiprocessing.

This is mainly because symmetric multiprocessing support enables the operating systems to take full advantage of the multiprocessor as that helps them to divide the running processes among different processors.

However, there is a caveat here. Windows will only take a program that has several threads and is already optimized for dividing it into different processes.


  • Increased throughput due to the use of multiple processors
  • Less time taken to complete a task
  • Higher reliability since the whole system does not fail if one processor fails
  • Less expensive in the long term due to higher throughput and sharing of resources and hardware
  • Higher level of performance than the single processor systems
  • A program can run on any processor, making the execution of code relatively straightforward
  • Good for operating in resource-intensive computing settings
  • Multiple processors are utilized if a task takes too long to complete


  • Efficiency may be affected if a processor fails
  • Higher initial cost
  • Complex design
  • Need for a large main memory since it is shared by all the processors
  • Programs, applications and operating systems need to be compatible for SMP to work
  • Design and management of an operating system are complex since it needs to manage all processes and processors


Symmetric multiprocessing is very useful in resource intensive computational tasks as it can produce the results in quick time.

Multiple processors are engaged in the process where the resources and operating system are shared. With the benefits offered, systems supporting SMP are growing in importance nowadays.

About Puja Chatterjee

Puja ChatterjeePuja Chatterjee is a technical writer with extensive knowledge about computers. She graduated from BIMS. Her expertise includes technology writing and client relationship management gained through over 12 years of experience. Follow Her at Linkedin.

Leave a Comment

Your email address will not be published. Required fields are marked *