Multiprocessing is the use of two or more central processing unit within a single computer system. The term also refers to the ability of a system to support more than one processor or the ability to allocate task between them. Multiprocessor is a computer system having two or more processing units each sharing main memory and peripherals, in order to simultaneously process programs.


Multiprocessing however means using more than one processor. However, multiprocessor or parallel system are increasing in importance nowadays. These systems have multiple processors working the parallel that share the computer clock, memory bus, peripheral devices etc. The following figure demonstrate the multiprocessor architecture as

Types of Multiprocessors

There are mainly two types of multiprocessor i.e symmetric and asymmetric multiprocessors.
1. Symmetric Multiprocessor
In this type of multiprocessor each runs an identical copy of the OS and these copies communicate with one another as needed. All Processor are peers. Examples are Windows NT, Sun Solaries, Digital Unix, OS/2 and Linux.

2. Asymmetric multiprocessor
In this multiprocessor each processor is assigned a specific task. A master processor controls the system; the other processor look to the master for instructions or predefined tasks. It defines a master-slave relationship. Example Sun OS version 4.
Asymmetric multiprocessor was the only one type of multiprocessor available before symmetric multiprocessor were created. Now also, this has cheaper option.


Advantages of multiprocessor systems 

  • More reliable system (Ability to continue working if any CPU fails) 
  • Enhanced Throughput 
  • More Economic systems
  • Increased Expense 
  • Complicated Operating system required 
  • Large main memory required 

Flynn's Classification 


  • In 1966, Flynn's proposed or classified the computer architecture into 4 types. So this concept known as Flynn's classification. 
  • This classification has been used as a tool in the design of modern processors and their functionalities. 
  • Due to Flynn's classification the multiprocessing and multiprocessing concept has evolved. 
  • Flynn's classified the system into four types that is based upon the number of current instruction streams and data streams available in the architecture . 

Flynn's Classifications


Single Instruction Single Data (SISD) System 


  • It is Uni-processor machine 
  • It executes a single instruction which operate on a single data stream. 
  • In SISD, machine instructions are processed in a sequential manner, So it is known as sequential computers. 
  • It this the speed of the processing element in the SISD model is limited or dependent on the rate at which the information is transformed. 
SISD Uni-Processor Architecture
Captions 
CU - Control Unit                    PU - Processing Unit
MU - Memory Unit                 IS - Instruction Stream  
DS - Data Stream 

Single Instruction Multiple Data (SIMD) Systems 


  • SIMD is multiprocessor system. 
  • It execute the instruction on all the CPU's but operate on different data streams. 
  • SIMD model is well suited to scientific operations. So that the information can be passed to all the processing elements organized data elements of vectors can be divided into multiple sets (N sets for N PE system) and each PE can process on data set. 
  • SIMD system is cray's vector processing machine. 
SIMD Architecture (With Distributed Memory) 
Captions : 
CU - Control Unit                     PU - Processing Unit
MU - Memory Unit                  IS - Instruction Stream
DS - Date Stream                      PE - Processing Element 
LM - Local Memory 

Multiple Instruction Single Data (MISD) Systems 


  • It is a multiprocessor machine 
  • It execute different instructions on different PE (Processing Element) but all of the operates on the same data set. 
                      Example ; sin(x) + cos(x) + tan(x)
  • It performs different operations on the same data set. 
  • The computer system built using the MISD model are not useful in most of the applications. 
MISD Architecture (The systolic Array) 
Captions
CU - Control Unit,          PU- Processing Unit,            MU- Memory Unit, 
IS - Instruction Stream,          DS-Data Stream,             PE - Processing Element
LM - Local Memory 


Multiple Instruction Multiple Data (MIMD) Systems)


  • This system is multiprocessor machine
  • It executes multiple instructions on multiple data sets. 
  • In this, each processing elements (PE) has separate instruction and data streams
  • The computer system built using the MIMD model are capable for all types of applications
  • In this processing elements (PE) work asynchronously while SIMD and MISD machine doesn't work asynchronously 
MIMD Architecture (With shared Memory)
Captions: 
CU - Control Unit                 PU - Processing Unit
MU - Memory Unit               IS - Instruction Stream
DS - Data Stream                  PE - Processing Element
LM - Local Memory