Multiprocessing

Multiprocessor systems (also: multiprocessor systems ) are computers that have two or more processors. They are usually used as a server or high performance workstation. The individual tasks ( processes ) are then allocated to the individual cores of the operating system as required.

After the fall Flynnschen classification multiprocessor systems in the class of tightly coupled MIMD systems ( MIMD = Multiple Instruction, Multiple Data ). In this, the different processors share a common memory.

In academic institutions, where large computing power are needed, multiple computers are often combined to form a computer network in order to achieve a similar effect. Then we speak of loosely-coupled MIMD systems. Often, however, each individual computer in such a cluster itself is multiple processors, and is therefore in itself again a tightly -coupled MIMD system.

Multi-processor systems are very common today. Since x86 processors available today usually have no more ( as to approximately 2000) have only one processor core, but usually two or more processor cores ( see also multi-core processor ), today must clearly distinguish between

  • Multi-core processor, a processor with multiple cores, ..., and
  • The multiprocessor system in the strict sense ... a computer system that has more than one socket on the processor multi-processor main circuit board, and in which more than one of these connectors is also fitted.

Memory interface

Sometimes the operating system should assign the processes to a specific processor, depending on the type of memory connection:

  • With Uniform Memory Access ( UMA) is called when all the processors of the multi-processor motherboard on all existing memory there can "equivalent" access.
  • The opposite concept is called Non-Uniform Memory Access ( NUMA). In this case, each processor has "his" memory; wants to access it another processor, so it must have this access to those memory manager request (see MESI and MOESI protocol).

In today -spread NUMA configuration, the operating system must therefore ensure that processes that request (virtual) memory, this get in that real Ram, which is part of "their" processor. Conversely, the operating system must ensure that an inactive, ready to be started execution process is assigned to a processor core with "his" processor as possible.

Multiprocessing

The term " multi-processing " is also used for the ability of a computer to process more than one plot line (so-called thread ) real - time. Most of these storylines can be processed sealed off from each other, then there are so-called processes, often called tasks. In this context, the term " multiprocessing " is so out of "Multi" (several ) and originated the "Processes".

Today, instead of the concept of multi-processing, the term multi-tasking is often used, however, the historical dividing only one core, for example, computing describes several tasks in the time-slice method. It is sometimes spoken of hardwareseitigem multithreading.

For multiprocessing several (at least two), largely independent processor cores necessary.

In modern computer systems, both methods are used simultaneously nowadays: There are several processor cores available that can perform real - threads simultaneously ( each other insular or in the same context ongoing) - in addition to each processor core itself will be allocated again in time slicing threads.

248266
de