Mehrprozessorsystem

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dual-Prozessor-Motherboard

Mehrprozessorsysteme (auch: Multiprozessorsysteme) sind Computer, die zwei oder mehr Prozessoren haben. Sie werden meist als Server oder Hochleistungs-Arbeitsplatzrechner genutzt. Die einzelnen Aufgaben (die Prozesse) werden dann vom Betriebssystem je nach Bedarf den einzelnen Prozessorkernen zugeteilt.

Nach der Flynnschen Klassifikation fallen Mehrprozessorsysteme in die Klasse der eng gekoppelten MIMD-Systeme (MIMD = Multiple Instruction, Multiple Data). Bei dieser verfügen die verschiedenen Prozessoren über einen gemeinsamen Speicher.

In wissenschaftlichen Einrichtungen, in denen große Rechenleistungen benötigt werden, werden auch oft mehrere Rechner zu einem Rechnerverbund zusammengeschlossen, um einen ähnlichen Effekt zu erzielen. Dann spricht man von lose gekoppelten MIMD-Systemen. Oft hat allerdings jeder einzelne Rechner in einem solchen Cluster selbst noch mehrere Prozessoren, ist also für sich genommen wieder ein eng-gekoppeltes MIMD-System.

Mehrprozessorsysteme sind heute sehr verbreitet. Da heute erhältliche x86-Prozessoren meist nicht mehr (wie bis ca. ins Jahr 2000) nur einen Rechenkern, sondern zumeist zwei oder mehr Prozessorkerne (siehe auch Mehrkernprozessor) besitzen, muss heute deutlicher unterschieden werden zwischen

  • Mehrkernprozessor … ein Prozessor mit mehreren Kernen, und
  • dem Mehrprozessorsystem im engeren Sinne … ein Computersystem, das mehr als einen Prozessorsockel auf der Multi-Prozessor-Hauptplatine besitzt, und in dem mehr als einer dieser Sockel auch bestückt ist.

Speicheranbindung[Bearbeiten]

Hauptartikel: Uniform Memory Access
Hauptartikel: Non-Uniform Memory Access

Mitunter sollte das Betriebssystem die Prozesse an einen bestimmten Prozessor vergeben, je nach Art der Speicheranbindung:

  • Mit Uniform Memory Access (UMA) wird bezeichnet, wenn alle Prozessoren der Multi-Prozessor-Hauptplatine auf allen dort vorhandenen Arbeitsspeicher „gleichwertig“ zugreifen können.
  • Das Gegenkonzept wird Non-Uniform Memory Access (NUMA) genannt. Hierbei besitzt jeder Prozessor „seinen“ Arbeitsspeicher; will ein anderer Prozessor darauf zugreifen, so muss er diesen Zugriff über jenen Arbeitsspeicher-Verwalter anfragen (siehe MESI- und MOESI-Protokoll).

Bei heute verbreitetem NUMA-Aufbau muss das Betriebssystem somit darauf achten, dass Prozesse, die (virtuellen) Arbeitsspeicher anfordern, diesen in jenem realen Ram erhalten, das zu „ihrem“ Prozessor gehört. Umgekehrt muss das Betriebssystem darauf achten, dass ein inaktiver, zur Ausführung bereitstehender Prozess möglichst einem Prozessorkern bei „seinem“ Prozessor zugeteilt wird.

Multiprocessing[Bearbeiten]

Der Begriff „Multiprocessing“ wird auch verwendet für die Fähigkeit eines Computers, mehr als einen Handlungsstrang (sogenannter Thread) echt-gleichzeitig zu verarbeiten. Meist können diese Handlungsstränge auch voneinander abgeschottet verarbeitet werden, dann sind es sogenannte Prozesse, oft auch Tasks genannt. In diesem Zusammenhang ist der Begriff des „Multiprocessings“ also aus „Multi“ (mehrere) und „Prozesse“ entstanden.

Heutzutage wird statt des Begriffs Multiprocessing oft auch der Begriff Multitasking verwendet, der historisch jedoch das Aufteilen nur eines Rechenkerns z.B. im Zeitscheibenverfahren auf mehrere Aufgaben beschreibt. Mitunter wird auch von hardwareseitigem Multithreading gesprochen.

Für Multiprocessing sind mehrere (mind. zwei), weitgehend unabhängige Prozessorkerne notwendig.

In modernen Computersystemen werden heutzutage beide Verfahren gleichzeitig eingesetzt: Es sind mehrere Prozessorkerne vorhanden, die echt-gleichzeitig Threads ausführen können (voneinander abgeschottete oder im selben Kontext laufend) – zusätzlich werden jedem Prozessorkern für sich nochmals im Zeitscheibenverfahren Threads zugeteilt.

Siehe auch[Bearbeiten]