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 16:27:27 +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