1
0
mirror of https://github.com/2martens/uni.git synced 2026-05-07 03:46:25 +02:00
Files
uni/es/Klausurvorbereitung/Zusammenfassung.md
Jim Martens 0d982526e8 [ES] Fixed syntax
Signed-off-by: Jim Martens <github@2martens.de>
2015-07-19 16:28:47 +02:00

14 KiB

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

  • Validierung überprüft, ob ein Design alle Restriktionen erfüllt, wie erwartet funktionieren wird und für den Zweck angemessen ist
  • Validierung mit mathematischer Genauigkeit wird formale Validierung genannt
  • sehr wichtig während Designprozess
  • Evaluation ist Prozess des Berechnens von quantitativen Informationen von einigen Kern-Charakteristika eines bestimmten Designs

Kopetz' Designprinzipien:

  • Safety muss möglicherweise als der zentrale Aspekt gesehen werden, von dem alles abhängt
  • präzise Spezifikationen von Designhypothesen müssen gleich zu Beginn gemacht werden (inklusive erwarteten Fehlern und deren Wahrscheinlichkeit)
  • "Fault containment regions" müssen erwogen werden
    • Fehler in einer solchen Region beeinflussen keine andere solche Region
  • konsistente Vorstellung von Zeit und Zustand muss etabliert werden
  • wohldefinierte Schnittstellen müssen die Interna von Komponenten verstecken
  • Komponenten müssen unabhängig voneinander versagen (kein Einfluss auf andere Komponenten)
  • Komponenten müssen sich selbst als korrekt annehmen bis mindestens zwei andere Komponenten das Gegenteil annehmen
  • Fehlertoleranz darf es nicht schwerer machen das Verhalten des Systems zu erklären; Fehlertoleranz Mechanismen sollten von der regulären Funktionalität entkoppelt sein
  • das System muss für Diagnose designed werden
  • man-machine interface muss intuitiv und vergebend sein; safety sollte trotz Fehler des Menschens weiter gewährleistet sein
  • jede Anomalie sollte aufgezeichnet werden; Aufzeichnung sollte auch interne Effekte beinhalten
  • provide never-give up strategy

Application mapping

Classification of scheduling algorithms

  • soft and hard deadlines
  • periodic vs. aperiodic tasks
  • preemptive vs. non-preemptive scheduling
  • static vs. dynamic scheduling
  • independent vs. dependent tasks
  • mono- vs. multi-processor scheduling
  • centralized vs. distributed scheduling

Scheduling algorithms

Aperiodic scheduling without precedence constraints

  • Earliest Due Date (identical arrival times)
  • Earliest Deadline First (different arrival times with preemption)
  • Least Laxity (deadline interval - execution time)

Aperiodic Scheduling with precedence constraints

  • LatestDeadlineFirst
  • ASAP
  • ALAP (as late as possible)
  • list scheduling
  • force-directed scheduling
    • goal: balanced utilization of resources
    • based on spring model
    • originally proposed for high-level synthesis

Periodic scheduling without precedence constraints

  • rate monotonic scheduling
  • Earliest deadline first