What is Multiprocessing?
Multiprocessing is a processing of programs using more than one processors. It is an ability of the system to support more than one processor and allocate task between them. In other words we can say it is a computer having multiple processing units which sharing main memory and peripherals to process multiple programs. Processes assigned dynamically to one or more computers that involve multiple working on the same program in parallel way. Execution of multiple concurrent processes in a system and each process running on the separate CPU is also multiprocessing at OS level. It also contrast with the term multitasking which is different from processing because it uses single processor and divide it into time slices to perform different task which is also known as time sharing. There are some of the components that form multiprocessors are CPUs IOPs connected to input and output devices, and memory unit that should be portioned into number of modules. Multiprocessor are classified as MIMD system i.e. multiple instruction multiple data.
Multiprocessing Techniques
Symmetric Multiprocessing(SMP)
Symmetric or tightly couple multiprocessor. SMP is also known as shared everything system but does not exceed more than 16 processors. The processor share memory and the I/O bus and data path. This is better than MPP for Online Transaction process which is OTP because in OTP many users access same database which is a simple set of transaction. Advantage of SMP it can dynamically balance workload from computers result of this, more user can serve faster.
Massively Parallel Processing
Massively or tightly coupled multiprocessor. It support 200 or more processors can work on the same application having each processor of its own operating system and memory. The setup of MMP is very complicated which required thought that how to partition a common database and how assign work among processors. This MPP system is also known as shared nothing system.
Architecture of Multiprocessing
Advantages of Multiprocessing System
- Reduced cost: Processors sharing the same resources and there is no need for separate power supply or motherboard for each chip so all this reduces the cost.
- Increased Reliability: Because we are using multiple processors so the failure of one will not affect another and same not on the machine. So it increase the reliability of the system. There are several mechanism to achieve high reliability. Example if a processor fails then the job running on that processor also fails for that system must be able to reschedule job or show alert message to the user of that job was not successfully completed.
- Increased Throughput: As increase in the number of processes completes the work in less time. The thing important to note doubling the number of processors does not halve the time to complete a job. It is due to overhead in communication between processors and shared resources.
Example of Multiprocessing
Processing two Microsoft word file at the same time.