diff --git a/es/Klausurvorbereitung/Zusammenfassung.md b/es/Klausurvorbereitung/Zusammenfassung.md new file mode 100644 index 0000000..2a93352 --- /dev/null +++ b/es/Klausurvorbereitung/Zusammenfassung.md @@ -0,0 +1,224 @@ +# 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 processed 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 with endlichen Automaten +* ADA, CSP - kombinieren von-Neumann mit synchronem message passing + +Figure 2.7 page 34 + +# 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 + +## 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 +** reduced voltage means significantly less power consumption +** 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 +