Frequently Asked Questions Show Part Numbers Q: What is the difference between asymmetric and symmetric multiprocessing?A: Multiprocessing refers to computers with more than one processor. A multiprocessing computer can execute multiple threads simultaneously, one thread for each processor in the computer. Multiple-processor computers are commonly used as high-end server platforms, hosts for multi-user interactive sessions, and single-user systems for running resource intensive desktop applications. Multiprocessing operating systems can be either asymmetric or symmetric. The main difference is in how the processors operate. Note: Do not confuse multitasking with multiprocessing. Multitasking is an operating-system technique for sharing a single processor among multiple threads (small, independent executable components of applications) of execution. A multitasking operating system only appears to execute multiple threads at the same time; a multiprocessing operating system actually does so. Asymmetric multiprocessing - In asymmetric multiprocessing (ASMP), the operating system typically sets aside one or more processors for its exclusive use. The remainder of the processors run user applications. As a result, the single processor running the operating system can fall behind the processors running user applications. This forces the applications to wait while the operating system catches up, which reduces the overall throughput of the system. In the ASMP model, if the processor that fails is an operating system processor, the whole computer can go down. Symmetric mMultiprocessing - Symmetric multiprocessing (SMP) technology is used to get higher levels of performance. In symmetric multiprocessing, any processor can run any type of thread. The processors communicate with each other through shared memory. SMP systems provide better load-balancing and fault tolerance. Because the operating system threads can run on any processor, the chance of hitting a CPU bottleneck is greatly reduced. All processors are allowed to run a mixture of application and operating system code. A processor failure in the SMP model only reduces the computing capacity of the system. SMP systems are inherently more complex than ASMP systems. A tremendous amount of coordination must take place within the operating system to keep everything synchronized. For this reason, SMP systems are usually designed and written from the ground up. The Microsoft® Windows NT® operating system is an SMP system. The Windows NT kernel works with the hardware abstraction layer to manage multiple processors. The hardware abstraction layer hides the details of the symmetric multiprocessing hardware from the rest of the operating system. The kernel controls which code runs on each processor at a given time. The Windows NT kernel enables multiprocessor support by allocating threads based on the thread's priority across all available CPUs in a system. Any thread of any application can run independently on any available processor. It ensures that the system's processors are always as busy as possible running the highest priority code.
The Windows NT kernel dispatches all operating system threads across all available processors, including I/O, networking, and graphics. Even though the best performance increase will come from multi-threaded applications, you will often get a small performance boost running even a single threaded application on a multi-processor system. |
||||