However, with technological advancements, the need for faster computers is ever increasing. To achieve this, a paradigm shift in the field of computing is necessary. One way to do it would be, instead of burdening one single processor with all the work, have more than one processor to do the job. That brings in the need for Multi-Processing.
Earlier computers were able to do only one thing at a time. For example, an old DOS based environment. Due to this, areas where computers could be used were also limited. But later, as processor speed started to increase by leaps and bounds and the need for more advanced techniques emerged, the processor was required to do more activities at a time.
In this technology, called Multi-Programming, several programs used to run simultaneously on a single processor. Since there was only one processor, there was no true simultaneous execution of two programs. Instead it used to execute one part of a program and then another part of the same or other program. This also brought forward the need for faster memory access, cache memory, faster RAMs, virtual memory, etc. so that large amount of data of various programs could be swapped with the processor for faster execution.
As it was quite evid...
So, the obvious next step was to get more than one processors to handle the job. In a Multi-Processing environment, two or more processors share the work to be done.
The first and quite obvious advantage that Multi-Processing systems have over Multi-Programming systems is that since the work is divided between two or more processors, proportionately higher speed can be achieved.
One more major advantage is, since different programs can be handled by different processors, the need for data swapping to and from the cache can be minimized, thus improving performance.
Types of Multi-Processing:
Various Multi-Processing techniques achieved by using physically more than one processor (multiple processors) are discussed below.
In the earliest version, one processor (master) was responsible for all the work in the system, while the other (slave) performed only those tasks that were assigned to it by the master. Thus the master had to be a more powerful processor than the slave. It was a necessary arrangement since issues relating to sharing of common resources were not resolved satisfactorily.
Symmetric Multi-Processing System (SMP):
In Symmetric Multi-Processing, two or more 'Tightly Coupled' processors share a common Operating System (OS) along with all system resources like memory, data path, etc.
Massively Parallel Processing System (MPP):
As the number of processors in SMP systems increase, communication between the processors becomes an issue and the performance benefit of adding more processors reduces. A Massively Parallel Processing System could be roughly described as a group of 'Loosely Coupled' SMPs.
The major challenge for Multiple Processor Systems is that of resource and