Multiprozessierung
Multiprozessierung ist die Verwendung von zwei oder mehr Zentrale Verarbeitungseinheiten (CPUs) innerhalb eines einzelnen Computersystem.[1][2] Der Begriff bezieht sich auch auf die Fähigkeit eines Systems, mehr als einen Prozessor zu unterstützen, oder die Fähigkeit, Aufgaben zwischen ihnen zuzuweisen. Es gibt viele Variationen dieses grundlegenden Themas, und die Definition der Multiprozessierung kann mit dem Kontext variieren, hauptsächlich in Abhängigkeit davon, wie CPUs definiert werden (Mehrere Kerne Auf eins sterben, mehrere Sterben in einem Paket, mehrere Pakete in einem Systemeinheit, etc.).
Nach einigen Online-Wörterbüchern a Multiprozessor ist ein Computersystem mit zwei oder mehr Verarbeitungseinheiten (mehrere Prozessoren) Jede Freigabe Haupterinnerung und Peripheriegeräte, um gleichzeitig Programme zu verarbeiten.[3][4] Ein 2009er -Lehrbuch definierte Multiprozessor -System ähnlich, wobei jedoch festgestellt wurde, dass die Prozessoren "einige oder alle Speicher- und I/A -Einrichtungen des Systems" teilen können. es gab auch eng gekoppeltes System Als synonymer Begriff.[5]
Bei der Betriebssystem eben, Multiprozessierung wird manchmal verwendet, um die Ausführung mehrerer gleichzeitiger gleichzeitiger zu beziehen Prozesse In einem System, wobei jeder Prozess auf einer separaten CPU oder einem separaten Kern ausgeführt wird, im Gegensatz zu einem einzelnen Prozess.[6][7] Bei Verwendung mit dieser Definition wird die Multiprozessierung manchmal mit kontrastiert Multitasking, die möglicherweise nur einen einzelnen Prozessor verwenden, aber in Zeitscheiben zwischen Aufgaben (d. H. a Time-Sharing-System). Multiprozessierung bedeutet jedoch eine echte parallele Ausführung mehrerer Prozesse mit mehr als einem Prozessor.[7] Multiprozessierung bedeutet nicht unbedingt, dass ein einzelner Prozess oder eine Aufgabe mehr als einen Prozessor gleichzeitig verwendet. der Begriff Parallelverarbeitung wird im Allgemeinen verwendet, um dieses Szenario zu bezeichnen.[6] Andere Autoren ziehen es vor, die Betriebssystemtechniken als zu bezeichnen Multiprogrammierung und reservieren Sie die Laufzeit Multiprozessierung für den Hardwareaspekt von mehr als einem Prozessor.[2][8] Der Rest dieses Artikels erläutert die Multiprozesation nur in diesem Hardware -Sinne.
Im Flynns Taxonomie, Multiprozessoren wie oben definiert sind Mimd Maschinen.[9][10] Da sich der Begriff "Multiprozessor" normalerweise auf eng gekoppelte Systeme bezieht Nachrichtenübergang Mehrkomputersysteme.[9]
Vorgeschichte
Möglicherweise wurde der erste Ausdruck der Idee des Multiprozessings geschrieben von Luigi Federico Menabrea im Jahr 1842 ungefähr Charles Babbage's analytischer Motor (wie übersetzt von Ada Lovelace): "Die Maschine kann ins Spiel gebracht werden, um mehrere Ergebnisse gleichzeitig zu erzielen, was die gesamte Menge der Prozesse stark küftet."[11]
Schlüsselthemen
Prozessorsymmetrie
In einem Multiprozessierung System, alle CPUs können gleich sein oder einige können für besondere Zwecke reserviert sein. Eine Kombination aus Hardware und Betriebssystem Überlegungen zum Softwaredesign bestimmen die Symmetrie (oder das Fehlen davon) in einem bestimmten System. Beispielsweise erfordern Hardware- oder Software -Überlegungen möglicherweise, dass nur eine bestimmte CPU auf alle Hardware -Interrupts reagiert, während alle anderen Arbeiten im System gleichermaßen unter CPUs verteilt werden können. oder die Ausführung des Kernel-Mode-Codes kann nur auf eine bestimmte CPU beschränkt werden, während der Benutzer-Modus-Code in einer beliebigen Kombination von Prozessoren ausgeführt werden kann. Multiprozesationssysteme sind häufig einfacher zu gestalten, wenn solche Einschränkungen auferlegt werden, aber sie sind tendenziell weniger effizient als Systeme, bei denen alle CPUs verwendet werden.
Systeme, die alle CPUs gleich behandeln Symmetrische Multiprozessierung (SMP) Systeme. In Systemen, in denen alle CPUs nicht gleich sind, können die Systemressourcen auf verschiedene Weise unterteilt werden, einschließlich Asymmetrische Multiprozessierung (ASMP), ungleichmäßiger Speicherzugriff (Numa) Multiprozessing und zusammengeklustert Multiprozessierung.
Master/Slave -Multiprozessorsystem
In einem Master-/Slave -Multiprozessor -System steht die Master -CPU über den Computer und die Slave -CPU (en) führt zugewiesene Aufgaben aus. Der CPUs kann in Bezug auf Geschwindigkeit und Architektur völlig unterschiedlich sein. Einige (oder alle) des CPUs können gemeinsamen Bus teilen, jeder kann auch einen privaten Bus (für private Ressourcen) haben oder sie können isoliert sein, mit Ausnahme eines gemeinsamen Kommunikationswegs. Ebenso kann der CPUs gemeinsame RAM und/oder einen privaten RAM haben, auf den die anderen Prozessor nicht zugreifen können. Die Rollen von Master und Sklave können sich von einer CPU zur anderen ändern.
Ein frühes Beispiel für ein Master-/Slave -Multiprozessor -System ist die Tandy/Radio Shack TRS-80 Modell 16 Desktop-Computer, der im Februar 1982 veröffentlicht wurde und das Multi-User/Multitasking lief Xenix Betriebssystem, Microsoft-Version von UNIX (TRS-Xenix genannt). Das Modell 16 hat 3 Mikroprozessoren, einen 8-Bit Zilog Z80 CPU läuft bei 4MHz, einem 16-Bit Motorola 68000 CPU läuft bei 6 MHz und an Intel 8021 in der Tastatur. Als das System gebootet war, war der Z-80 der Master und der Xenix-Boot-Prozess initialisierte den Slave 68000 und überwies dann die Kontrolle auf den 68000, worauf E/A -Vorgänge einschließlich Festplatte, Kommunikation, Drucker und Netzwerk sowie der Tastatur und des integrierten Monitors, während das Betriebssystem und die Anwendungen auf der 68000 CPU ausgeführt wurden. Der Z-80 könnte verwendet werden, um andere Aufgaben zu erledigen.
Der frühere TRS-80 Modell II, das 1979 veröffentlicht wurde, konnte auch als Multiprozessorsystem angesehen werden, da es sowohl eine Z-80-CPU als auch einen Intel 8021 hatte[12] Mikroprozessor in der Tastatur. Der 8021 machte das Modell II zum ersten Desktop -Computersystem mit einer separaten abnehmbaren leichten Tastatur, die mit einem einzigen dünnen flexiblen Draht verbunden ist, und wahrscheinlich die erste Tastatur, die einen dedizierten Mikroprozessor verwendet, beide Attribute, die später Jahre später von Apple und IBM kopiert werden würden .
Befehls- und Datenströme
Bei der Multiprozessierung können die Prozessoren verwendet werden, um eine einzelne Folge von Anweisungen in mehreren Kontexten auszuführen (Einzelanweisung, mehrere Daten oder Simd, oft verwendet in Vektorverarbeitung), mehrere Anweisungen in einem einzigen Kontext (Mehrere Anweisungen, einzelne Daten oder misd, verwendet für Redundanz in ausfallsicheren Systemen und manchmal angewendet, um zu beschreiben Pipeline -Prozessoren oder Hyper-Threading) oder mehrere Anweisungen in mehreren Kontexten (Mehrere Anweisungen, mehrere Daten oder mimd).
Prozessorkopplung
Eng gekoppelte Multiprozessorsystem
Enge gekoppelte Multiprozessor -Systeme enthalten mehrere CPUs, die auf der Busebene angeschlossen sind. Diese CPUs haben möglicherweise Zugriff auf einen zentralen gemeinsamen Speicher (SMP oder Uma) oder können an einer Speicherhierarchie mit lokalem und gemeinsam genutztem Speicher (SM) teilnehmen (SM) (Numa). Das IBM P690 Regatta ist ein Beispiel für ein High -End -SMP -System. Intel Xeon Die Prozessoren dominierten den Multiprozessormarkt für Business -PCs und waren bis zur Veröffentlichung von der einzigen großen X86 -Option AMD's Opteron Die Bereiche der Prozessoren im Jahr 2004. Beide Bereiche der Prozessoren hatten ihren eigenen Onboard -Cache, hatten jedoch Zugriff auf gemeinsamen Speicher. Die Xeon -Prozessoren über ein gemeinsames Rohr und die Opteron -Prozessoren über unabhängige Wege zum System RAM.
Chip -Multiprozessoren, auch bekannt als Multi-Core Das Computing beinhaltet mehr als einen Prozessor, der auf einen einzelnen Chip platziert ist, und kann von der extremsten Form einer eng gekoppelten Multiprozessierung gedacht werden. Mainframe -Systeme mit mehreren Prozessoren sind häufig eng gekoppelt.
Lose gekoppelte Multiprozessorsystem
Lose gekoppelte Multiprozessorsysteme (oft als als bezeichnet als Cluster) basieren auf mehreren eigenständigen relativ niedrigen Prozessorzahl Warencomputer über ein Hochgeschwindigkeitskommunikationssystem miteinander verbunden (Gigabit Ethernet ist üblich). Ein Linux Beowulf Cluster ist ein Beispiel für a locker verbunden System.
Eng gekoppelte Systeme funktionieren besser und sind physisch kleiner als locker gekoppelte Systeme, haben jedoch historisch mehr anfängliche Investitionen und Mai erforderlich abwerten schnell; Knoten in einem locker gekoppelten System sind in der Regel kostengünstige Rohstoffcomputer und können nach dem Ruhestand aus dem Cluster als unabhängige Maschinen recycelt werden.
Der Stromverbrauch ist ebenfalls eine Überlegung. Eng gekoppelte Systeme sind in der Regel viel energieeffizienter als Cluster. Dies liegt daran, dass eine erhebliche Verringerung des Stromverbrauchs durch Entwerfen von Komponenten von Anfang an in eng gekoppelten Systemen zusammengefasst werden kann, während lose gekoppelte Systeme Komponenten verwenden, die nicht unbedingt spezifisch für die Verwendung in solchen Systemen gedacht waren.
Lose gekoppelte Systeme können verschiedene Betriebssysteme oder OS -Versionen auf verschiedenen Systemen ausführen.
Siehe auch
- Multiprozessor -Systemarchitektur
- Symmetrische Multiprozessierung
- Asymmetrische Multiprozessierung
- Multi-Core-Prozessor
- BMDFM - Binärer modularer DataFlow -Computer, eine SMP -MIMD -Laufzeitumgebung
- Software -Aussperrung
- OpenHMPP
Verweise
- ^ Raj Rajagopal (1999). Einführung in Microsoft Windows NT Cluster Server: Programmierung und Verwaltung. CRC Press. p. 4. ISBN 978-1-4200-7548-9.
- ^ a b Mike Ebbers; John Kettner; Wayne O'Brien; Bill Ogden (2012). Einführung in den neuen Mainframe: Z/OS -Grundlagen. IBM. p. 96. ISBN 978-0-7384-3534-3.
- ^ "Multiprozessor Dictionary Definition - Multiprozessor definiert". www.yourdictionary.com. Abgerufen 16. März 2018.
- ^ "Multiprozessor". Abgerufen 16. März 2018 - über das freie Wörterbuch.
- ^ IRV Englander (2009). Die Architektur der Computerhardware- und Systemsoftware. Ein Ansatz der Informationstechnologie (4. Aufl.). Wiley. p. 265. ISBN 978-0471715429.
- ^ a b Deborah Morley; Charles Parker (13. Februar 2012). Computer verstehen: Heute und morgen, umfassend. Cengage -Lernen. p. 183. ISBN 978-1-133-19024-0.
- ^ a b Shibu K. V. Einführung in eingebettete Systeme. Tata McGraw-Hill Education. p. 402. ISBN 978-0-07-014589-4.
- ^ Ashok Arora (2006). Grundlagen der Informatik. Laxmi Publications. p. 149. ISBN 978-81-7008-971-1.
- ^ a b Ran Giladi (2008). Netzwerkprozessoren: Architektur, Programmierung und Implementierung. Morgan Kaufmann. p. 293. ISBN 978-0-08-091959-1.
- ^ Sajjan G. Shiva (20. September 2005). Erweiterte Computerarchitekturen. CRC Press. p. 221. ISBN 978-0-8493-3758-1.
- ^ L. F. Menabrea (Oktober 1842). "Skizze des von Charles Babbage erfundenen analytischen Motors". Bibliothèque Universelle de Genève (82).
Wenn eine lange Reihe identischer Berechnungen durchgeführt werden soll, wie beispielsweise die für die Bildung numerischer Tabellen erforderlich, kann die Maschine ins Spiel gebracht werden, um mehrere Ergebnisse gleichzeitig zu erzielen, was die gesamte Menge erheblich verkürzen wird der Prozesse.
- ^ TRS-80 Modell II Technisches Referenzhandbuch. Funkraum. 1980. p. 135.