What is the Difference Between Symmetric and Symmetric Multiprocessing? With Explanation.
The main difference between them is that, in symmetric multiprocessing, the CPUs are identical and share main memory whereas, in asymmetric multiprocessing, the CPUs are not identical and follow a master-slave 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 computing systems: single processor systems and multiprocessor systems. In the single-processor system, one CPU executes the general-purpose instruction set and user process instructions. Multiprocessor systems consist of multiple processors and can run multiple tasks at the same time. These systems increase performance 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
What is symmetric multiprocessing
In a symmetric multiprocessing system, two or more processors are connected to a single shared main memory. All processors have full access to input and output devices. The operating system treats all of these processors equally. It is a tightly coupled multiprocessor system with a set of similar processors running independently. Each processor runs different programs and works on different data sets. They share the common resources like memory, device IO, etc.
Figure 1: Symmetric Multiprocessing
In asymmetric multiprocessing systems, all CPUs are not equal. In other words, one processor could be executing operating system code while another processor is doing input and output. 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 master while the other processors work as slave processors. The master processor monitors the other processors and assigns tasks to each slave processor. Suppose there are four CPUs like C1, C2, C3 and C4. C4 is the master processor and assigns tasks to the other processors. Suppose C1 is allocated with process P1, C2 is allocated with process p2, and C3 is allocated with process p3. Each processor will work 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 work according to the master-slave relationship. Thus, this explains the basic difference between symmetric and asymmetric multiprocessing.
processors
Also, in symmetric multiprocessing, all processors are treated equally, whereas in asymmetric multiprocessing, processors are not treated equally. This is a major difference between symmetric and asymmetric multiprocessing.
To add to this, another difference between symmetric and asymmetric multiprocessing is the architecture of the processors. All 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 allocates 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, processors communicate with each other using shared memory. But, in asymmetric multiprocessing, the processors communicate with the master processor.
Complexity
Also, in symmetric multiprocessing, the processors must be synchronized to maintain load balance. Therefore, it is complex. In asymmetric multiprocessing, the master processor accesses the data, etc. Therefore, it is simple.
Also, asymmetric multiprocessing systems are easier to design and manage than symmetric multiprocessing systems.
Cost
Also, asymmetric multiprocessing systems are cheaper than symmetric multiprocessing systems.
Conclusion
It can be symmetric or asymmetric multiprocessing. The difference between them is that in symmetric multiprocessing the CPUs are identical and share main memory whereas in asymmetric multiprocessing the CPUs are not identical and follow a master/slave relationship.
Reference:
1.”Computer System Architecture.” Computer System Architecture, Neso Academy, February 20, 2018, Available here.
2. “Symmetric Multiprocessing.” Wikipedia, Wikimedia Foundation, August 2, 2018, Available here.
3. “Asymmetric Multiprocessing”. Wikipedia, Wikimedia Foundation, February 28, 2018, Available here.
1. “SMP – Symmetric Multiprocessor System” By Ferry24.Milan – Own work (CC BY-SA 3.0) via Commons Wikimedia