ProzessorsymmetrieBearbeiten

In einem Multiprocessing-System können alle CPUs gleichberechtigt sein, oder einige können für besondere Zwecke reserviert sein. Die Symmetrie (oder das Fehlen einer solchen) in einem bestimmten System wird durch eine Kombination von Hardware- und Betriebssystemsoftware-Erwägungen bestimmt. So kann es beispielsweise aufgrund von Hardware- oder Softwareerwägungen erforderlich sein, dass nur eine bestimmte CPU auf alle Hardware-Interrupts reagiert, während alle anderen Arbeiten im System gleichmäßig auf die CPUs verteilt sein können; oder die Ausführung von Kernel-Mode-Code kann auf eine bestimmte CPU beschränkt sein, während User-Mode-Code auf einer beliebigen Kombination von Prozessoren ausgeführt werden kann. Multiprozessorsysteme sind oft einfacher zu entwerfen, wenn solche Beschränkungen auferlegt werden, aber sie sind tendenziell weniger effizient als Systeme, in denen alle CPUs genutzt werden.

Systeme, die alle CPUs gleich behandeln, werden als symmetrische Multiprozessorsysteme (SMP) bezeichnet. In Systemen, in denen nicht alle CPUs gleichberechtigt sind, können die Systemressourcen auf verschiedene Weise aufgeteilt werden, z. B. asymmetrisches Multiprocessing (ASMP), NUMA-Multiprocessing (Non-Uniform Memory Access) und Clustermultiprocessing.

Master/Slave-MultiprozessorsystemBearbeiten

In einem Master/Slave-Multiprozessorsystem hat die Master-CPU die Kontrolle über den Computer und die Slave-CPU(s) führen zugewiesene Aufgaben aus. Die CPUs können in Bezug auf Geschwindigkeit und Architektur völlig unterschiedlich sein. Einige (oder alle) der CPUs können einen gemeinsamen Bus haben, jede kann auch einen privaten Bus (für private Ressourcen) haben, oder sie können bis auf einen gemeinsamen Kommunikationspfad isoliert sein. Ebenso können die CPUs einen gemeinsamen Arbeitsspeicher nutzen und/oder über einen privaten Arbeitsspeicher verfügen, auf den der/die andere(n) Prozessor(en) keinen Zugriff haben. Die Rollen von Master und Slave können von einer CPU zur anderen wechseln.

Ein frühes Beispiel für ein Master/Slave-Multiprozessorsystem ist der Desktop-Computer TRS-80 Model 16 von Tandy/Radio Shack, der im Februar 1982 auf den Markt kam und auf dem das Multi-User/Multi-Tasking-Betriebssystem Xenix lief, Microsofts Version von UNIX (TRS-XENIX genannt). Das Modell 16 verfügt über drei Mikroprozessoren, eine 8-Bit-Zilog-Z80-CPU mit 4 MHz, eine 16-Bit-Motorola-68000-CPU mit 6 MHz und einen Intel 8021 in der Tastatur. Wenn das System gebootet wurde, war der Z-80 der Master und der Xenix-Boot-Prozess initialisierte den Slave 68000 und übertrug dann die Kontrolle an den 68000, woraufhin die CPUs ihre Rollen tauschten und der Z-80 zum Slave-Prozessor wurde, der für alle E/A-Operationen einschließlich Festplatte, Kommunikation, Drucker und Netzwerk sowie für die Tastatur und den integrierten Monitor zuständig war, während das Betriebssystem und die Anwendungen auf der 68000-CPU liefen. Der Z-80 konnte für andere Aufgaben verwendet werden.

Das frühere TRS-80 Modell II, das 1979 auf den Markt kam, konnte ebenfalls als Multiprozessorsystem betrachtet werden, da es sowohl eine Z-80 CPU als auch einen Intel 8021 Mikroprozessor in der Tastatur hatte. Der 8021 machte das Modell II zum ersten Desktop-Computersystem mit einer separaten, abnehmbaren und leichten Tastatur, die über ein einziges dünnes, flexibles Kabel verbunden war, und wahrscheinlich zur ersten Tastatur, die einen eigenen Mikroprozessor verwendete – beides Eigenschaften, die Jahre später von Apple und IBM kopiert wurden.

Befehls- und DatenströmeBearbeiten

Beim Multiprocessing können die Prozessoren verwendet werden, um eine einzelne Befehlsfolge in mehreren Kontexten auszuführen (Single-Instruction, Multiple-Data oder SIMD, häufig bei der Vektorverarbeitung verwendet), mehrere Befehlssequenzen in einem einzigen Kontext (multiple-instruction, single-data oder MISD, verwendet für Redundanz in ausfallsicheren Systemen und manchmal zur Beschreibung von Pipeline-Prozessoren oder Hyper-Threading), oder mehrere Befehlssequenzen in mehreren Kontexten (multiple-instruction, multiple-data oder MIMD).

ProzessorkopplungBearbeiten

Eng gekoppeltes MultiprozessorsystemBearbeiten

Dicht gekoppelte Multiprozessorsysteme enthalten mehrere CPUs, die auf Busebene verbunden sind. Diese CPUs können Zugriff auf einen zentralen gemeinsamen Speicher haben (SMP oder UMA) oder an einer Speicherhierarchie mit sowohl lokalem als auch gemeinsamem Speicher (SM) teilnehmen (NUMA). Der IBM p690 Regatta ist ein Beispiel für ein High-End-SMP-System. Die Xeon-Prozessoren von Intel dominierten den Multiprozessor-Markt für Business-PCs und waren bis zur Einführung der Opteron-Prozessoren von AMD im Jahr 2004 die einzige wichtige x86-Option. Beide Prozessorreihen verfügten über einen eigenen Onboard-Cache, boten jedoch Zugriff auf den gemeinsamen Speicher; die Xeon-Prozessoren über eine gemeinsame Pipe und die Opteron-Prozessoren über unabhängige Pfade zum System-RAM.

Chip-Multiprozessoren, auch bekannt als Multi-Core-Computing, beinhalten mehr als einen Prozessor auf einem einzigen Chip und können als die extremste Form des eng gekoppelten Multiprocessing angesehen werden. Großrechnersysteme mit mehreren Prozessoren sind oft eng gekoppelt.

Lose gekoppeltes MultiprozessorsystemBearbeiten

Hauptartikel: Shared-Nothing-Architektur

Los gekoppelte Multiprozessorsysteme (oft als Cluster bezeichnet) basieren auf mehreren eigenständigen Computern mit einem oder zwei Prozessoren, die über ein Hochgeschwindigkeitskommunikationssystem (häufig Gigabit Ethernet) miteinander verbunden sind. Ein Linux-Beowulf-Cluster ist ein Beispiel für ein lose gekoppeltes System.

Dicht gekoppelte Systeme sind leistungsfähiger und physisch kleiner als lose gekoppelte Systeme, erfordern jedoch in der Vergangenheit größere Anfangsinvestitionen und können schnell an Wert verlieren; die Knoten in einem lose gekoppelten System sind in der Regel preiswerte Standardcomputer und können nach dem Ausscheiden aus dem Cluster als unabhängige Maschinen wiederverwendet werden.

Der Stromverbrauch ist ebenfalls ein Aspekt. Eng gekoppelte Systeme sind in der Regel sehr viel energieeffizienter als Cluster. Dies liegt daran, dass sich erhebliche Einsparungen erzielen lassen, wenn die Komponenten in eng gekoppelten Systemen von vornherein für die Zusammenarbeit ausgelegt sind, während in lose gekoppelten Systemen Komponenten verwendet werden, die nicht unbedingt speziell für die Verwendung in solchen Systemen vorgesehen waren.

Los gekoppelte Systeme können auf verschiedenen Systemen unterschiedliche Betriebssysteme oder Betriebssystemversionen ausführen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.