Shared memory MP

All of the processors are tightly coupled inside the same box with a high-speed bus or a switch. The processors share the same global memory, disks, and I/O devices. Only one copy of the operating system runs across all of the processors, and the operating system must be designed to exploit this architecture (multithreaded operating system).

SMPs have several advantages:

  • They are a cost-effective way to increase throughput.
  • They offer a single system image since the Operating System is shared between all the processors (administration is easy).
  • They apply multiple processors to a single problem (parallel programming).
  • Load balancing is done by the operating system.
  • The uniprocessor (UP) programming model can be used in an SMP.
  • They are scalable for shared data.
  • All data is addressable by all the processors and kept coherent by the hardware snooping logic.
  • There is no need to use message-passing libraries to communicate between processors because communication is done through the global shared memory.
  • More power requirements can be solved by adding more processors to the system. However, you must set realistic expectations about the increase in performance when adding more processors to an SMP system.
  • More and more applications and tools are available today. Most UP applications can run on or are ported to SMP architecture.

There are some limitations of SMP systems, as follows:

  • There are limits on scalability due to cache coherency, locking mechanism, shared objects, and others.
  • There is a need for new skills to exploit multiprocessors, such as threads programming and device drivers programming.