1
0
mirror of https://github.com/2martens/uni.git synced 2026-05-06 11:26:25 +02:00
Files
uni/es/Klausurvorbereitung/Zusammenfassung.md
2015-07-19 15:13:59 +02:00

403 lines
12 KiB
Markdown

# Einführung
## Anwendungsgebiete
* ES werden in unterschiedlichen Bereichen verwendet:
** Autos
** Flugzeuge
** Züge
** Mobiltelefone
** Gesundheitssektor
** Sicherheit
** TVs
** Fabriken
** Intelligente Gebäude
** Logistik (RFID) - Tracking von Objekten
** Robotik
## Wichtige Eigenschaften
* dependable
** Reliability - Probability that system will not fail
** Maintainability - Probability that failing system can be repaired within certain timeframe
** Availability - Probability that system is available
** Safety - System will not cause any harm
** Security - confidential data remains confidential and authentic communication is guaranteed
* efficient
** Energie
** Laufzeiteffizienz
** Codegröße
** Gewicht/Masse der Hardware
** Kosten
ES müssen oftmals Echtzeitbedingungen umsetzen.
Zwei Arten:
* harte Bedingungen - Nicht-Einhalten führt zu Katastrophe
* weiche Bedingungen - alle anderen Zeitbedingungen
weitere Eigenschaften
* reaktiv
* hybrid - analoge und digitale Bestandteile
* DUI - dedicated user interface
## Herausforderungen im Design von ES
* Software muss auf Hardware abgestimmt werden
* ¬funktionale Bedingungen müssen eingehalten werden
** Echtzeitbedingungen
** Energieeffizienz
** Dependability - Verlässlichkeit
* Zeitmanagement ist eine der größten Herausforderungen
* Concurrency (Nebenläufigkeit) ist essentiell
* Kombinieren von Komponenten ist wichtig für Design
* traditionelle sequentielle Prog.Sprachen sind nicht ideal
## Designflow
* rounded boxes - stored info
* rectangles - transformations on data
* application knowledge
-> specification
-> HW components
-> system software
=> design repository -> design -> [test]
| |
[application mapping]
* [optimization]
* [evaluation & validation]
* [test]
* Figure 1.6 page 13
# Spezifikationen und Modellierung
## Bedingungen
* Model: Simplification of another entity, which can be a
physical thing or another model. The model contains exactly those
characteristics and properties of the modeled entity that are
relevant for a given task. A model is minimal with respect to a
task if it does not contain any other characteristics than those
relevant for the task.
Modelle werden in Sprachen beschrieben. Sprachen sollten
folgende Eigenschaften aufweisen (Wunschliste):
* Hierarchie
** Verhaltshierarchien - enthalten für Beschreibung des Systemverhaltens notwendige Objekte, z.B. Zustände, Events
** Strukturhierarchien - beschreiben physische Komponenten des Systems
* Komponenten-basiertes Design - Verhalten des Systems muss von Verhalten der Komponenten ableitbar sein
* Nebenläufigkeit
* Synchronisation und Kommunikation
* Zeitverhalten (timing behavior)
** elapsed time (vergangene Zeit) seit X
** Verzögern von Prozessen für spezifizierte Zeit
** being able to specify timeouts
** Fähigkeit Deadlines und Schedules zu spezifizieren
* Zustandorientiertes Verhalten
* Eventhandling
* Ausnahmeorientiertes Verhalten
* Vorhandensein von Programmierelementen
* Ausführbarkeit
* Support für Design großer Systeme
* Support für Anwendungsdomain
* Lesbarkeit
* Portabilität und Flexibilität
* Termination - feasible to identify processes which will terminate from the specification
* Support für ¬Standard I/O-Devices
* ¬funktionale Eigenschaften
* Support für Design von verlässlichen (dependable) Systemen
* keine Hindernisse für Generierung effizienter Implementierungen
* angemessenes MoC (Model of Computation)
## Models of computation (Berechnungsmodelle)
* MoCs definieren:
** Komponenten
** Kommunikationsprotokolle
Beziehungen zwischen diesen Punkten können in Graphen
festgehalten werden.
Models of Communication:
* shared memory
* message passing
** async message passing - non-blocking communication
** sync message passing - blocking communication, rendez-vous based communication
** extended rendez-vous, remote invocation
Organisation von Berechnungen innerhalb der Komponenten
* Von-Neumann Modell
* discrete event model
* endliche Automaten
* Differentialgleichungen
Kombinierte Modelle: Tatsächliche Sprachen kombinieren normalerweise ein Kommunikationsmodell mit einer Organisation von Berechnungen innerhalb der Komponenten.
Beispiele:
* StateChart - kombiniert endliche Automaten mit shared memory
* SDL - kombiniert asynchrones message passing mit endlichen Automaten
* ADA, CSP - kombinieren von-Neumann mit synchronem message passing
Figure 2.7 page 34
## Diskrete Event-basierte Sprachen
### VHDL
* kann in die 1980er Jahre zurückverfolgt werden
* im VHSIC Programm entwickelt (vom DoD)
* VHSIC hardware description language
* IEEE standard
Elemente:
* Entitäten
* Architekturen
definieren von Verhalten und Struktur
### SystemC
* erlaubt Spezifikation von Hardwarestrukturen in Software
# Hardware
## Input
Sensoren:
* Beschleunigungssensoren
* Regensensoren
* Bildsensoren (charge-coupled devices und CMOS)
* biometrische Sensoren
* künstliche Augen
* RFID
* andere Sensoren
Sensoren erzeugen Signale.
Diskretisierung von Zeit: Sample-and-hold circuits
* messen eines Wertes aus dem kontinuierlichen Zeitspektrum
* gemessener Wert wird für bestimmte Zeitdauer weitergeleitet
* danach zurück zur Messung des Wertes
* Output gleicht damit diskreten Werten (gleicher Wert für bestimmte Zeitdauer)
Diskretisierung von Werten: A/D Konverter
* Flash A/D converter
** large number of comparators
** each comparator has two inputs (+ and -)
** if voltage at + larger than at - -> logical 1, otherwise logical 0
** first comparator returns 1, if h(t) exceeds 3/4 Vref
** second returns 1, for h(t) > 2/4 Vref
** third returns 1, for h(t) > 1/4 Vref
** encoder tries to identify most significant '1'
* successive appriximation
## Processing Units
* Energie"verbrauch" ist wichtigste Beschränkung in ES
### ASICs (Application-specific circuits)
* hohe Kosten
* sehr gute Performance für sehr kleinen Anwendungsbereich
* keine Flexibilität
### Prozessoren
* Flexibilität
* Energieeffizienz ist wichtig - Compiler müssen so effizient sein wie möglich
* müssen nicht kompatibel mit PC-Prozessoren sein
* Dynamic power management
** power saving states (idle and sleep)
** changes between states
* Dynamic voltage scaling
** decreasing supply voltage reduces power quadratically
** only linear increase of runtime of algorithms
* Code-size efficiency
** CISC machines (Complex Instruction Set Processors)
** Kompressionstechniken
* Laufzeiteffizienz
### Reconfigurable Logic
application areas:
* fast prototyping
* low volume applications
* realtime systems
### Memories
* großer Geschwindigkeitsunterschied zw. Prozessoren und Memories
* kleinere Memories wichtig, da sie schnellere Zugriffszeiten bieten
* mehrere kleine Speicher für häufig genutzte Instruktionen und Daten plus ein größerer Speicher für restliche Daten und Instruktionen bieten i.A. höhere Energieeffizienz
* Scratch Pad memories (SPMs) als Alternative zu Caches
## Communication
* Informationen können durch Kanäle transportiert werden
* physische Entitäten, die Kommunikation ermöglichen heißen Kommunikationsmedien
* wichtige solche Medien:
** drahtlose Medien (Infrarot, RFID)
** optische Medien (Glasfaser)
** Kabel
### Requirements
* Echtzeitverhalten
* Effizienz
* angemessende Bandbreite und Kommunikationsverzögerung
* Support für eventbasierte Kommunikation
* Robustheit
* Fehlertoleranz
* Wartbarkeit, Diagnosefähigkeit
* Datenschutz
### Elektrische Robustheit
* single-ended signaling
** single ground wire
** affected by external noise
** difficult to establish high-quality ground signals
* differential signaling
** two wires for data transport
** noise can be effectively removed
** logic value only depends on polarity of voltage between two wires, magnitude can be affected without effect
** quality of ground wire unimportant
** no common ground wire required
** larger throughput than single-ended signaling
** used in standard Ethernet-based networks
### Echtzeitverhalten garantieren
* Nutzung von time division multiple access (TDMA)
* jeder Kommunikationspartner bekommt festen Zeitslot
* innerhalb dieses Slots darf gesendet werden
* Zeit wird in Frames unterteilt
* jedes Frame startet mit Synchronisierung und einem Gap, um dem Sender das ausschalten zu ermöglichen
carrier-sense multiple access/collision detect (CSMA/CD)
* wenn mehrere Partner zur gleichen Zeit kommunizieren, wird für jeden eine zufällige Wartezeit bestimmt
* sehr unwahrscheinlich, dass sich Szenario nach Wartezeit wiederholt
* kann nicht für ES benutzt werden, da Laufzeit nicht bestimmt werden kann
carrier-sense multiple access/collision avoidance (CSMA/CA)
* jeder Partner bekommt Priorität zugewiesen
* dies geschieht in Verhandlungsphasen
* wenn Partner einen Partner mit höherer Priorität erkennt, muss Ersterer seine NUtzungsabsicht sofort zurückziehen
* daher vorhersehbare Laufzeit für Partner mit höchster Priorität
* für andere auch, wenn Partner mit höchster Prio nicht dauerhaft Zugang verlangt
* Ethernet mit über 1GBit vermeidet ebenfalls Kollisionen
### Beispiele
* Sensor/actuator buses
* field buses
** Controler Area Network
** Time-Triggered-Protocol (TTP)
** FlexRay
** LIN
** MAP
** EIB
* Kabelgebundene Multimedia-Kommunikation
* drahtlose Kommunikation
## Output
* Displays
* Elektromechanische Geräte
* analog input zu analog output:
AA -> Sample & hold -> A/D conv. -> Verarbeitung -> D/A conv. -> filter
### D/A Konverter
* wandeln digital in analog um
* benutzen Kirchhoffs Regeln
### Sampling theorem
* mithilfe der Shannon-Wittaker interpolation kann das ursprüngliche analoge Signal approximiert werden
* ebenso wird die Fourier Transformation benutzt
* ansonsten sehr viel Mathe
# System Software
## Embedded Operating Systems
### Allgemeine Bedingungen
* muss flexibel für Anwendungsbereich angepasst werden können
* Konfigurabilität (configurability)
** OO
** Aspect-oriented Programming
** konditioniertes Kompilieren
** fortgeschrittene Kompilierzeit Evaluation
** Linker-basiertes Entfernen von nicht genutzten Funktionen
* Treiber sind vom OS getrennt
* keine Schutzmechanismen (wie privilegierter Zugang) notwendig, da ungetestete Software nicht geladen wird
* interrupts können mit jedem Prozess verbunden werden
* viele ES sind Echtzeitsysteme und daher muss deren OS ein RTOS sein
### Echtzeit OS
* Zeitverhalten des OS muss vorhersagbar sein
* OS muss das Scheduling der Tasks managen
* einige Systeme erfordern Zeitmanagement durch das OS
* OS muss schnell sein
vorhandene RTOS können in drei Kategorien eingeteilt werden:
* schnelle proprietäre Kernel
* Echtzeiterweiterungen zu Standard-OS
* Forschungssysteme
Kernunterschied zu Standard OS:
* es wird für den Worst Case optimiert
### Resources access protocols
#### Priority Inversion
* Prozess mit geringerer Priorität blockt Prozess mit höherer Priorität
#### Priority Inheritance
* T1 hat Prio 1
* T2 hat Prio 2
* T3 hat Prio 3
* T2 verlangt Zugang zu S
* T1 verlangt Zugang zu S - wird blockiert
* T2 erbt Prio von T1
## Hardware abstraction layers
* accessing hardware through hardware-independent API
## Middleware
* add communication functionality on top of OS
### OSEK
* für Autobranche benutzt
### Corba (Common Object Request Broker Architecture)
* standardisierter Zugriff auf Remote-Objekte
* standardmäßig nicht für RTOS geeignet
* separater Standard RT-CORBA für RTOS definiert
### MPI (Message passing interface)
* Alternative zu CORBA
* Kommunikation zwischen Prozessoren
### POSIX Threads (Pthreads)
* API für Threads auf der OS-Ebene
### OpenMP
* explizite Parallelität
* implizite Kommunikation, Synchronisation, etc.
### UPnP, DPWS, JXTA
* Universal Plug-and-Play
** Erweiterung von PnP für Netzwerke
* Devices Profile for Web Services (DPWS) allgemeiner als UPnP
* JXTA ist eine OpenSource Peer-to-Peer Protokollspezifikation
# Evaluation und Validierung