PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Mit Labor @home
PD Stefan Bosse
Universität Bremen - FB Mathematik und Informatik
PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Wie kann die Datenverarbeitung unter Randbedingungen von material-integrierten Systemen erfolgen?
Vom Mikrocomputer zum Nanocomputer
Virtualisierung auch im Material!
Programmierung
Rechnerarchitektur PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Computersystemarchitekturen. Implementierungsebenen kommunizieren vertikal über die gezeigten Schnittstellen. (Nach Glenford Myers, 1982
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Bedeutung:
Normalerweise wird die Berechnung von Sensorerfassung und Steuerung getrennt
Smarte Materialien stellen die enge Verbindung zwischen
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Algorithmische Skalierung und Verteilung sind erforderlich
Mooresches Gesetz sagte starke Miniaturisierung voraus
Jedoch die Informatik und deren Methoden konnten nicht immer folgen → Lücke zwischen Hardware und Software
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Eine normalisierte Recheneffizienz eines Computers (nur unter Berücksichtigung der Datenverarbeitungseinheit) kann definiert werden durch:
ϵC=CAP
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Die Recheneffizienz kann verwendet werden, um verschiedene Computer und Geräte zu vergleichen, d.h. einen Skalierungsfaktor anzugeben:
s=ϵ1ϵ2
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
ϵCM=CMAP
ϵCMD=CMDAP
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
⇒ Dhrystone Benchmark umfasst alle oben genannten Operationen!
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
H Normierte Maßzahlen für die Chip Fläche (A/rbe)
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
H Normierte Maßzahlen für die Chip Fläche von Speicher (A/rbe)
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
H Normierte Maßzahlen für die Chip Fläche von Prozessoren (A/rbe)
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
H Normierte Maßzahlen für die Chip Fläche von FPGAs (A/rbe)
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
H Zusammenhang der Technologiegröße -math[f] (Fertigungsauflösung/Transistordimension) mit der normierten Fläche A
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Es geht noch kleiner → Smart Dust reloaded (by Hitachi)
Materialinformatik PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Aufgabe
Mache eigene Messungen mit dem dhrstone benchmark Test auf verschiedenen Rechnern und Virtuellen Maschinen.
Stelle eine Tabelle zusammen mit gängigen Computern (mobil, Desktop, Server, eingebettete Rechner, Nanorechner) mit den Daten MIPS/DPS, Speicher, Kommunikation (abgeschätzt) sowie Chip Fläche und el. Leistungsbedarf
Berechne die verschiedenen ε Parameter und vergleiche ...
Entwurf Eingebetteter Systeme PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Entwurfsebenen von Eingebetteten Systemen auf Softwareebene
Entwurf Eingebetteter Systeme PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Entwurfsebenen von Eingebetteten Systemen auf Hardwareebene
Rechnersysteme PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Rechnertechnologien PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Existierende "Nano"-Computer:
Micro Mote M3
ELM System
Rechnertechnologien PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Existierende Kleinstrechner für Sensornetzwerke mit Drahtloskommunikation (WLAN, Bluetooth)
Raspberry PI Zero
ESP8266
Rechnertechnologien PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Micro Mote (M3 ) | ELM System | Atmel Tiny 20 | Freescale KL03 | ARM Cortex Smart Phone | |
---|---|---|---|---|---|
Processor | Arm Cortex M0 | C8051F990 (SL) | AVR | Arm Cotex M0+ | Arm Cortex A9 |
Clock | 740kHz max. | 32kHz | - | 48MHz | 1GHz |
CPU Chip Area | 0.1mm2 | 9mm2 | 1mm2 | 4mm2 | 7mm2/ROM |
Memory | 3-4kB | 0.5kB/2-8kB | - | 2kB/40kB | 512MB/4GB |
Sensors | Temperature | - | - | - | Temp, Light, Sound, Accel., Press., Magn. |
Communication | 900MHz radio, optical | optical | electrical | - | 3G/4G, WLAN, USB, Bluetooth, NFC |
Harvester, Battery | Solar cell, Thin film | Solar cell, Coin | - | - | - |
Power Consumption | 70mW / CPU | 160mW / CPU | 20mW | 3mW @ 48MHz | 100mW avg., 2W peak @ 1.5GHz |
Manufacturing | 180nm CMOS | - | - | - | 40nm CMOS |
Package | Wire bonded | Silicon Stack | PCB | Single Chip | Single Chip , PCB |
Computing Eff. εC | 150 | 0.02 | 0.6 | 4.0 | 0.53 |
Rechnertechnologien PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Smart Dust: Warneke et al., 2001 Aufbau einer Smart Dust Mote
Rechnernetzwerke PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Von großen Computern zu großen Netzwerken ...
Skalierung und Miniaturisierung [Smart Dust: Warneke et al., 2001]
Rechnertypen PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Rechnertypen PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Rechnereinteilung nach Adressanzahl: gezählt wird die Anzahl Operanden eines dyadischen Operators (z.B. einer Addition) [C]
Programmierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Die Programmierung eingebetteter Systeme stellt aufgrund folgender Randbedingung eine Herausforderung dar:
Geringe Rechnenleistung pro Netzknoten
Geringe Speicherkapazität von Daten
Bei energieautarken Systemen gibt es eingeschränkte Laufzeit
Geringe Kommunikationsleistung
Fehleranfälligkeit
Schlechte Wartbarkeit (Softwareupdates usw.)
Eingeschränkte Möglichkeiten der Fehlersuche
Programmierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Programmierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Performanz und Speicherbedarf bei Skriptsprachen hängen vom Interpreter ab!
Bytecode. Der Bytecode ist eine Sammlung von Befehlen für eine virtuelle Maschine.
Programmierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Reine Bytecode Interpreter haben geringe oder mittlere Performanz bei niedrigen Speicherbedarf
Ein JIT Compiler übersetzt häufig vorkommende Bytecode Abschnitte zur Ausführungszeit in nativen Maschinencode
Vorteile von Skriptsprachen gegenüber kompilierten Programmen: Schneller Test, ausführliche und genaue Rückmeldung vom Interpreter bei Fehlern, bessere Laufzeitüberwachung von Fehlern, ...
Programmierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Programmierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Eine prozessvirtuelle Maschine, die Programme ausführen kann, die für ein anderes Betriebssystem und eine andere ISA entwickelt wurden: Die Virtualisierungssoftware bildet eine Plattform auf eine andere ab, und übersetzt eine Reihe von Betriebssystem- und Benutzerebenenbefehlen. [A]
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
http://doc.gold.ac.uk Klassischer Softwareentwurf mit Compiler und Linker (C)
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Edit - Compile - Execute Zyklus bei einem Interpreter
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Vergleich Interpreter mit Bytcode Compiler-Interpreter System
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Da Bytecode unabhängig von der Hostplattform sein sollte, kann Bytecode einfach von einer Maschine zu einer anderen übertragen und ausgeführt werden
Dazu ist eine Serialisierung von Daten und Code erforderlich (Flache Liste von Bytes), mit anschließender Deserialisierung (Wiederherstellung der Daten- und Codestruktur)
Neben vollständig binär kodierten Bytecode ist Text eine Unterklasse. Beispiel: JavaScript, JSON
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Peter Cawley Serialisierung in einer Bytecode VM
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Vergleich Interpreter mit JIT Compiler-Interpreter Systeme
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Aufgabe
Überlegen Sie sich die Vor- und Nachteile von
Was sind die Bewertungskriterien?
Welche Ausführungsarchitekturen könnten für Eingebettete Systeme geeignet sein?
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
B Typische Datenverarbeitungsebenen in Eingebetteten Systemen und Virtualisiering
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Dhrystone Benchmark (Kombination aus Berechnung, Objekten, Arrays, Strings, Funktionen)
VM/OS-ARCH | Linux-i686 | Linux-armv6l (PI-3B) | Linux-armv6l (PI Zero) |
---|---|---|---|
python2.71 | 105k/s | 23k/s | 4k/s |
lua 5.12 | 140k/s | 36k/s | - |
luajit 2.0.5X/lvm2 | 660k/s | 108k/s | 40k/s |
jerryscript 1.1.7X3 | 45k/s | - | - |
nodejs/V8-43 | 6300k/s | 879k/s | 40k/s |
C/gcc | 18000k/s | 3700k/s | ? |
(1: Python, 2: Lua, 3: JavaScript)
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Dhrystone Benchmark (Kombination aus Berechnung, Objekten, Arrays, Strings, Funktionen)
VM/OS-ARCH | Linux-i686 | Linux-armv6l (PI-3B) | Linux-armv6l (PI Zero) |
---|---|---|---|
python2.7 | - | - | - |
lua 5.1 | - | - | - |
luajit 2.0.5X/lvm | 2MB | 2MB | - |
jerryscript 1.1.7X | 2MB | - | - |
nodejs 4/10 | 24MB | 32MB | - |
C/gcc | 1MB | ? | ? |
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
In C/C++ muss für jedes zur Laufzeit dynamisch erzeugte Datenobjekt (Array, String, Record, ..) immer explizit Speicherplatz im Hauptspeicher angefragt werden (malloc
) und wieder frei gegeben werden wenn das Datenobjket nicht mehr benötigt wird (free
)
In Skriptsprachen gibt es i.A. ein automatisches Speichermanagement mit einem sog. Garbage Collector und Objektreferenzierung
Jedes Datenobjekt welches verwendet wird (z.B. in Variablen oder Funktionen) besitzt eine Referenz
Es muss eine Wurzeltabelle geben von der aus alle Referenzen auf verwendete Objekte auffindbar sind
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
var o1 = { a=1, b={1,2,3,4} }var o2 = { op = o1, index=2 }function show () print (o2.op.a } end; show()
Beispiel von Objektreferenzierungen in Lua: Wo existieren Referenzen?
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Verschiedene Objekte: Objekte die nicht mehr referenziert sind, werden freigegeben
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Speicherhierarchie von Programmen und Zusammenhang mit Maschinenanweisungen
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Die meisten Objekte in Programmiersprachen benötigen Speicher
Der Kontext von Speicherobjekten ist wichtig:
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Xglobal = 1local xloakal = 2function f1 () local xlokal1 = 3endfunction f2 () local xlokal2 = 3end
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Ein Teil des Speicher ist vorbelegt:
Ein anderer Teil des Speichers wird zur Laufzeit auf dem Stack und Heap belegt und benötigt Verwaltung:
Achtung: Bei Programmiersprachen bei denen Funktionen Werte erster Ordnung sind befindet sich auch Code im Heap oder auf dem Stack
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Vorteile
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Nachteile
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Vorteile
Nachteile
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
local o1 = { x=100,y=200 }e1 [e1.ref=1(o1)]local o2 = { pos=o1, color="red" }e2 [e1.ref=2(o2,o1)]function draw (o) local o3 = { pos=o.pos, color="white" }e3 [e3.ref=1(o3), e1.ref=4(o3,..)] local o4 = { pos={x=o.pos.x,y=o.pos.y}e4, color="black" } [e1.ref=5(o4,o4,..)] draw(o3) draw(o4) → [e3.ref=0, e4.ref=0, e1.ref=3, e2.ref=2]enddraw(o2) [e2.ref=2(o,o2), e1.ref=3(o,o2,o1)]o2=nil [e2.ref=0, e1.ref=1(o1)]o1=nil [e1.ref=0]
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
=null
, oder implizit durch Entfernen des referenzierenden Objektes), dann wird der Zähler um eins erniedrigtNachteile
local o1 = { x=100,y=100 }local o2 = { prev=o1 }o1.next = o2
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Vorteile
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Bestimmte Objekte sind direkt zugänglich, und es muss herausgefunden werden welche Objekte erreichbar sind → Graphensuche
Es gibt einen Stammsatz von Speicherplätzen im Programm, dessen Objekte bekanntermaßen erreichbar sind.
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Mark-and-Sweep verläuft in zwei Phasen
Markierungsphase
Sweepphase
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Vorteile
Nachteile
Virtualisierung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Beispiel eines M&S Durchlaufes mit anschließender Freigabe von nicht mehr erreichbaren == benötigten Objekten
Multitasking PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Auf einem Rechnerknoten gibt es eine Vielzahl von Aufgaben die bearbeitet werden müssen:
Zum Teil müssten Aufgaben parallel verarbeitet werden → Multitasking → Parallelisierung → Nur bedingt möglich → Task Scheduling
Echtzeitverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
B Echtzeitspektrum: Wiche und harte Echtzeitanforderungen bei unterschiedlichen Applikationen
Echtzeitverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
B Periodische, sporadische, und aperiodische Tasks
Echtzeitverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Wenn schon nicht alles Tasks gleichzeitig verarbeitet werden können, dann wenigstens die wichtigsten vorrangig ausführen
Das erfordert aber:
Echtzeitverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
B Unterschied preemptive und nicht preemptive Ausführung von Tasks
Parallele Datenverarbeitung und Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Ebenen der parallelen Datenverarbeitung
Parallele Datenverarbeitung und Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Man unterscheidet folgende Prozessklassen:
Parallele Datenverarbeitung und Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Parallele Datenverarbeitung und Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Die Ausführung von Prozessen (Threads) kann parallel auf mehreren Datenverarbeitungseinheiten (Prozessoren) geschehen → Parallele Datenverarbeitung
Parallele Datenverarbeitung und Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
C Grobe Sicht des zeitlichen Ablaufs (Ein- und Multiprozessorsystem)
Parallele Datenverarbeitung und Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
C Darstellung paralleler Abläufe (Beispiele)
Parallele Datenverarbeitung und Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
C Varianten der Software-Parallelität mit Prozessen, Threads, und Fibers
Parallele Datenverarbeitung und Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Begrenzung der maximalen Beschleunigung eines parallelen Systems bei einem bestimmten sequenziellen Anteil (in %): Amdahlsches Gesetz (N: Anzahl der Prozesse und Prozessoren)
Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Ein Prozess kann sich in verschiedenen Ausführungszuständen (Makroebene) befinden:
Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
C Grundmodell mit drei Zuständen
Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Übergangsdiagramm von Prozesszuständen (Details)
Prozesse PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Ein rein sequenzielles Programm wird solange schrittweise ausgeführt bis die letzte Anweisung verarbeitet wurde
Prozessblockierung bedeutet das Anhalten eines Prozesses an einer bestimmten Stelle im Programmfluss mit späterer Ausführung an genau dieser unterbrochenen Stelle!
Parallele Datenverarbeitung und VMs PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Da Virtuelle Maschine i.A. ein automatisches Speichermanagement besitzen ist schwierig oder ineffizient eine VM mit einem gemeinsamen Heap und VM Zustand zwischen Threads zu teilen
Daher wird folgendes parallele Ausführungsmodell bei VMs gewählt:
Parallele Datenverarbeitung und VMs PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Das parallele Ausführungsmodell der LUAJIT UV VM (lvm)
Asynchrone Ereignisverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Neben der Parallelisierung der reinen Datenverarbeitung (Berechnung) kann auch eine Partitionierung von Ein- und Ausgabe bzw. der Ereignisverarbeitung erfolgen
Bekanntes Beispiel: Geräteinterrupts mit einfachen Foreground-Background System mit zwei Prozessen:
Ein- und Ausgabeoperationen eines Programms können synchron (blockierend) oder asynchron (im Hintergrund verarbeitet und nicht blockierend) ausgeführt werden.
Asynchrone Ereignisverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
x = IO1(arg1,arg2,..)y = IO2(arg1,arg2,..)z = f(x,y)
Asynchrone Ereignisverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
IO1(arg1,arg2,..,function (res) x=res end) IO2(arg1,arg2,..,function (res) y=res end)z = f(x,y) -- Problem?
Asynchrone Ereignisverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Ereignisbasierte Verarbeitung von asynchronen Operationen in node.js/jxcore: Ein JS Thread verbunden über die Eventloop mit N IO Threads
Asynchrone Ereignisverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Asynchrone Ereignisverarbeitung mit preemptiven Verhalten benötigt explizite Synchronisation (Locks...) zur Atomarisierung von kritischen Bereichen
Asynchrone Ereignisverarbeitung spaltet den Datenfluss auf und benötigt Daten- und Ergebnissynchronisation über Prädikatsfunktionen oder explizite Synchronisation:
local x,y,zfunction P(f,x,y,z)
if x = nil and y = nil then return f(x,y) else return z end endIO1(arg1,arg2,..,function (res) x=res; z=P(f,x,y,z) end) IO2(arg1,arg2,..,function (res) y=res; z=P(f,x,y,z) end)
Digitale Signalverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Digitale Signalverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Digitale Signalverarbeitung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
DSP Architektur
Zusammenfassung PD Stefan Bosse - MISS - Modul A: Eingebettete Systeme und Datenverarbeitung
Bei der Materialintegration von Berechnung (Materialinformatik) findet ein Übergang von Mikro- zu Nanorechnern mit starken Einschärnkung hinsichtlich Rechenleistung und Speicher statt
Bei der Bewertung von Rechnern sind jetzt auch Chipfläche und Energiebedarf zu berücksichtigen
Virtualisierung kann auf vielen Ebenen erfolgen und ist auch in einem Sensorknoten und Netzwerk wünschenswert
Aber eine Virtuelle Maschine erzeugt einen "Overhead": Erhöhter Rechenbedarf (gerade Speichermanagement) und Speicherbedarf
Ein- und Ausgabeoperationen können synchron (blockierend) oder asynchron (und parallel) ausgeführt werden. Letztere Methode bedarf besonderere Programmierung mit Prädikatfunktionen.