Arbeitsgruppe ESS BA/MA-Themen SS21 Universität Osnabrück
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Arbeitsgruppe ESS BA/MA-Themen SS21 https://ess.cs.uni-osnabrueck.de/teaching/theses.html.de Olaf Spinczyk olaf@uos.de http://ess.cs.uni-osnabrueck.de/~os Arbeitsgruppe Eingebettete Softwaresysteme Institut für Informatik, Universität Osnabrück
Wir suchen: (Bachelor|Master)and(en|innen) Allgemeines ● Empirisches Arbeiten ➔ Konzipieren, Bauen, Messen, Bewerten Themenkomplexe Eingebettete Systeme Systemsoftware Softwaretechnik und Plattformen 06.07.2021 ESS-Themen für Abschlussarbeiten 2
Themenbereiche ● Ressourcenmodelle (Daniel Friesel) – Ressourcenmodelle, Systemkonfiguration, Energieverwaltung ● Multi-/Manycore-Betriebssysteme (Michael Müller) – MxKernel-Projekt, low-level Betriebssystemprogrammierung – Skalierbarkeit, Heterogenität, Tasks vs. Threads ● Zuverlässigkeit und Sprachen (Christoph Borchert) – Softwarebasierte Fehlertoleranz – Aspektorientierte Programmierung ● Neue Hauptspeichertechnologien (Marcel Köppen) – Effizientere Betriebssysteme mit NVRAM 06.07.2021 ESS-Themen für Abschlussarbeiten 3
Modellgestützte Systemkonfiguration ● Anwendungen haben eine Vielzahl an Konfigurations-Optionen – Z.B. Betriebssystem: Task-System, Scheduler, Compiler-Optimierungen, ... – Beeinflussen Performance konkreter Anwendungsfälle ● Ziel: Pareto-optimale Konfigurationen für einen Anwendungsfall finden – Z.B. Video-Encoder: Kleines System-Image, hoher Durchsatz, ... Scheduler VRR, -Os RR, -Os ... kB, ... FPS ... kB, ... FPS VRR RR … VRR, -O2 RR, -O2 … kB, … FPS ... kB, … FPS Optimierung VRR, -O3 RR, -O3 … kB, … FPS … kB, … FPS -Os -O2 -O3 06.07.2021 ESS-Themen für Abschlussarbeiten 4
Modellgestützte Systemkonfiguration Herausforderungen: n ● Großer Zustandsraum: n binäre Optionen → bis zu 2 mögliche Konfigurationen ● Umgang mit nicht-binären Optionen ● Effiziente Modellaktualisierung nach Änderungen am Quelltext ● Effiziente Modellnutzung während der Systemkonfiguration Aufgaben: Aktuelle Konzepte aufarbeiten und in ESS-Software einbinden ● V. Nair et al. Finding Faster Configurations using FLASH. IEEE Transactions on Software Engineering Band 46, Ausgabe 7, 2018 ● C. Kaltenecker et al. Distance-Based Sampling of Software Configuration Spaces. International Conference on Software Engineering (ICSE), 2019 06.07.2021 ESS-Themen für Abschlussarbeiten 5
Energiemodelle für Betriebssysteme ● Anwendungsfall: Batteriebetriebene eingebettete Systeme – Funksensoren, IoT / Smart Home, … ● Begrenzter Energievorrat → Laufzeit? – Abhängig von Nutzung, Konfiguration und Umgebungseinflüssen ● Energiemodelle zur Laufzeit- und Restenergiebestimmung – Lebensdauer abschätzen, Restenergie zur Laufzeit kennen – Komponentenweise Modellierung mit Priced Timed Automata (PTA) 06.07.2021 ESS-Themen für Abschlussarbeiten 6
Ressourcenbeschränktes Energy Accounting ● Einfachster Ansatz: Automat zur Laufzeit simulieren ● Probleme: Ungenauigkeit durch Integervariablen, Overhead ● Beobachtung: Systemverhalten folgt oft einem deterministischem Muster sleep(1h) measure radio.TX sleep(1h) measure Knopfdruck Messdaten anzeigen Tag Nacht ● Aufgabe: Untersuchung Workload-basierter Modelle – Formale Spezifikation und Modellierung auf PTA-Basis – Implementierung und Evaluierung in eingebettetem Betriebssystem – Berücksichtigung nichtdeterministischer Aktionen 06.07.2021 ESS-Themen für Abschlussarbeiten 7
Themenbereiche ● Ressourcenmodelle (Daniel Friesel) – Ressourcenmodelle, Systemkonfiguration, Energieverwaltung ● Multi-/Manycore-Betriebssysteme (Michael Müller) – MxKernel-Projekt, low-level Betriebssystemprogrammierung – Skalierbarkeit, Heterogenität, Tasks vs. Threads ● Zuverlässigkeit und Sprachen (Christoph Borchert) – Softwarebasierte Fehlertoleranz – Aspektorientierte Programmierung ● Neue Hauptspeichertechnologien (Marcel Köppen) – Effizientere Betriebssysteme mit NVRAM 06.07.2021 ESS-Themen für Abschlussarbeiten 8
Kontext: MxKernel – OS-/DB-Codesign ● Systemarchitektur für Many-Core CPUs ● Dynamische Zuweisung von Ressourcen an „Zellen“ – CPU-Cores & Speicher – FPGA-LUTs – GPU ● Monitoring & Adaption durch Hypervisor („MxVisor“) ● Taskmodell innerhalb der „Zellen“ – effiziente parallele Ausführung – Elastizität („MxTasking“) 06.07.2021 ESS-Themen für Abschlussarbeiten 9
MxKernel-Abschlussarbeiten (1) ● Ressourcenüberwachung und -adaption im MxVisor – Aufgabe: Strategien zur dynamischen Verteilung von Resourcen an Hand von Lastprofilen entwickeln und bewerten ● Task-basierter TCP/IP-Stack – Tasks erlauben hohes Maß ein Parallelität – Fragen: Lässt sich dies Ausnutzen um die Verarbeitung von Netzwerkpaketen zu beschleunigen? Ist dadurch ein skalierbarer TCP/IP-Stack realisierbar? – Aufgabe: ● Parallelisierbare Abläufe im Netzwerkprotokollstack identifizieren ● Konzept und Implementierung für Netzwerkstack auf Task-Basis erstellen ● Evaluation der Skalierbarkeit und Auslastung der Kerne 06.07.2021 ESS-Themen für Abschlussarbeiten 10
MxKernel-Abschlussarbeiten (2) ● Survey von Synchronisationstechniken – Problem: Es gibt vielfältige Ansätze zur Synchronisation, aber nur wenige skalieren bei einer hohen Anzahl paralleler Kontrollflüsse. Zudem ist die Skalierbarkeit oft abhängig vom Workload. – Idee: MxTasking soll an Hand des Workloads automatisch entscheiden, welche Synchronisationstechnik verwendet wird ● Benötigt Wissen über Skalierbarkeit von Technik bei bestimmten Workload – Ziel: Entscheidungsbaum für Synchronisationstechniken an Hand des Workloads einer Anwendung 06.07.2021 ESS-Themen für Abschlussarbeiten 11
MxKernel-Abschlussarbeiten (3) ● Blockgerätetreiber und Dateisystem auf Tasks – Problem: IO bisher Flaschenhals für Skalierbarkeit im OS, Datenbank und OS benutzen jeweils eigene Implementierungen → Redundanz – Forschungsfragen: ● Wie realisiert man skalierbare Treiber auf Basis von Tasks? ● Wie muss ein skalierbares Dateisystem aussehen? ● Wie kann eine gemeinsame Dateisystemschnittstelle für OS und DB aussehen? – Aufgabe: ● Entwurf eines Konzepts für taskbasierten Blocktreiber bzw. Dateisystem ● Implementierung eines Prototypen ● Evaluation der Skalierbarkeit, Vergleich mit Linux 06.07.2021 ESS-Themen für Abschlussarbeiten 12
MxKernel-Abschlussarbeiten (4) ● GPU-Virtualisierung im Xen-Hypervisor – Bisher in der Praxis nur über Hardware-Unterstüzung (Virtual Device Functions) – Virtual Device Functions nur in begrenzter Anzahl vorhanden. Was wenn mehr Gastsysteme als virtuelle GPUs? – => Software-basierte Virtualisierung, aber wie? – Mehrere Möglichkeiten: Hardwareemulation, Paravirtualisierung, oder Virtualisierung im Hypervisor 06.07.2021 ESS-Themen für Abschlussarbeiten 13
MxKernel-Abschlussarbeiten (5) ● GPGPU-Virtualisierung: Hardwareemulation Dom0 Gastsystem 1 Gastsystem 2 qemu Application Application OS Gast-OS Gast-OS GPU-Treiber GPU-Treiber GPU-Treiber Virtuelle HW Virtuelle HW Xen GPU Hardware 06.07.2021 ESS-Themen für Abschlussarbeiten 14
MxKernel-Abschlussarbeiten (5) ● GPGPU-Virtualisierung: Hardwareemulation Dom0 Gastsystem 1 Gastsystem 2 qemu Application Vorteile: Application ● Keine Anpassung des Gastsystems notwendig OS ● Gast-OS Gast-OS ● ● GPU-Treiber des Gast-OS kann verwendet werden GPU-Treiber GPU-Treiber GPU-Treiber Nachteile: ● ● Virtuelle Nur Funktionen einer HW ganz bestimmten GPUVirtuelle verfügbarHW ● Viele Kontextwechsel und Traps notwendig ● ● Schlechte Performance ● Xen GPU Hardware 06.07.2021 ESS-Themen für Abschlussarbeiten 15
MxKernel-Abschlussarbeiten (5) ● GPGPU-Virtualisierung: Paravirtualisierung Dom0 Gastsystem 1 Gastsystem 2 OS Application Application PvGPU backend Gast-OS Gast-OS PvGPU PvGPU frontend frontend GPU-Treiber Xen GPU Hardware 06.07.2021 ESS-Themen für Abschlussarbeiten 16
MxKernel-Abschlussarbeiten (5) ● GPGPU-Virtualisierung: Paravirtualisierung Dom0 Gastsystem 1 Gastsystem 2 OS Application Application PvGPU Vorteile: backend Gast-OS ● Bessere Performance ● Gast-OS PvGPU PvGPU ● Nicht an Funktionalität einer bestimmten GPU gebunden ● frontend frontend GPU-Treiber Nachteile: ● Anpassung des Gastsystems notwendig ● ● Spezieller Backend- und Frontend-Treiber notwendig ● Xen GPU Hardware 06.07.2021 ESS-Themen für Abschlussarbeiten 17
MxKernel-Abschlussarbeiten (5) ● GPGPU-Virtualisierung: Treiber im Hypervisor Dom0 Gastsystem 1 Gastsystem 2 OS Application Application Gast-OS Gast-OS PvGPU PvGPU frontend frontend PvGPU GPU-Treiber backend Xen GPU Hardware 06.07.2021 ESS-Themen für Abschlussarbeiten 18
MxKernel-Abschlussarbeiten (5) ● GPGPU-Virtualisierung: Treiber im Hypervisor Dom0 Gastsystem 1 Gastsystem 2 OS Vorteile: Application ● Noch bessere Performance(?) ● Application ● Nicht an Funktionalität einer bestimmten GPU gebunden ● Gast-OS Gast-OS ● ● PvGPU Integration mit Xen-Scheduler PvGPU möglich, GPU wie CPUs behandeln frontend ● Hypervisor kann GPGPU-Funktionalität ● selbstfrontend nutzen Nachteile: ● Anpassung des Gastsystems notwendig ● ● Spezieller Backend- und Frontend-Treiber notwendig ● PvGPU ● Bisher keine Implementierung ● GPU-Treiber backend Xen GPU Hardware 06.07.2021 ESS-Themen für Abschlussarbeiten 19
MxKernel-Abschlussarbeiten (6) ● Thema dieser Abschlussarbeit daher: Integration eines GPGPU-Treibers in den Xen-Hypervisor ● Fragestellungen: – Lässt sich durch die direkte Integration des Treibers im Hypervisor die Performance verbessern? – Wie isoliert man einzelne Gastsysteme beim Zugriff auf die GPU? – Wie verteilt man GPGPU-Rechenzeit zwischen Gastsystemen? – Lassen sich CPU- und GPU-Scheduling miteinander verbinden und hat dies Vorteile? – Wie lassen sich auf diese Weise GPGPU-Funktionen für den Hypervisor nutzen? 06.07.2021 ESS-Themen für Abschlussarbeiten 20
MxKernel-Abschlussarbeiten (6) ● Aufgaben: – Bereits vorhandenen GPGPU-Treiber für Intel in Xen integrieren (bereits abgeschlossen) – Treiber um Funktion zur räumlichen und zeitliche Isolation erweitern – Schnittstellen zwischen Treiber und Gastsystemen entwerfen und implementieren – Scheduling-Strategien für virtuelle GPUs entwerfen (oder mit CPU- Scheduling koppeln?) – Evaluation der Performance im Vergleich zu paravirtualisierter Lösung 06.07.2021 ESS-Themen für Abschlussarbeiten 21
Themenbereiche ● Ressourcenmodelle (Daniel Friesel) – Ressourcenmodelle, Systemkonfiguration, Energieverwaltung ● Multi-/Manycore-Betriebssysteme (Michael Müller) – MxKernel-Projekt, low-level Betriebssystemprogrammierung – Skalierbarkeit, Heterogenität, Tasks vs. Threads ● Zuverlässigkeit und Sprachen (Christoph Borchert) – Softwarebasierte Fehlertoleranz – Aspektorientierte Programmierung ● Neue Hauptspeichertechnologien (Marcel Köppen) – Effizientere Betriebssysteme mit NVRAM 06.07.2021 ESS-Themen für Abschlussarbeiten 22
Fehlerinjektion mit GDB ● Entwicklung eines generischen Fehlerinjektions-Tools auf Basis des GNU-Debuggers – Simulation von Hardwaredefekten auf ISA-Level (Register, Speicher) ● Insbesondere zufälliger 1-Bit-Hauptspeicherfehler ● Ziel: Bewertung der Fehlertoleranz von Software – Nativ: Einzelne Linux-Programme auf einem PC (z.B. memcached) – Qemu: Ganze Betriebssysteme (z.B. FreeRTOS) – Remote: Software in eingebetteten Systemen (z.B. S32K SDK) 06.07.2021 ESS-Themen für Abschlussarbeiten 23
AspectC++: Weben in Templates ● Problem: Folgendes Sprachfeature “funktioniert noch nicht” … aspect IntElementCounter { advice execution("% Queue::enqueue(...)") : after() { ... } }; – erfordert individuelle Transformation pro Template-Instanz ● Aufgabe: – Erarbeitung der nötigen Code-Transformationsmuster für Klassen- und Funktions-Templates – Prototypischen Implementierung als Erweiterung des ac++-Compilers – Nachweis der Funktionstüchtigkeit an Fremdsoftware 06.07.2021 ESS-Themen für Abschlussarbeiten 24
AspectC++: Unterstützung für C++1x ● Problem: AspectC++ basiert auf C++ 2003 – Keine Untersützung für “move-semantics”, “variadic templates”, “override, final, etc. keywords”, “type deduction with auto”, ... – Der integrierte C++-Parser beherrscht aber durchaus neue Standards ● Aufgabe: – Sprachkonzepte: Wie muss AspectC++ auf der Sprachebene erweitert werden, um auch die neuen Elemente von C++ zu berücksichtigen? – Implementierungskonzept: Wie kann man C++1x-Features ausnutzen, um die Codetransformationen zu vereinfachen? – Prototypische Umsetzung der Konzepte in ac++ – Nachweis der Funktionstüchtigkeit an Fremdsoftware 06.07.2021 ESS-Themen für Abschlussarbeiten 25
Tracing mehrfädiger Programme ● Mehrfädige Programme (engl. multi-threaded code) müssen Zugriffe auf Daten im gemeinsamen Speicher koordinieren thread 1 thread 2 – Z.B. mittels pthread_mutex_lock()/unlock(), lock lock lock blocked pthread_rwlock_rdlock(), ... read Ziele: var1 var2 ● Entwicklung eines Tracing-Werkzeugs auf Basis von valgrind – Aufzeichnung von Zugriffen auf Locking-Primitiven (s.o.) – Aufzeichnung von Datenzugriffen, Nutzung von Debug-Infos ● Rudimentäre Transaktionsanalyse: – Welche Locks schützen welche Daten? Testprojekte, z.B. memcached, MariaDB Fernziele (optional): ● Locking-Dokumentation generieren, Anomalieerkennung (Bugs) 06.07.2021 ESS-Themen für Abschlussarbeiten 26
Themenbereiche ● Ressourcenmodelle (Daniel Friesel) – Ressourcenmodelle, Systemkonfiguration, Energieverwaltung ● Multi-/Manycore-Betriebssysteme (Michael Müller) – MxKernel-Projekt, low-level Betriebssystemprogrammierung – Skalierbarkeit, Heterogenität, Tasks vs. Threads ● Zuverlässigkeit und Sprachen (Christoph Borchert) – Softwarebasierte Fehlertoleranz – Aspektorientierte Programmierung ● Neue Hauptspeichertechnologien (Marcel Köppen) – Effizientere Betriebssysteme mit NVRAM 06.07.2021 ESS-Themen für Abschlussarbeiten 27
PMem: Persistenter Hauptspeicher Neue Speicherklasse zwischen SSD und RAM – Fast so schnell wie DRAM – Verliert Inhalt beim Stromausfall nicht Registers – Seit 2019 für Server verfügbar → Optane DC Caches y nc Co te DRAM st La Persistent Memory Flash / SSD Quelle: Intel Hard Disk Capacity Kann als schnelle SSD benutzt werden oder Programme können auf PMem arbeiten wie auf DRAM 06.07.2021 ESS-Themen für Abschlussarbeiten 28
Suspend to PMem Klassische Verfahren, um Rechner „schlafen zu legen“: ● Suspend to RAM: System einfrieren, Zustand im RAM halten ● Suspend to Disk: Speicherinhalt zusätzlich auf HDD/SSD sichern Idee: Speicherinhalt im persistenten Speicher sichern → Vorteile kombinieren ● Rechner kann komplett ausgeschaltet werden wie bei Suspend to Disk ● Beim Aufwachen: Im PMem gesicherte Speicherseiten benutzen, statt erst alles zurück ins RAM zu kopieren. Aufgabe: ● Implementierung im Linux-Kernel ● Evaluation verschiedener Ansätze, wann wieder ins RAM kopiert wird 06.07.2021 ESS-Themen für Abschlussarbeiten 29
Infrastruktur für Block-Optimierung (1) ● Zugriffsmuster auf Festplattenblöcke lernen ● Platzierung der Blöcke transparent optimieren – Mapping effizient und persistent in PMem speichern 10 3 besser 7 1 3 1 so: 6 6 6 1 1 1 Logische Blocknummern: Physische Blocknummern: Sicht des Dateisystems Sicht des Blockgeräts Map im 3 7 9 2 10 4 8 PMem: 0 1 2 3 4 5 6 7 8 9 10 06.07.2021 ESS-Themen für Abschlussarbeiten 30
Infrastruktur für Block-Optimierung (2) Ziel der Arbeit: Infrastruktur bereitstellen ● Implementierung einer ausfallsicheren Block-Map im PMem ● Sichern/Laden der Map auf der HDD beim Un-/Mounten ● Dynamisches Verschieben physischer Blöcke ● Schnittstelle für Zugriffsstatistik 06.07.2021 ESS-Themen für Abschlussarbeiten 31
So, das war's Arbeitsgruppe Eingebettete Softwaresysteme Bei Interesse bitte einfach melden! 06.07.2021 ESS-Themen für Abschlussarbeiten 32
Sie können auch lesen