Verteilte und Parallele Programmierung

Mit Virtuellen Maschinen

Prof. Dr. Stefan Bosse

Universität Koblenz - FB Informatik - FG Praktiksche Informatik

1 / 32

Stefan Bosse - VPP - Modul 0 Überblick ::

Überblick

2 / 32

Stefan Bosse - VPP - Modul 0 Überblick :: Topics

Topics

  1. Formales: Taxononmien und Metriken von parallelen sowie verteilten Systemen
  2. Kommunikationsmodelle:
    • Speicherbasierte Kommunikation (geteilter Speicher)
    • Nachrichtenbasierte Kommunikation (Netzwerke)
  3. Ablaufmodelle und Architeturen:
    • Sequenzieller Prozess und Zustandsautomaten
    • Parallele Prozesse, Threads, Koroutinen
    • Zelluläre Automaten
    • Prozessalgebra
    • Asynchrone Ein- und Ausgabe (Vordergrund-Hintergrundsystem)
  4. Synchronisation, Interprozesskommunikation
  5. Virtuelle Maschinen
  6. Programmierung mit Lua
3 / 32

Stefan Bosse - VPP - Modul 0 Überblick :: Programmierung

Programmierung

Die Lua Programmiersprache

  • Dynamisch typisierte Skriptsprache
  • Einfach zu erlernen, funktional, minimalistisch, universell in der Anwendung
  • Sequenzielle Ausführung, aber Verschachtelung mit Koroutinen (jedoch nicht präemptiv)
  • Serialisierbar (Daten und Funktionen)
  • Es gibt verschiedene Virtuelle Maschinen
    • Lua-C
    • Lua-JS (Fengari)
    • LuaJit
    • ...
  • VM ist leichtgewichtig, Multihtreading einfach möglich, geringe Startzeit
  • Einfache Erweiterbarkeit (C-API, JS-API)
4 / 32

Stefan Bosse - VPP - Modul 0 Überblick :: Programmierung

Programmierung

  • Diverse Softwaretools

    • lua (Core)
    • lvm (LuaJit)
    • paluvm (Lua-C)
    • VNetOS (Lua-JS)
    • LuaWeb (Lua-JS)
  • Diverse (eingebaute) Bibliotheken

    • parallel → Parallel Map&Reduce
    • csp → Communicating Sequential Processes
    • rpc → Remote Procedure Call
    • luv → Asynchronous IO
    • caluap → Parallel Cellular Automata
    • tuple → generative musterbasierte Kommunikation
5 / 32

Stefan Bosse - VPP - Modul 0 Überblick :: Architekturen und Implementierung

Architekturen und Implementierung

Verschiedene Lua Implementierungen die in diesem Kurs zum Einsatz kommen

6 / 32

Stefan Bosse - VPP - Modul 0 Überblick :: Architekturen und Implementierung

Lua als Experimentallabor