From a9bc7d5452e8044f9adb85f5e869599ffa562e45 Mon Sep 17 00:00:00 2001 From: wieerwill Date: Thu, 2 Dec 2021 11:26:20 +0100 Subject: [PATCH] Sparsamkeit und Effizeinz --- Advanced Operating Systems.md | 158 +++++++++++++++++- .../AdvancedOperatingSystems-makrokernel.png | Bin 0 -> 26478 bytes .../AdvancedOperatingSystems-mikrokernel.png | Bin 0 -> 27040 bytes 3 files changed, 149 insertions(+), 9 deletions(-) create mode 100644 Assets/AdvancedOperatingSystems-makrokernel.png create mode 100644 Assets/AdvancedOperatingSystems-mikrokernel.png diff --git a/Advanced Operating Systems.md b/Advanced Operating Systems.md index 6330c6e..a7964a9 100644 --- a/Advanced Operating Systems.md +++ b/Advanced Operating Systems.md @@ -47,7 +47,7 @@ Gegenstand dieser Vorlesung: Konstruktionsrichtlinien für solche ,,High-End Bet - Quality ofservice(QoS) requirements - u.a. - ,,~ilities'' - - im Englischen: nichtfunktionale Eigenschaften eines Systems etc. informell auch als seine „ilities“ bezeichnet, hergeleitet von Begriffen wie + - im Englischen: nichtfunktionale Eigenschaften eines Systems etc. informell auch als seine ,,ilities'' bezeichnet, hergeleitet von Begriffen wie - Stability - Portability - ... @@ -242,7 +242,7 @@ Energiezustände beim Betrieb von Festplatten: - Schlussfolgerung: durch geringe Verlängerungen des idle - Intervalls kann signifikant der Energieverbrauch reduziert werden. #### Prefetching-Mechanismus -- Prefetching („Speichervorgriff“, vorausschauendes Lesen) & Caching +- Prefetching (,,Speichervorgriff'', vorausschauendes Lesen) & Caching - Standard-Praxis bei moderner Datei-E/A - Voraussetzung: Vorwissen über benötigte Folge von zukünftigen Datenblockreferenzen (z.B. Blockadressen für bestimmte Dateien, gewonnen durch Aufzeichnung früherer Zugriffsmuster beim Start von Anwendungen -Linux: readahead syscall) - Ziel: Performanzverbesserungdurch Durchsatzerhöhung u. Latenzzeit-Verringerung @@ -270,7 +270,7 @@ Energiezustände beim Betrieb von Festplatten: - Regeln für diese Strategie: 1. Optimales Prefetching: Jedes _prefetch_ sollte den nächsten Block im Referenzstrom in den Cache bringen, der noch nicht dort ist. 2. Optimales Ersetzen: Bei jedem ersetzenden _prefetch_ sollte der Block überschrieben werden, der am spätesten in der Zukunft wieder benötigt wird. - 3. „Richte keinen Schaden an“: Überschreibe niemals Block A um Block B zu holen, wenn A vor B benötigt wird. + 3. ,,Richte keinen Schaden an'': Überschreibe niemals Block A um Block B zu holen, wenn A vor B benötigt wird. 4. Erste Möglichkeit: Führe nie ein ersetzendes _prefetch_ aus, wenn dieses schon vorher hätte ausgeführt werden können. - Energieeffizientes Prefetching - Optimale Ersetzungsstrategie und 3 unterschiedliche Prefetching-Strategien: @@ -286,7 +286,7 @@ Energiezustände beim Betrieb von Festplatten: - Auswertung: Regeln für energieeffiziente Prefetching-Strategie nach Papathanasiou elal.: [PaSc04] 1. Optimales Prefetching: Jedes _prefetch_ sollte den nächsten Block im Referenzstrom in den Cache bringen, der noch nicht dort ist. 2. Optimales Ersetzen: Bei jedem ersetzenden _prefetch_ sollte der Block überschrieben werden, der am spätesten in der Zukunft wieder benötigt wird. - 3. „Richte keinen Schaden an“: Überschreibe niemals Block A um Block B zu holen, wenn A vor B benötigt wird. + 3. ,,Richte keinen Schaden an'': Überschreibe niemals Block A um Block B zu holen, wenn A vor B benötigt wird. 4. Maximiere Zugriffsfolgen: Führe immer dann nach einem _fetch_ oder _prefetch_ ein weiteres _prefetch_ aus, wenn Blöcke für eine Ersetzung geeignet sind. (i.S.v. Regel 3) 5. Beachte Idle-Zeiten: Unterbrich nur dann eine Inaktivitätsperiode durch ein _prefetch_ , falls dieses sofort ausgeführt werden muss, um einen Cache-Miss zu vermeiden. @@ -333,7 +333,7 @@ Verlustleistung: $P_{leakage}$ - Typ einer Anwendung - entscheidet über jeweilige Nutzererwartung 1. Hintergrundanwendung (z.B. Compiler); von Interesse: Gesamt-Bearbeitungsdauer, Durchsatz - 2. Echtzeitanwendung(z.B. Video-Player, MP3-Player); von Interesse: „flüssiges“ Abspielen von Video oder Musik + 2. Echtzeitanwendung(z.B. Video-Player, MP3-Player); von Interesse: ,,flüssiges'' Abspielen von Video oder Musik 3. Interaktive Anwendung (z.B. Webbrowser); von Interesse: Reaktivität, d.h. keine (wahrnehmbare) Verzögerung zwischen Nutzer-Aktion und Rechner-Reaktion - Insbesondere kritisch: Echtzeitanwendungen, interaktive Anwendungen @@ -413,7 +413,7 @@ Energiebewusstes RR: Reaktivität und Fairness - Beispiel: Synergie nichtfunktionaler Eigenschaften - Performanz nur möglich durch Parallelität $\rightarrow$ Multicore-Hardware - Multicore-Hardware nur möglich mit Lastausgleich und Lastverteilungauf mehrere CPUs - - dies erfordert ebenfalls Verteilungsstrategien: „Energy-aware Scheduling“ (Linux-Strategie zur Prozessorallokation -nicht zeitlichem Multiplexing!) + - dies erfordert ebenfalls Verteilungsstrategien: ,,Energy-aware Scheduling'' (Linux-Strategie zur Prozessorallokation -nicht zeitlichem Multiplexing!) ### Systemglobale Energieeinsparungsmaßnahmen - Traditionelle Betriebssysteme: Entwurf so, dass zu jedem Zeitpunkt Spitzen-Performanzangestrebt @@ -434,8 +434,8 @@ Energiebewusstes RR: Reaktivität und Fairness - Steuerung/Strategien: Softwareunterstützungnotwendig! Dynamisches Energiemanagement (DPM)- Strategien (Klassen) bestimmt, wann und wie lange eine Hardware-Komponente sich in Energiesparmodusbefinden sollte -- Greedy: Hardware-Komponente sofort nach Erreichen des Leerlaufs in Energiesparmodus, „Aufwecken“ durch neue Anforderung -- Time-out: Energiesparmodus erst nachdem ein definiertes Intervall im Leerlauf, „Aufwecken“ wie bei Greedy-Strategien +- Greedy: Hardware-Komponente sofort nach Erreichen des Leerlaufs in Energiesparmodus, ,,Aufwecken'' durch neue Anforderung +- Time-out: Energiesparmodus erst nachdem ein definiertes Intervall im Leerlauf, ,,Aufwecken'' wie bei Greedy-Strategien - Vorhersage: Energiesparmodus sofort nach Erreichen des Leerlaufs, wenn Heuristik vorhersagt,dass Kosten gerechtfertigt - Stochastisch: Energiesparmodus auf Grundlage eines stochastischen Modells @@ -496,7 +496,7 @@ weitere Einflussfaktoren: Speicherverwaltungskosten - dynamische Speicherreservierung durch Tasks ##### Beispiel 1: sparsam -Prozesskontrollblock (PCB, Metadatenstruktur des Prozessdeskriptors) eines kleinen Echtzeit-Kernels („DICK“): +Prozesskontrollblock (PCB, Metadatenstruktur des Prozessdeskriptors) eines kleinen Echtzeit-Kernels (,,DICK''): ```cpp // Process Control Block (PCB) struct pcb { @@ -631,6 +631,146 @@ Einflussfaktoren des Betriebssystems: - Modularisierung (zur Kompilierzeit) des Kernels: gezielte Anpassung an Einsatzdomäne möglich - Adaptivität (zur Kompilier-und Laufzeit) des Kernels: gezielte Anpassung an sich ändernde Umgebungsbedingungen möglich ($\rightarrow$ Cassini-Huygens-Mission) +## Architekturentscheidungen +- bisher betrachtete Mechanismen: allgemein für alle BS gültig +- ... typische Einsatzgebiete sparsamer BS: eingebettete Systeme +- eingebettetes System: (nach [Manl94] ) + - Computersystem, das in ein größeres technisches System, welches nicht zur Datenverarbeitung dient,physisch eingebunden ist. + - Wesentlicher Bestandteil dieses größeren Systems hinsichtlich seiner Entwicklung, technischer Ausstattung sowie seines Betriebs. + - Liefert Ausgaben in Form von (menschenlesbaren)Informationen, (maschinenlesbaren)Daten zur Weiterverarbeitung und Steuersignalen. +- BS für eingebettete Systeme: spezielle, anwendungsspezifische Ausprägung der Aufgaben eines ,,klassischen'' Universal-BS + - reduzierter Umfang von HW-Abstraktion, generell: hardwarenähere Ablaufumgebung + - begrenzte (extrem: gar keine) Notwendigkeit von HW-Multiplexing & -Schutz +- daher eng verwandte NFE: Adaptivitätvon sparsamen BS +- sparsame Betriebssysteme: + - energieeffizient ~ geringe Architekturanforderungen an energieintensive Hardware (besonders CPU, MMU, Netzwerk) + - speichereffizient ~ Auskommen mit kleinen Datenstrukturen (memory footprint) +- Konsequenz: geringe logische Komplexität des Betriebssystemkerns +- sekundär: Adaptivität des Betriebssystemkerns + +### Makrokernel (monolithischer Kernel) +![](Assets/AdvancedOperatingSystems-makrokernel.png) +- User Space: + - Anwendungstasks + - CPU im unprivilegiertenModus (Unix ,,Ringe'' 1...3) + - Isolation von Tasks durch Programmiermodell(z.B. Namespaces) oder VMM(private vAR) +- Kernel Space: + - Kernelund Gerätecontroller (Treiber) + - CPU im privilegierten Modus (Unix ,,Ring'' 0) + - keine Isolation (VMM: Kernel wird in alle vAR eingeblendet) + +### Mikrokernel +![](Assets/AdvancedOperatingSystems-mikrokernel.png) +- User Space: + - Anwendungstasks, Kernel-und Treiber tasks ( Serverprozesse, grau) + - CPU im unprivilegiertenModus + - Isolation von Tasks durch VMM +- Kernel Space: + - funktional minimaler Kernel(μKernel) + - CPU im privilegierten Modus + - keine Isolation (Kernel wird in alle vAR eingeblendet) + +### Architekturkonzepte im Vergleich +- Makrokernel: + - ✓ vglw. geringe Kosten von Kernelcode (Energie, Speicher) + - ✓ VMM nicht zwingend erforderlich + - ✓ Multitasking ($\rightarrow$ Prozessmanagement!)nicht zwingend erforderlich + - ✗ Kernel (inkl. Treibern) jederzeit im Speicher + - ✗ Robustheit, Sicherheit, Adaptivität +- Mikrokernel: + - ✓ Robustheit, Sicherheit, Adaptivität + - ✓ Kernelspeicherbedarf gering, Serverprozesse nur wenn benötigt ($\rightarrow$ Adaptivität) + - ✗ hohe IPC-Kosten von Serverprozessen + - ✗ Kontextwechselkosten von Serverprozessen + - ✗ VMM, Multitasking i.d.R. erforderlich + +## Beispiel-Betriebssysteme +### TinyOS +- Beispiel für sparsame BS im Bereich eingebetteter Systeme +- verbreitete Anwendung: verteilte Sensornetze (WSN) +- ,,TinyOS'' ist ein quelloffenes, BSD-lizenziertes Betriebssystem +- das für drahtlose Geräte mit geringem Stromverbrauch, wie sie in + - Sensornetzwerke, ($\rightarrow$ Smart Dust) + - Allgegenwärtiges Computing, + - Personal Area Networks, + - intelligente Gebäude, + - und intelligente Zähler. +- Architektur: + - grundsätzlich: monolithisch (Makrokernel) mit Besonderheiten: + - keine klare Trennung zwischen der Implementierung von Anwendungen und BS (wohl aber von deren funktionalen Aufgaben!) + - $\rightarrow$ zur Laufzeit: 1 Anwendung + Kernel +- Mechanismen: + - kein Multithreading, keine echte Parallelität + - $\rightarrow$ keine Synchronisation zwischen Tasks + - $\rightarrow$ keine Kontextwechsel bei Taskwechsel + - Multitasking realisiert durch Programmiermodell + - nicht-präemptives FIFO-Scheduling + - kein Paging$\rightarrow$ keine Seitentabellen, keine MMU +- in Zahlen: + - Kernelgröße: 400 Byte + - Kernelimagegröße: 1 - 4 kByte + - Anwendungsgröße: typisch ca. 15 kB, Datenbankanwendung: 64 kB +- Programmiermodell: + - BS und Anwendung werden als Ganzes übersetzt: statische Optimierungen durch Compilermöglich (Laufzeit, Speicherbedarf) + - Nebenläufigkeit durch ereignisbasierte Kommunikation zw. Anwendung und Kernel + - $\rightarrow$ command: API-Aufruf, z.B. EA-Operation (vglb. Systemaufruf) + - $\rightarrow$ event: Reaktion auf diesen durch Anwendung + - sowohl commands als auch events : asynchron +- Beispieldeklaration: + ```cpp + interface Timer { + command result_t start(char type, uint32_t interval); + command result_t stop(); + event result_t fired(); + } + interface SendMsg { + command result_t send(uint16_t address, uint8_t length, TOS_MsgPtr msg); + event result_t sendDone(TOS_MsgPtr msg, result_t success); + } + ``` + +### RIOT +[RIOT-Homepage: http://www.riot-os.org] +- ebenfalls sparsames BS,optimiert für anspruchsvollere Anwendungen (breiteres Spektrum) +- ,,RIOT ist ein Open-Source-Mikrokernel-basiertes Betriebssystem, das speziell für die Anforderungen von Internet-of-Things-Geräten (IoT) und anderen eingebetteten Geräten entwickelt wurde.'' + - Smartdevices, + - intelligentes Zuhause, intelligente Zähler, + - eingebettete Unterhaltungssysteme + - persönliche Gesundheitsgeräte, + - intelligentes Fahren, + - Geräte zur Verfolgung und Überwachung der Logistik. +- Architektur: + - halbwegs: Mikrokernel + - energiesparendeKernelfunktionalität: + - minimale Algorithmenkomplexität + - vereinfachtes Threadkonzept $\rightarrow$ keine Kontextsicherung erforderlich + - keine dynamische Speicherallokation + - energiesparende Hardwarezustände vom Scheduler ausgelöst (inaktive CPU) + - Mikrokerneldesign unterstützt komplementäre NFE: Adaptivität, Erweiterbarkeit + - Kosten: IPC (hier gering!) +- Mechanismen: + - Multithreading-Programmiermodell + - modulare Implementierung von Dateisystemen, Scheduler, Netzwerkstack +- in Zahlen: + - Kernelgröße: 1,5 kByte + - Kernelimagegröße: 5 kByte + +Implementierung +- ... kann sich jeder mal ansehen (keine spezielle Hardware, beliebige Linux-Distribution, FreeBSD, macOSX mit git ): + ```bash + $ git clone git://github.com/RIOT-OS/RIOT.git + $ cd RIOT + $ cd examples/default/ + $ make all + $ make term + ``` +- startet interaktive Instanz von RIOT als ein Prozess des Host-BS +- Verzeichnis RIOT: Quellenzur Kompilierung des Kernels, mitgelieferte Bibliotheken, Gerätetreiber, Beispielanwendungen; z.B.: + - RIOT/core/include/thread.h: Threadmodell, Threaddeskriptor + - RIOT/core/include/sched.h, + - RIOT/core/sched.c: Implementierung des (einfachen) Schedulers +- weitere Infos: riot-os.org/api + # Robustheit und Verfügbarkeit # Sicherheit diff --git a/Assets/AdvancedOperatingSystems-makrokernel.png b/Assets/AdvancedOperatingSystems-makrokernel.png new file mode 100644 index 0000000000000000000000000000000000000000..c058b01d6ada36d95185b8340a93c54438c32012 GIT binary patch literal 26478 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 P0VN&PKa!<&=KB8uBuc&@ literal 0 HcmV?d00001