Multiprocessing(MP), involves computer hardware and software architecture where there are multiple(two or more) processing units executing programs for the single operating(computer) system.
SMP i.e. symmetric multiprocessing, refers to the computer architecture where multiple identical processors are interconnected to a single shared main memory, with full accessibility to all the I/O devices, unlike asymmetric MP. In other words, all the processors have common shared(common) memory and same data path or I/O bus as shown in the figure.
Characteristics of SMP
- Identical: All the processors are treated equally i.e. all are identical.
- Communication: Shared memory is the mode of communication among processors.
- Complexity: Are complex in design, as all units share same memory and data bus.
- Expensive: They are costlier in nature.
- Unlike asymmetric where a task is done only by Master processor, here tasks of the operating system are handled individually by processors.
This concept finds its application in parallel processing, where time-sharing systems(TSS) have assigned tasks to different processors running in parallel to each other, also in TSS that uses multithreading i.e. multiple threads running simultaneously.
- Throughput: Since tasks can be run by all the processors unlike in asymmetric, hence increased degree of throughput(processes executed in unit time).
- Reliability: Failing a processor doesn’t fail whole system, as all are equally capable processors, though throughput do fail a little.
- Complex design: Since all the processors are treated equally by OS, so designing and management of such OS become difficult.
- Costlier: As all the processors share the common main memory, on account of which size of memory required is larger implying more expensive.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Difference between Asymmetric and Symmetric Multiprocessing
- Difference between Multiprocessing and Multithreading
- Typical Multiprocessing Configuration
- Difference Between Multithreading vs Multiprocessing in Python
- Difference between Multiprogramming, multitasking, multithreading and multiprocessing
- Dynamic CheckBox in Android with Examples
- AngularJS | SQL
- How to sharpen blurry text in HTML5 canvas?
- Difference between align-content and align-items
- How to get file content and other details in AngularJS?
- gpm Command in Linux with Examples
- Vue.js Mixins
- Difference between Linker and Loader
- Anticipatory Scheduling
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.