Modelling Flashcards
Was ist bei der Konstruktion eines Models wichtig?
- Fokus auf wesentliche Eigenschaften
- Gute Spezifikation von Elementen und Beziehungen derer
- Verständlichkeit von Struktur und Funktionen
- Formale Notation
- Explizite Angabe von Modelannahmen
Was ist Assumption Coverage?
- Assumption Coverage ist die Wahrscheinlichkeit, dass die Annahmen das reale Szenario abdecken
- Limitiert die Zuverlässigkeit eines perfekten Entwurfs und den Nutzen der formalen Überprüfung
Was sind die beiden wichtigen Annahmen, die in der requirements specification enthalten sein müssen?
- Load Hypothesis: Spezifikation des peak load, den das System handlen muss
- Faul Hypothesis: Spezifikation der Anzahl und Arten von Fehlern, die ein fehlertolerantes System tolerieren muss
In welche Bereiche lässt sich die Fault Hypothesis unterteilen?
- Fehler, die toleriert werden müssen
- Fehler, die nicht unter die Fehlertoleranzmechanismen fallen
Welche Strategie wird außerhalb der Fault Hypothesis verwendet?
Never-give-up (NGU) Strategie
Was sind die essentiellsten Elemente eines Echtzeitsystem Models?
- Representation of Real-Time
- Semantic Properties of Data Transformations
- Durations of the executions
Was sind unwichtigere Details eines Echtzeitsystem Models?
- Repräsentation der Informationen innerhalb des Systems (Nur wichtig in Interfaces)
- Detaillierte Merkmale von Datentransformationen
- Zeitliche Granularität, die feiner ist als die Anforderungen der Anwendung
Woraus setzt sich ein Echtzeitsystem zusammen?
- Computer System
- Controlled Object
- Operator
Beschreiben Sie den hierarchischen Aufbau eines Echtzeitcomputersystems.
Ein Prozess ist ein Teil eines Nodes, dieser Node wiederum ist Teil eines Clusters und dieses Cluster ist Teil eines Echtzeitcomputersystems
Was ist ein Cluster?
- Ein Cluster ist ein Subsystem eines Echtzeitsystems mit hoher interner Vernetzung
- Ein Set aus Nodes
Was ist ein Prozess?
- Der Prozess ist eine Ausführung eines Programms
- Er beginnt mit dem Lesen von Eingabedaten
- Endet mit der Produktion von Ausgabedaten
Welche zwei Prozesstypen unterscheidet man?
- Simple (S) Prozess
- Complex (C) Prozess
Was sind die Eigenschaften eines Simple (S) Prozess?
- Keine Synchronisationspunkte
- Kann einen internal state haben
- Statelose S-Prozesse nennt man functional
- Sind gut für die Komplexität
Was sind die Eigenschaften eines Complex (C) Prozess?
- Mindestens einen internal Synchronisationspunkt (Beispiel: wait on condition (P) statement)
- Abhängig von anderen Prozessen, daher ist zeitliches Verhalten schwieriger einzuschätzen als bei S-Prozessen
Was ist ein Node?
Ein Node ist eine Hardware-Software Einheit, die aus mehreren Elementen besteht
Aus welchen Bestandteilen setzt sich ein Node zusammen?
- Hardware
- Operating System (Software)
- I-State (initialization state)
- H-State (history state)
- G-State (ground state)
Was ist der History State (H-State)?
H-State umfasst alle Informationen, die erforderlich sind, um einen “leeren” Node (oder Prozess) zu einem bestimmten Zeitpunkt zu starten
Was ist der Ground State (G-State)?
- Minimaler H-State eines Subsystems (Node), wo alle Prozesse inaktiv und alle Channel geleert sind
- Wird für die Reintegration von Nodes benötigt
Wodurch wird ein Interface zwischen zwei Subsystemen (Cluster, Node, etc.) charakterisiert?
- Data properties: Struktur und Semantik der Datenelemente, die die Schnittstelle passieren
- Temporal properties: Zeitliche Bedingungen, die von der Schnittstelle erfüllt werden müssen
- Functional intent: Annahmen über die Funktionen des Schnittstellenpartners
Wie funktioniert Shared Memory?
- Weit verbreitet in Mehrprozessor-Architekturen
- Parallele Verarbeitung auf der Grundlage mehrerer Steuerungsthreads, die gleichzeitig ausgeführt werden und auf gemeinsamen Daten arbeiten
- Synchronisationsmechanismen wie Semaphoren
Was ist der Vorteil von message passing mit verteilten Speichersystemen gegenüber shared memory?
Bietet bessere Skalierbarkeit
Was ist unidirectional message passing?
- Grundlegender Interaktionsmechanismus zwischen Nodes in einem distributed real-time system
- Multicasting wird unterstützt
- Nachrichten werden für Datenaustausch und Synchronisation genutzt
- Shared memory kann aus höherer Ebene realisiert werden, zusätzlich zu einem grundlegenden message passing Service
- Message passing erleichtert die Kapselung und Wiederherstellung
Welche Interfaces hat ein Node (Messages)?
- Diagnostic and management Interface
- Linking Interface (LIF)
- Configuration Planning Interface
- Local Interfaces
Welches ist das wichtigste Interface in Embedded Systems?
- Das Linking Interface ist das wichtigste Interface in Embedded Systems
- Es ist als einziges Interface für die zeitliche Zusammensetzbarkeit relevant
- LIF Spezifikation versteckt die Implementierung
Was muss ein LIF (Bsp. control algorithm) spezifizieren?
- Temporal pre-conditions: Zu welchem Zeitpunkt müssen Eingabeinformationen an ein Modul übergeben werden
- Temporal post-condictions: Zu welchem Zeitpunkt müssen Ausgabeinformationen durch das Modul generiert werden
- Proper model: Eingenschaften der beabsichtigten Informationstransformation, die durch das Modul bereitgestellt werden
Wann verhält sich ein Node, wie ein information transducer (Informationsvermittler)?
Wenn ein Node ein nachrichtenbasiertes Linking Interface und ein Local Interface hat
Was verwendet man, um nicht übereinstimmende Eigenschaften an Interfaces aufzulösen?
Ein Interface System (IS)
Welche zwei Interfaces kann man bei einem unidirektionalen Datenfluss zwischen zwei Teilsystemen unterscheiden?
- Elementary Interface: Control und Daten fließen in die gleiche und auch nur in eine Richtung
- Composite Interface: Control fließt in beide Richtungen, Daten nur in eine
- Elementary Interfaces sind generell einfacher als Composite Interfaces
Was ist ein Information Push Interface?
- Informationsproduzent gibt Informationen an den Informationskonsumenten weiter
- Beispiele: Telefon, Interrupt
- In Echtzeitsystemen besser für den Erzeuger
Was ist ein Information Pull Interface?
- Verbraucher von Informationen fordert bei Bedarf Informationen an
- In Echtzeitsystemen besser für den Empfänger
Was ist eine Real Time Entity?
Eine Real Time Entity ist eine Zustandsvariable von Interesse für den gegebenen Zweck, die ihren Zustand in Abhängigkeit von der Echtzeit ändert
Welche Real Time Entities unterscheidet man?
- Continuous RT Entities
- Discrete RT Entities
Welche Beispiel für Real Time Entities kennen Sie?
- Durchfluss in einer Rohrleitung (continuous)
- Position eines Schalters (discrete)
- Von einem Operator gewählter Sollwert
- Beabsichtigte Position eines Actuators
Was sind Merkmale einer RT-Entity?
- Static Attributes: Name, Type, Value Domain, Maximum Rate of Change
- Dynamic Attributes: Wert, der zu einem bestimmten Zeitpunkt gesetzt wird
Was ist eine Sphere of Control (SOC)?
- Kontrollbereich
- Jede RT-Entity befindet sich in einer SOC eines Subsystems, welches die Berechtigung hat die Werte der Entity zu setzen
- Außerhalb der SOC kann eine RT-Entity nur beobachtet, aber nicht verändert werden
- Auf dieser Abstraktionsebene sind Änderungen in der Darstellung einer RT-Entity nicht von Bedeutung
Wozu dient eine Observation?
- Informationen über den Zustand einer RT-Entity zu einem bestimmten Zeitpunkt werden in einer Observation festgehalten
- Atomic Triple: Name, Time, Value
- Werden in Messages transportiert
Was bezeichnet man als State Observation?
- Observation value enthält den vollen oder teilweisen state der RT-Entity
- Zeitpunkt einer state observation bezeichnet den Zeitpunkt, zu dem die RT-Entity abgetastet wird
Was bezeichnet man als Event Observation?
- Observation value enthält die Differenz zwischen dem “alten state” und dem “neuen state”
- Zeitpunkt einer event observation bezeichnet den Zeitpunkt, des L-Events des “neuen states”
Was sind RT-Images?
- Ist ein Bild einer RT-Entity
- Gültig zu einem bestimmten Zeitpunkt, wenn es eine genaue Darstellung in den Bereichen value und time der entsprechenden RT-Entity ist
- Kann auf einer observation oder einem state estimation basieren
- Können in data objects gespeichert werden
Was ist ein RT-Object?
- Ist ein Container für ein RT-Image oder eine RT-Entity in einem Computer System
- Hat eine zugehörige Echtzeituhr, deren Granularität mit der Dynamik der RT-Einheit übereinstimmen
- Aktiviert eine Objektprozedur, wenn die Zeit einen voreingestellten Wert erreicht
Was ist ein synchrones RT-Object?
Wenn es keine andere Möglichkeit gibt, eine Objektprozedur zu aktivieren als durch das periodische Ticken der Uhr
Was sind distributed RT-Objects?
- Eine Gruppe von replizierten RT-Objects, die sich an verschiedenen Standorten befinden
- Jede lokale Instanz eines verteilten RT-Objects bietet einen bestimmten Dienst für seinen lokalen Standort
Was sind Beispiele für distributed RT-Objects?
- Clock Synchronisierung mit einer bestimmten Genauigkeit
- Membership Service mit einem bestimmten Delay
Was muss man beachten, wenn ein RT-Objekt durch Beobachtungen geupdatet wird?
Wenn ein RT-Objekt durch Beobachtungen geupdatet wird, dann gibt es immer einen Delay zwischen dem Status der RT-Entity und dem des RT-Objektes
Wann nennt man ein data element parametric oder phase insensitive?
d_update + WCET_send + WCCOM + WCET_rec < d_acc
Was ist d_update?
Updateintervall des data elements
Wann nennt man ein data element phase sensitive?
WCET_send + WCCOM + WCET_rec < d_acc ≤ d_update + WCET_send + WCCOM + WCET_rec
Wie kann man eine gute Genauigkeit eines RT-Objektes erreichen?
Häufiges Sampling der RT-Entity oder State Estimation
Was ist State Estimation?
- Innerhalb eines RT-Objektes wird regelmäßig eine Schätzung des aktuellen Zustandes des RT-Objektes berechnet
- Häufig besteht die Möglichkeit, einen Kompromiss zwischen Rechen- und Kommunikationsressourcen zu finden
Was sind die Timing Requirements für die State Estimation?
Ein State Estimation Programm benötigt den Zeitpunkt der Beobachtung einer RT-Entity und den geplanten Zeitpunkt der Betätigung, um den Delay ausgleichen zu können
Wovon hängt die Qualität der State Estimation ab?
- Genauigkeit der Clock Synchronization
- Größe der Latenz und Qualität der Latenz-Messung
- Qualität des State Estimation Model
Wozu kann die Latency Guarantee verwendet werden und wie wird sie erreicht?
- Zusammensetzbarkeit einer verteilten time-triggered Architektur kann verbessert werden, wenn der Absender die Latenzzeit zwischen dem Punkt der Abtastung und dem Punkt der Übertragung garantiert
- Empfänger kann diese bekannte Latenzzeit in seinem State Estimation Model korrigieren
- Alternativ kann der Sender “zeitgesteuerte” Nachrichten senden, die das Intervall zwischen Beobachtung und Übertragung enthalten
Was ist Permanence (Beständigkeit)?
- Permanence ist eine Beziehung zwischen einer gegebenen Nachricht, die bei einem RT-Objekt angekommen ist, und allen Nachrichten, die in zeitlicher Reihenfolge vor dieser Nachricht an das Objekt gesendet werden
- Die Nachricht wird permanent, sobald alle zuvor gesendeten Nachrichten bei dem Objekt angekommen sind
- Inkonsistentes Verhalten, wenn Aktionen auf nicht permanente Nachrichten durchgeführt werden
Wie kann man das maximale action delay in verteilten Echtzeitsystemen ohne globale Zeit berechnen?
d_max + Jitter = 2*d_max - d_min
Wie lautet die Formel für den Jitter in verteilten Echtzeitsystemen ohne globale Zeit?
Jitter = d_max - d_min
Wie kann man das maximale action delay in verteilten Echtzeitsystemen mit globaler Zeit berechnen?
d_max + 2g
Wodurch wird die Reaktionsfähigkeit in distributed RT Systemen bestimmt?
In verteilten Echtzeitsystemen bestimmt die maximale Protokollausführungszeit und nicht die mittlere Protokollausführungszeit die Reaktionsfähigkeit
Was sind Unterschiede zwischen Accuracy und Action Delay?
- Action Delay < d_acc
- Accuracy ist ein anwendungsspezifischer Parameter
- Action Delay ist ein implementierungsspezifischer Parameter
- Wenn die Bedingung nicht erfüllt ist, wird State Estimation gebraucht
Was ist Idempotence?
- Idempotence ist eine Beziehung zwischen einem Set aus Messages
- Ein Set aus Messages ist idempotent, wenn die Wirkung des Empfangs mehrerer Nachrichten dieser Message die gleiche Wirkung haben, wie die Wirkung des Empfangs einer einzigen Nachricht
Was ist Replica Determinism?
- Replica Determinism ist eine gewünschte Beziehung zwischen replizierten RT-Objekten
- Eine Menge replizierter RT-Objekte ist replica determinate, wenn alle Objekte dieser Menge denselben Zustand innerhalb eines bestimmten Intervalls der Echtzeit einnehmen
Wofür wird Replica Determinism verwendet?
- Konsistente verteilte Aktionen
- Die Implementierung von Fault Tolerance bei aktiver Redundanz
Warum brauchen wir Replica Determinism?
- Verbesserung der Testbarkeit von Systemen -> Tests nur reproduzierbar, wenn die Replikate deterministisch sind
- Erleichterung der Implementierung von Fault Tolerance durch aktive Replikation
- Replica Determinism hilft Systeme verständlicher zu machen
Wodurch kann Replica Determinism zerstört werden?
- Inconsistent inputs
- Inconsistent order
- Non-deterministic program constructs
- Explicit synchronization statements (Bsp. wait)
- Uncontrolled access to global time and timeouts
- Dynamic preemptive scheduling decisions
- Consistenz comparison problem (Software diversity)
Wann tritt ein consistent Comparison Problem auf?
Tritt immer dann auf, wenn eine reelle Größe in eine diskrete Darstellung umgewandelt wird und diese Darstellung als Eingabe für eine binäre Entscheidung dient
Nennen sie Beispiele für das Consistent Comparison Problem.
- Zeit
- Sensor input
- Verschiedene Softwareversionen, die auf reellen Zahlen in verschiedener Reihenfolge betrieben werden (unterschiedliche Trunkierung!)