Symmetric and Asymmetric multiprocessing are the two major classifications of multiprocessing as both include the use of multiple processors for system operation. The significant difference between symmetric and asymmetric multiprocessors lies in the way multiple processors are utilized by the system or we can say, the way multiple processors operate within the system.
In symmetric multiprocessing systems, all the processors present within the system are of identical nature and executes programs.
As against, in asymmetric multiprocessing, the processors present within the system are non-identical in nature where one of the processors instructs the other processors within the system to execute the desired task.
Before going through the detailed idea of symmetric versus asymmetric multiprocessing. Let us understand-
What is Multiprocessing?
The term multiprocessing corresponds to the use of two or more central processing units within a single computer system in order to execute tasks parallelly. Basically, multiprocessing enables the system to execute various parallel processes within a system and this is done by incorporating multiple processors inside a single computer system. However, it is not necessary that a system always has more than one processor as sometimes there exist single processors within the system as well.
Thus, it is not wrong to say that a system may or may not be a multiprocessor system. However, if a system has multiple processors, then each processor can execute independent processes.
It is to be noted here that the CPU is responsible for handling the arithmetic and logical functions as well as carrying out input/output operations. So, to perform this, either single or multiple processors are required.
Content: Symmetric Vs Asymmetric Multiprocessing
|Basis for Comparison||Symmetric Multiprocessing||Asymmetric Multiprocessing|
|Basic||All the processors are identical and forms connection with a shared memory.||All processors are not identical as one behaves as master and rest others as slave, where each one holds own memory space.|
|Operating System||A single operating system can be accessed by each processor for task execution.||The master processor has the operating system within which all system calls are executed.|
|Memory footprint||Less||Comparatively more|
|Self scheduling ability||Exist||Not exist|
|Communication overhead||Present||Not present|
|Processor architecture||Each individual processor has same architecture.||The processors may or may not have different architecture.|
|Overall Cost||High||Comparatively low|
|Suitable for||Homogeneous cores||Homogeneous or Heterogeneous cores|
|System routines||Easy||Quite difficult|
|Use||In general purpose systems||In embedded systems|
Symmetric Multiprocessing called SMP in short form is a type of multiprocessing system operation that uses multiple processors of the same configuration within a single system in order to execute multiple tasks. Here all the processors are of identical nature and are treated in an equal manner.
In this type, an operating system exists in memory and is accessible by all the processors within the system but not simultaneously. This means it is based on a shared operating system technique, called the floating master method. If multiple CPUs are required to run OS code, then the one which requested first will be able to execute first and till that time it will remain locked (called mutex) for the rest of the processors.
Asymmetric multiprocessing abbreviated as AMP is another type of multiprocessing technique that consists of multiple processors out of which one behaves as master and other than that one as slaves. The master processor is responsible for executing the operating system.
This technique allows concurrent running of several tasks on multiple processors. Its private memory holds the data structure which has the details for ready processes. Here if the master processor gets failed then one of the slave switches to perform the master processor operations.
Key Differences Between Symmetric and Asymmetric Multiprocessing
- The key factor of differentiation between symmetric and asymmetric multiprocessing is that the symmetric one has processors of the same configuration assembled with the aim to handle the various processes of a single task.
On the contrary, the asymmetric one includes processors of different configuration that supports the master-slave operation. This means the master processor manages the operations which are to be performed by slave processors.
- In symmetric multiprocessing, each processor has the same significance while this is not the case in asymmetric multiprocessing.
- Symmetric multiprocessing is based on a ready-queue approach where the processes reside in the main memory and multiple processors execute the processes one by one. However, asymmetric multiprocessing uses a master-slave approach where one of the processors behaves as a master processor which allots, controls and schedules the action of slave processors.
- A single operating system is accessed by all the processors but one at a time and not simultaneously. While in asymmetric one, the master processor has access to the operating system and all the slave processors redirect the system calls towards it.
- In terms of memory footprint, which corresponds to the main memory utilized by the program during execution, the two are different as AMP has more memory footprint than SMP.
- Symmetric is costlier than asymmetric multiprocessing because, in SMP, a single kernel controls the various system operations thus must be more efficient.
- SMPs offers quite easy design structure than AMPs as it must have identical processors and to achieve this a single efficient processor is designed and multiple copies of it are generated according to the requirement. However, AMPs offer complex designing as processors involved are of different configurations.
- Symmetric multiprocessing supports self-scheduling of tasks as all the processors equally manage the system activities. While self-scheduling is not an option in asymmetric multiprocessing because the master controls all the operations performed by slave processors.
- SMP offers easier implementation of system routines in comparison to AMP. This is so because SMP uses multiple identical processors thus, a sequence of codes can be implemented in an easier way than AMP which uses non-identical processors.
- Communication overhead exists in symmetric multiprocessing but is not present in asymmetric one. Basically, overhead corresponds to the communication enabled between the various processors working within the system. In SMP, shared memory is responsible for communication between the processors but as shared memory is absent in AMP thus it does not support overhead.
- In SMP, if one of the processors fails then it reduces the overall computing capability of the system. In contrast, in AMP when the master processor fails then one of the slave processors starts acting as the master processor.
From the above discussion, it is clear that SMPs are implemented on homogeneous cores i.e., the identical ones. While AMPs are implemented on homogeneous or heterogeneous cores i.e., non-identical ones. In SMP, system functions show dependency on load distribution thus, is not deterministic. Due to this reason, symmetric multiprocessing is not used in embedded systems.