From cc6d9323d7ead0799e1df533f9fdd2298cfc1ea0 Mon Sep 17 00:00:00 2001 From: wieerwill Date: Wed, 2 Feb 2022 16:10:28 +0100 Subject: [PATCH] Kapitel Performanz --- Advanced Operating Systems.md | 194 +++++++++++++++++- ...eratingSystems-multicore-prozessoren-2.png | Bin 0 -> 8023 bytes ...eratingSystems-multicore-prozessoren-3.png | Bin 0 -> 11904 bytes ...OperatingSystems-multicore-prozessoren.png | Bin 0 -> 16676 bytes 4 files changed, 193 insertions(+), 1 deletion(-) create mode 100644 Assets/AdvancedOperatingSystems-multicore-prozessoren-2.png create mode 100644 Assets/AdvancedOperatingSystems-multicore-prozessoren-3.png create mode 100644 Assets/AdvancedOperatingSystems-multicore-prozessoren.png diff --git a/Advanced Operating Systems.md b/Advanced Operating Systems.md index 7b15ac3..3813a09 100644 --- a/Advanced Operating Systems.md +++ b/Advanced Operating Systems.md @@ -3198,6 +3198,191 @@ MirageOS + Xen - ![](Assets/AdvancedOperatingSystems-docker.png) # Performanz und Parallelität +## Motivation +- Performanz: Wer hätte gern einen schnell(er)en Rechner...? +- Wer braucht schnelle Rechner: + - Hochleistungsrechnen, HPC (,,high performancecomputing'') + - wissenschaftliches Rechnen(z.B. Modellsimulation natürlicher Prozesse, Radioteleskop-Datenverarbeitung) + - Datenvisualisierung(z.B. Analysen großer Netzwerke) + - Datenorganisation-und speicherung(z.B. Kundendatenverarbeitung zur Personalisierung von Werbeaktivitäten, Bürgerdatenverarbeitung zur Personalisierung von Geheimdienstaktivitäten) + - nicht disjunkt dazu: kommerzielle Anwendungen + - ,,Big Data'': Dienstleistungen für Kunden, die o. g. Probleme auf gigantischen Eingabedatenmengen zu lösen haben (Software wie Apache Hadoop ) + - Wettervorhersage + - anspruchsvolle Multimedia- Anwendungen + - Animationsfilme + - VR-Rendering + +## Performanzbegriff +- Performance: The degree to which a system or component accomplishes its designated functions within given constraints, such as speed, accuracy, or memory usage. (IEEE) +- Performanz im engeren Sinne dieses Kapitels: Minimierung der für korrekte Funktion (= Lösung eines Berechnungsproblems) zur Verfügung stehenden Zeit. +- oder technischer: Maximierung der Anzahl pro Zeiteinheit abgeschlossener Berechnungen. + +## Roadmap +- Grundlegende Erkenntnis: Performanz geht nicht (mehr) ohne Parallelität $\rightarrow$ Hochleistungsrechnen = hochparalleles Rechnen +- daher in diesem Kapitel: Anforderungen hochparallelen Rechnens an ... + - Hardware: Prozessorarchitekturen + - Systemsoftware: Betriebssystemmechanismen + - Anwendungssoftware: Parallelisierbarkeitvon Problemen +- BS-Architekturen anhand von Beispielsystemen: + - Multikernel: Barrelfish + - verteilte Betriebssysteme + +## Hardware-Voraussetzungen +- Entwicklungstendenzen der Rechnerhardware: + - Multicore-Prozessoren: seit ca. 2006 (in größerem Umfang) + - Warum neues Paradigma für Prozessoren? bei CPU-Taktfrequenz ≫4 GHz: z.Zt. physikalische Grenze, u.a. nicht mehr sinnvoll handhabbare Abwärme + - Damit weiterhin: + 1. Anzahl der Kerne wächst nicht linear + 2. Taktfrequenz wächst asymptotisch, nimmt nur noch marginal zu + +## Performanz durch Parallelisierung ... +Folgerungen +1. weitere Performanz-Steigerung von Anwendungen: primär durch Parallelität (aggressiverer) Multi-Threaded-Anwendungen +2. erforderlich: Betriebssystem-Unterstützung $\rightarrow$ Scheduling, Sychronisation +3. weiterhin erforderlich: Formulierungsmöglichkeiten (Sprachen), Compiler, verteilte Algorithmen ... $\rightarrow$ hier nicht im Fokus + +## ... auf Prozessorebene +Vorteile von Multicore-Prozessoren +1. möglich wird: **Parallelarbeit auf Chip-Ebene** $\rightarrow$ Vermeidung der Plagen paralleler verteilter Systeme +2. bei geeigneter Architektur: Erkenntnisse und Software aus Gebiet verteilter Systeme als Grundlage verwendbar +3. durch gemeinsame Caches (architekturabhängig): schnellere Kommunikation (speicherbasiert), billigere Migration von Aktivitäten kann möglich sein +4. höhere Energieeffizienz: mehr Rechenleistung pro Chipfläche, geringere elektrische Leistungsaufnahme $\rightarrow$ weniger Gesamtabwärme, z.T. einzelne Kerne abschaltbar (vgl. Sparsamkeit , mobile Geräte) +5. Baugröße: geringeres physisches Volumen + +Nachteile von Multicore-Prozessoren +1. durch gemeinsam genutzte Caches und Busstrukturen: Engpässe (Bottlenecks) möglich +2. zur Vermeidung thermischer Zerstörungen: Lastausgleich zwingend erforderlich! (Ziel: ausgeglichene Lastverteilung auf einzelnen Kernen) +3. zum optimalen Einsatz zwingend erforderlich: + 1. Entwicklung Hardwarearchitektur + 2. zusätzlich: Entwicklung geeigneter Systemsoftware + 3. zusätzlich: Entwicklung geeigneter Anwendungssoftware + +### Multicore-Prozessoren +- Sprechweise in der Literatur gelegentlich unübersichtlich... +- daher: Terminologie und Abkürzungen: + - MC ...multicore(processor) + - CMP ...chip-level multiprocessing, hochintegrierte Bauweise für ,,MC'' + - SMC ...symmetric multicore $\rightarrow$ SMP ... symmetric multi-processing + - AMC ...asymmetric (auch: heterogeneous ) multicore $\rightarrow$ AMP ... asymmetric multi-processing + - UP ...uni-processing , Synonym zu singlecore(SC) oder uniprocessor + +Architekturen von Multicore-Prozessoren +- A. Netzwerkbasiertes Design + - Prozessorkerne des Chips u. ihre lokalen Speicher (oder Caches): durch Netzwerkstruktur verbunden + - damit: größte Ähnlichkeit zu traditionellen verteilten Systemen + - Verwendung: bei Vielzahl von Prozessorkernen (Skalierbarkeit!) + - Beispiel: Intel Teraflop-Forschungsprozessor Polaris (80 Kerne als 8x10-Gitter) + - ![](Assets/AdvancedOperatingSystems-multicore-prozessoren.png) +- B. Hierarchisches Design + - mehrere Prozessor-Kerne teilen sich mehrere baumartig angeordnete Caches + - meistens: + - jeder Prozessorkern hat eigenen L1-Cache + - L2-Cache, Zugriff auf (externen) Hauptspeicher u. Großteil der Busse aber geteilt + - Verwendung: typischerweise Serverkonfigurationen + - Beispiele: + - IBM Power + - Intel Core 2, Core i + - Sun UltraSPARCT1 (Niagara) + - ![](Assets/AdvancedOperatingSystems-multicore-prozessoren-2.png) +- C. Pipeline-Design + - Daten durch mehrere Prozessor-Kerne schrittweise verarbeitet + - durch letzten Prozessor: Ablage im Speichersystem + - Verwendung: + - Graphikchips + - (hochspezialisierte) Netzwerkprozessoren + - Beispiele: Prozessoren X10 u. X11 von Xelerator zur Verarbeitung von Netzwerkpaketen in Hochleistungsroutern (X11: bis zu 800 Pipeline-Prozessorkerne) + - ![](Assets/AdvancedOperatingSystems-multicore-prozessoren-3.png) + +Symmetrische u. asymmetrische Multicore-Prozessoren +- symmetrische Multicore-Prozessoren (SMC) + - alle Kerne identisch, d.h. gleiche Architektur und gleiche Fähigkeiten + - Beispiele: + - Intel Core 2 Duo + - Intel Core 2 Quad + - ParallaxPropeller +- asymmetrische MC-Prozessoren (AMC) + - Multicore-Architektur, jedoch mit Kernen unterschiedlicher Architektur und/oder unterschiedlichen Fähigkeiten + - Beispiel: Kilocore: + - 1 Allzweck-Prozessor (PowerPC) + - + 256 od. 1024 Datenverarbeitungsprozessoren + +### Superskalare Prozessoren +- Bekannt aus Rechnerarchitektur: Pipelining + - parallele Abarbeitung von Teilen eines Maschinenbefehls in Pipeline-Stufen + - ermöglicht durch verschiedene Funktionseinheiten eines Prozessors für verschiedene Stufen: + - Control Unit (CU) + - ArithmeticLogicUnit (ALU) + - Float Point Unit (FPU) + - Memory Management Unit (MMU) + - Cache + - sowie mehrere Pipeline-Register +- superskalare Prozessoren: solche, bei denen zur Bearbeitung einer Pipeling-Stufe erforderlichen Funktionseinheiten n-fach vorliegen +- Ziel: + - Skalarprozessor (mit Pipelining): 1 Befehl pro Takt (vollständig) bearbeitet + - Superskalarprozessor: bis zu n Befehle pro Taktbearbeitet +- Verbereitung heute: universell (bis hin zu allen Desktop-Prozessorfamilien) + +## Parallelisierung in Betriebssystemen +- Basis für alle Parallelarbeit aus BS-Sicht: Multithreading +- wir erinnern uns ...: + - Kernel-Level-Threads (KLTs): BS implementiert Threads $\rightarrow$ Scheduler kann mehrere Threads nebenläufig planen $\rightarrow$ Parallelität möglich + - User-Level-Threads (ULTs): Anwendung implementiert Threads $\rightarrow$ keine Parallelität möglich! +- grundlegend für echt paralleles Multithreading: + - parallelisierungsfähige Hardware + - kausal unabhängige Threads + - passendes (und korrekt eingesetztes!) Programmiermodell, insbesondere Synchronisation! + - $\rightarrow$ Programmierer + Compiler + +Vorläufiges Fazit: +- BS-Abstraktionen müssen Parallelität unterstützen (Abstraktion nebenläufiger Aktivitäten: KLTs) +- BS muss Synchronisationsmechanismen implementieren + +### Synchronisations- und Sperrmechanismen +- Synchronisationsmechanismen zur Nutzung + - ... durch Anwendungen $\rightarrow$ Teil der API + - ... durch den Kernel (z.B. Implementierung Prozessmanagement, E/A, ...) +- Aufgabe: Verhinderung konkurrierender Zugriffe auf logische oder physische Ressourcen + - Vermeidung von raceconditions + - Herstellung einer korrekten Ordnung entsprechend Kommunikationssemantik (z.B. ,,Schreiben vor Lesen'') +- (alt-) bekanntes Bsp.: Reader-Writer-Problem + +Erinnerung: Reader-Writer-Problem +- Begriffe: (bekannt) + - wechselseitiger Ausschluss ( mutual exclusion) + - kritischer Abschnitt (critical section) +- Synchronisationsprobleme: + - Wie verhindern wir ein write in vollen Puffer? + - Wie verhindern wir ein read aus leerem Puffer? + - Wie verhindern wir, dass auf ein Element während des read durch ein gleichzeitiges write zugegriffen wird? (Oder umgekehrt?) + +Sperrmechanismen ( Locks ) +- Wechselseitiger Ausschluss ... + - ... ist in nebenläufigen Systemen zwingend erforderlich + - ... ist in echt parallelen Systemen allgegenwärtig + - ... skaliert äußerst unfreundlich mit Code-Komplexität $\rightarrow$ (monolithischer) Kernel-Code! +- Mechanismen in Betriebssystemen: Locks +- Arten von Locks am Beispiel Linux: + - Big Kernel Lock (BKL) + - historisch (1996-2011): lockkernel(); ... unlockkernel(); + - ineffizient durch massiv gestiegene Komplexität des Kernels + - atomic-Operationen + - Spinlocks + - Semaphore (Spezialform: Reader/Writer Locks) + +atomic* +- Bausteine der komplexeren Sperrmechanismen: + - Granularität: einzelne Integer- (oder sogar Bit-) Operation + - Performanz: mittels Assembler implementiert, nutzt Atomaritäts garantiender CPU ( TSL - Anweisungen: ,,test-set-lock'' ) +- Benutzung: + ```cpp + atomic_t x; + atomic_set(&x, 42); + int y = atomic_read(&x); + ``` + - `atomic_*` Geschmacksrichtungen: read, set, add, sub, inc, dec u. a. + - keine explizite Lock-Datenstruktur $\rightarrow$ Deadlocks durch Mehrfachsperrung syntaktisch unmöglich + - definierte Länge des kritischen Abschnitts (genau diese eine Operation) $\rightarrow$ unnötiges Sperren sehr preiswert + # Zusammenfassung @@ -3294,4 +3479,11 @@ Referenzmonitor: - Virtualisierung: - [Popek&Goldberg74] Gerald J. Popek, Robert P. Goldberg: Formal Requirements for Virtualizable Third Generation Architectures, Communications of the ACM, Vol. 17, No.7, 1974 - [Adams&Agesen06] Keith Adams, Ole Agesen: A Comparison of Software and Hardware Techniques for x86 Virtualization, 12th Int. Conf. on Architectural Support for Programming Languages and Operating, Systems(ASPLOS XII), 2006 - - [Agesen+12] Ole Agesen,Jim Mattson,Radu Rugina, Jeffrey Sheldon: Software Techniques for Avoiding Hardware Virtualization Exits, 2012 USENIX Annual Technical Conference (USENIX ATC '12), 2012 \ No newline at end of file + - [Agesen+12] Ole Agesen,Jim Mattson,Radu Rugina, Jeffrey Sheldon: Software Techniques for Avoiding Hardware Virtualization Exits, 2012 USENIX Annual Technical Conference (USENIX ATC '12), 2012 +- Parallelisierbarkeit: + - [Heiss94] Hans-Ulrich Heiss: Prozessorzuteilung in Parallelrechnern, B.I. Wissenschaftsverlag: Mannheim, Leipzig, Wien, Zürich, 1994, ISBN: 3-411-17061-1 + - [Keckler+2009] Stephen W. Keckler: Multicore Processors and Systems, Springer Science+BusinessMedia, LLC 2009, ISBN 978-1-4419-0263-4 +- Barrelfish: + - [Baumann+2009b] Andrew Baumann et al.: The Multikernel: A newOS architecture for scalable multicoresystems, Proceedings ACM SOSP (Symposium on Operating System Principles) 2009 +- Amoeba: + - [Tanenbaum+91] AndrewS. Tanenbaum, M. Frans Kaashoek, Robbertvan Renesse, Henri E. Bal: The Amoeba Distributed Operating System - A Status Report Elsevier Computer Communications, Vol. 14, No.6, 1991, S. 324 – 335 \ No newline at end of file diff --git a/Assets/AdvancedOperatingSystems-multicore-prozessoren-2.png b/Assets/AdvancedOperatingSystems-multicore-prozessoren-2.png new file mode 100644 index 0000000000000000000000000000000000000000..51aa605257f81d41e2896ae36b91abbc44c39668 GIT binary patch literal 8023 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 Yjyo*skYFkfo{R%33TpBtvZn9;8;C#UssI20 literal 0 HcmV?d00001 diff --git a/Assets/AdvancedOperatingSystems-multicore-prozessoren-3.png b/Assets/AdvancedOperatingSystems-multicore-prozessoren-3.png new file mode 100644 index 0000000000000000000000000000000000000000..a19b29186d5fbbcdb24358d833852138254b4fa6 GIT binary patch literal 11904 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 PkV9mp6knA}82bGWFyK2A literal 0 HcmV?d00001 diff --git a/Assets/AdvancedOperatingSystems-multicore-prozessoren.png b/Assets/AdvancedOperatingSystems-multicore-prozessoren.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d14df4f85cc11c62d1cafc70a1158864632c17 GIT binary patch literal 16676 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 literal 0 HcmV?d00001