What is the Difference Between Symmetric and Asymmetric Multiprocessing

The main difference between symmetric and asymmetric multiprocessing is that, in symmetric multiprocessing, the CPUs are identical and they share the main memory while, in asymmetric multiprocessing, the CPUs are not identical and they follow slave-master relationship.

A processor or the CPU is an important component in the computer. It handles arithmetic and logical operations and handles input-output tasks. It also generates signals to synchronize the operations of other components. Depending on the number of processors, there are two types of computer systems as single processor systems and multiprocessor systems. In single processor system, one CPU executes the general purpose instruction set and instructions from the user processes. Multi-processor systems consist of multiple processors, and they can execute multiple tasks at the same time. These systems increase the throughput and reliability. There are two types of multiprocessor systems called symmetric and asymmetric multiprocessing.

Key Areas Covered

1. What is Symmetric Multiprocessing
     – Definition, Functionality
2. What is Asymmetric Multiprocessing
     – Definition, Functionality
3. What is the Difference Between Symmetric and Asymmetric Multiprocessing
     – Comparison of Key Differences

Key Terms

Asymmetric Multiprocessing, Symmetric Multiprocessing

Difference Between Symmetric and Asymmetric Multiprocessing - Comparison Summary

What is Symmetric Multiprocessing

In a symmetric multiprocessing system, two or more processors are connected to a single, shared main memory. All the processors have full access to the input and output devices. The operating system treats all these processors equally. It is a tightly coupled multiprocessor system with a set of similar processors running independently. Each processor executes different programs and works on different sets of data. They share the common resources such as memory, IO device, etc.

What is the Difference Between Symmetric and Asymmetric Multiprocessing

Figure 1: Symmetric Multiprocessing

What is Asymmetric Multiprocessing

In asymmetric multiprocessing systems, all the CPUs are not equal. In other words, one processor might be executing the operating system code while another processor is performing input and output tasks. Asymmetric multiprocessing applications are used when each processor is dedicated to performing a specific task.

Asymmetric multiprocessing uses a master-slave approach. One processor works as the master while the other processors work as slave processors.  Master processor monitors the other processors and assigns tasks to each slave processor. Assume that there are four CPUs as C1, C2, C3 and C4. C4 is the master processor, and it assigns tasks to the other processors. Assume that C1 is assigned with process P1, C2 is assigned with process p2, and C3 is assigned with process p3. Each processor will be working only on the assigned processes.

Difference Between Symmetric and Asymmetric Multiprocessing

Definition

Symmetric multiprocessing is the processing of programs by multiple processors that share a common operating system and memory. Asymmetric multiprocessing is the processing of programs by multiple processors that function according to the master-slave relationship. Hence, this explains the basic difference between symmetric and asymmetric multiprocessing.

Processors

Furthermore, in symmetric multiprocessing, all the processors are treated equally while in asymmetric multiprocessing, the processors are not treated equally. This is a major difference between symmetric and asymmetric multiprocessing.

Architecture

To add to this, one other difference between symmetric and asymmetric multiprocessing is the architecture of the processors. All the processors have the same architecture in symmetric multiprocessing. But, the architecture can be different for each processor in asymmetric multiprocessing.

Processes

Also, in symmetric multiprocessing, the processors take processes from the ready queue. Each processor can have separate ready queues. But, in asymmetric multiprocessing, the master processor assigns processes to the slave processors.

Communication

Another difference between symmetric and asymmetric multiprocessing is the way the processors communicate with each other. In symmetric multiprocessing, the processors communicate with each other by the shared memory. But, in asymmetric multiprocessing, the processors communicate with the master processor.

Complexity

Moreover, in symmetric multiprocessing, the processors need to be synchronized to maintain the load balance. Therefore, it is complex. In asymmetric multiprocessing, the master processor accesses the data etc. Therefore it is simple.

Designing

In addition, asymmetric multiprocessing systems are easier to design and handle than symmetric multiprocessing systems.

Cost

Besides, asymmetric multiprocessing systems are cheaper than symmetric multiprocessing systems.

Conclusion

Multiprocessing systems can be either symmetric or asymmetric multiprocessing. The difference between symmetric and asymmetric multiprocessing is that in symmetric multiprocessing the CPUs are identical and they share the main memory while in asymmetric multiprocessing, the CPUs are not identical and they follow slave, master relationship.

Reference:

1. “Computer System Architecture.” Computer System Architecture, Neso Academy, 20 Feb. 2018, Available here.
2. “Symmetric Multiprocessing.” Wikipedia, Wikimedia Foundation, 2 Aug. 2018, Available here.
3. “Asymmetric Multiprocessing.” Wikipedia, Wikimedia Foundation, 28 Feb. 2018, Available here.

Image Courtesy:

1. “SMP – Symmetric Multiprocessor System” By Ferry24.Milan – Own work (CC BY-SA 3.0) via Commons Wikimedia

About the Author: Lithmee

Lithmee holds a Bachelor of Science degree in Computer Systems Engineering and is reading for her Master’s degree in Computer Science. She is passionate about sharing her knowldge in the areas of programming, data science, and computer systems.

Leave a Reply