Quote:
Originally posted by dark_man:
I might be able to answer this.
The more common multiple-processors systems use symmetric multiprocessing in which each processor runs an identical copy of th operating system, and these copies communicate with each other as needed. Other systems use asymmetric multiprocessing in which each processor is assigned a specific task. A master processor controls the system and the other processors either look to the master for instruction or have predefined tasks. This scheme defines a master-slave relationship. The master processor schedules and allocates work to the slave processors. Symmetric multiprocessing (SMP) means that all processors are peers. Each processor concurrently runs a copy of the operating system. The benefit of this model is that many processes can run simultaneously (N processes can run if there are N CPU's) without causing a significant deterioration of preformance. However I/O must be careful controled to ensure that the data reach the appropriate processor. Also since the CPU's are separate, one may be sitting idle while another is overloaded, resulting in inefficiencies. These inefficiencies can be avoided if the processors share certian data structures. A multiprocessor system of this form will allow processes and resources (such as memory) to be shared dynamically among the various processors and can lower the variance among th processors. Virtually all modern operating systems (WinNT,Win2k,Solarix,UNIX,OS/2,Linux,Mac OS X) provide support for SMP.
The difference between symmetric and asymmetric multiprocessing may be the result of either hardware or software. Special hardware can differentiate the multiple processors or the software can be written to allow only one master and multiple slaves. For example Sun's operting system SunOS Version 4 provides asymmetric multiprocessing whereas Version 5 (Solaris 2) is symmetric on the same hardware.
Hope this helps.
Thanks, dude.