Arbeitsgruppe ESS BA/MA-Themen SS21 Universität Osnabrück

Die Seite wird erstellt Norbert Neuhaus
 
WEITER LESEN
Arbeitsgruppe ESS BA/MA-Themen SS21 Universität Osnabrück
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
Arbeitsgruppe ESS BA/MA-Themen SS21 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
Arbeitsgruppe ESS BA/MA-Themen SS21 Universität Osnabrück
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
Arbeitsgruppe ESS BA/MA-Themen SS21 Universität Osnabrück
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