Verlässliche Echtzeitsysteme - Cheatsheet
Modularität und Skalierbarkeit von Echtzeitsystemen
Definition:
Prinzips der Aufteilung eines Echtzeitsystems in austauschbare und erweiterbare Module zur verbesserten Anpassbarkeit und Leistungsfähigkeit.
Details:
- Vermeidung monolithischer Architekturen
- Ermöglicht einfachere Wartung und Erweiterung
- Skalierbarkeit durch parallele Verarbeitung und Lastverteilung
- Verwendung von definierten Schnittstellen zur Interaktion der Module
- \texttt{Speedup} und \texttt{Scalabilitätsfaktor} als Bewertungskriterien
- Erfordert gründliche Analyse der Abhängigkeiten zwischen Modulen
- Bespiele: RTOS mit modularen Treibern und Services
- Sicherstellung der Echtzeitfähigkeit bei wachsender Komplexität
Deterministische Kommunikationsprotokolle
Definition:
Kommunikationsprotokolle mit vorhersehbarem Verhalten und garantierten Kommunikationszeiten
Details:
- Vorhersagbare Latenz und Durchsatz
- Keine Kollisionen im Netzwerkverkehr
- Beispiele: TDMA, TTP, FlexRay
- Verwendet in sicherheitskritischen und zeitkritischen Anwendungen
- Formel zur Berechnung der Zykluszeit: \[ Z = \frac{T}{N} \], wobei T die Gesamtzeit und N die Anzahl der Zeitschlitze ist
Fehlertoleranz- und Erholungsmethoden
Definition:
Techniken zur Sicherstellung der Systemzuverlässigkeit trotz Fehler, sowie zur Wiederherstellung des normalen Betriebs nach einem Fehler.
Details:
- Fehlertoleranz: Fähigkeit, nach Auftreten eines Fehlers weiterzuarbeiten
- Redundanz: Mehrere Systeme/Komponenten als Backup
- Diversität: Unterschiedliche Ansätze/Algorithmen zur Fehlervermeidung
- Checkpointing: Regelmäßige Zustandsaufzeichnungen
- Rollback Recovery: Systemzustand auf letzten fehlerfreien Checkpoint zurücksetzen
- Replikation: Systeme/Prozesse mehrfach ausführen
- Mehrheitsentscheid: Ergebnisse mehrerer Replikate vergleichen (z.B. bei Voting-Systemen)
Multitasking und Scheduling-Algorithmen
Definition:
Verwaltung mehrerer Aufgaben durch ein Betriebssystem, um Prozessorzeit effizient zu nutzen.
Details:
- Multitasking: Gleichzeitige Ausführung mehrerer Aufgaben durch schnelle Umschaltung.
- Scheduling-Algorithmen: Bestimmen, welche Aufgabe wann ausgeführt wird.
- Wichtige Algorithmen:
- First-Come, First-Served (FCFS): Einfach, Aufgaben in Ankunftsreihenfolge.
- Shortest Job Next (SJN): Minimiert Wartezeit, kürzeste Aufgabe zuerst.
- Round Robin (RR): Zeitfenster, gleichmäßige Verteilung.
- Priority Scheduling: Aufgaben nach Prioritäten, höhere Priorität zuerst.
- Earliest Deadline First (EDF): Dynamisch, nächste Deadline zuerst.
- Zentrale Konzepte: Kontextwechsel, Durchsatz, Latenz, Fairness.
Echtzeit-Ethernet und Time-Sensitive Networking (TSN)
Definition:
Ermöglicht deterministische Kommunikation über Ethernet, wichtig für industrielle Automatisierung und verlässliche Echtzeitsysteme.
Details:
- TSN ist eine Sammlung von Standards für Echtzeitkommunikation im Ethernet.
- Wesentliche Eigenschaften: Latenz, Zuverlässigkeit, Jitter-Kontrolle.
- IEEE 802.1 Task Group entwickelt TSN-Standards.
- Wichtige Konzepte: Zeitsynchronisation (\texttt{IEEE 802.1AS}), Traffic Shaping (\texttt{IEEE 802.1Qav, Qbv}), Frame Preemption (\texttt{IEEE 802.1Qbu}).
- Verwendung in Bereichen wie Automotive, Industrie 4.0, Telekommunikation.
- Ermöglicht gleichzeitige Übertragung von Echtzeitdaten und herkömmlichem Datenverkehr.
- Erfordert spezielle Hardware und Software für Implementierung.
Unterbrechungs- und Ereignismanagement
Definition:
Management von Unterbrechungen und Ereignissen in Echtzeitsystemen zur Gewährleistung zeitgerechter Reaktionen.
Details:
- Interrupt (Unterbrechung): Signal, das die normale Ausführung eines Programms unterbricht.
- ISR (Interrupt Service Routine): Spezieller Code zur Verarbeitung von Unterbrechungen.
- Maskierbare und nicht-maskierbare Interrupts (NMI)
- Echtzeituhr (RTC): Erzeugt periodische Interrupts für zeitliche Steuerungen.
- Ereignis: Zustand oder Änderung in der Umgebung, der eine Reaktion erfordert.
- Ereignissteuerung: Mechanismus, um auf Ereignisse zeitgerecht zu reagieren.
- Prioritäten: Interrupts können unterschiedlich priorisiert sein.
Verifikation und Validierung
Definition:
Verifikation: Überprüfung, ob ein System den spezifizierten Anforderungen entspricht. Validierung: Überprüfung, ob ein System den tatsächlichen Benutzeranforderungen entspricht. In Echtzeitsystemen besonders kritisch.
Details:
- Verifikation: Statische Methode (u.a. Inspektionen, Reviews, formale Verifikation)
- Validierung: Dynamische Methode (u.a. Tests, Simulationen, Prototypen)
- Ziel: Fehler früh im Entwicklungsprozess erkennen und beheben
- Wichtig für die Zuverlässigkeit und Sicherheit in Echtzeitsystemen
- Beispiele: Model Checking, Zustandsautomaten, Theorembeweise
Energieeffizienz und Performance-Optimierung
Definition:
Optimierung des Energieverbrauchs und der Performance von Echtzeitsystemen, um Ressourcen effizient zu nutzen und festgelegte Echtzeitanforderungen zu erfüllen.
Details:
- Trade-off zwischen Energieverbrauch und Systemleistung
- Techniken wie DVFS (Dynamic Voltage and Frequency Scaling) und DPM (Dynamic Power Management) zur Energiesteuerung
- Analyse und Erstellung von Energiemodellen zur Vorhersage und Optimierung des Energieverbrauchs
- Anwendung von Scheduling-Algorithmen zur Balance zwischen Energieeffizienz und Echtzeitanforderungen
- Messung von Energieverbrauch und Performance über Monitoring-Tools
- Verwendung von Energiesparmodi und -strategien für Hardwarekomponenten