Echtzeitsysteme - Cheatsheet
Definition von Echtzeitbetriebssystemen
Definition:
Echtzeitbetriebssystem (RTOS): Betriebssystem, das zeitlich deterministisches Verhalten für Echtzeitanwendungen garantiert.
Details:
- Aufgabenpriorisierung: RTOS verwaltet mehrere Tasks und ordnet Prioritäten zu, um Echtzeitanforderungen zu erfüllen.
- Task-Scheduling: Anwenden von Scheduling-Algorithmen (z.B. RM, EDF), um rechtzeitige Ausführung sicherzustellen.
- Interrupt-Handling: Effiziente Verarbeitung von Hardware-Interrupts um Latenz zu minimieren.
- Determinismus: Vorhersehbare Antwortzeiten, wichtig für zeitkritische Anwendungen.
- Geringe Latenz: Minimale Verzögerung bei der Ausführung von Aufgaben.
- Parallele Ausführung: Unterstützung für Multitasking und gleichzeitige Prozesse.
- Speicherverwaltung: Isolierung und Verwaltung von Speicherressourcen für stabile Systemleistung.
Unterschiede zwischen Hard- und Soft-Realzeit
Definition:
Unterschied zwischen Hard- und Soft-Realzeit besteht darin, dass Hard-Realzeit strikte Anforderungen an die Ausführungszeiten hat, während Soft-Realzeit flexibelere Zeitvorgaben toleriert.
Details:
- Hard-Realzeit: Fehlende Einhaltung der Zeitvorgaben führt zu Systemfehlern.
- Soft-Realzeit: Fehlende Einhaltung der Zeitvorgaben führt zu Degradation der Leistung, aber kein vollständiges Versagen.
- Zeitgrenzen Hard-Realzeit: Strikt und unveränderlich
- Zeitgrenzen Soft-Realzeit: Flexibel und variabel
Planung und Scheduling-Algorithmen
Definition:
Planung und Scheduling-Algorithmen in Echtzeitsystemen steuern die Ausführung von Aufgaben, um Fristen einzuhalten.
Details:
- Deterministische vs. nicht-deterministische Algorithmen
- Echtzeitbetriebssysteme verwenden harte und weiche Echtzeitscheduling-Strategien
- Häufige Algorithmen: RMS (Rate Monotonic Scheduling), EDF (Earliest Deadline First)
- Prioritätszuweisung und Kontextwechsel sind entscheidend
- Nutzung von Zeitdiagrammen zur Visualisierung
Protokolle und Standards der zeitgesteuerten Kommunikation
Definition:
Protokolle und Standards zur Sicherstellung der zeitlichen Deterministik in der Kommunikation zwischen Echtzeitsystemen.
Details:
- Ziel: Minimierung der Latenz und Sicherstellung der fristgerechten Datenübertragung
- TTP (Time-Triggered Protocol): Zeitscheiben-basiert, synchronisierte Kommunikationszyklen
- IEEE 1588 PTP (Precision Time Protocol): Hochpräzise Zeitsynchronisation
- CAN (Controller Area Network) mit Time-Triggered CAN (TTCAN): Erweiterung des CAN-Busses um Zeitsteuerungseigenschaften
- FlexRay: Hochgeschwindigkeits-Kommunikationsprotokoll für Fahrzeugnetzwerke, Zeit- und Ereignis-gesteuert
- Determinismus: Feste Übertragungszeiten, keine Kollisionen dank Zeitschlitzen
- Verwendung in Automobilindustrie, Luftfahrt, Industrieautomation
Implementierung von Kommunikationssystemen in Echtzeitumgebungen
Definition:
Implementierung von Kommunikationssystemen in Echtzeitumgebungen
Details:
- Echtzeitanforderungen: niedrige Latenz, deterministisches Verhalten
- Protokolle: CAN, TTP, FlexRay für deterministische Kommunikation
- Architekturen: zentrale vs. verteilte Systeme
- Pufferstrategien: FIFO, Prioritätswarteschlangen
- QoS-Anforderungen: Bandbreite, Verzögerung, Jitter
- Synchronisation: Zeitstempel, globale Uhr
- Fehlerbehandlung: Redundanz, Fehlererkennung und -korrektur
- Datenkonsistenz: Atomare Broadcasts, Update-Protokolle
- Tools: FPGA, RTOS für Implementierung
- Beispiele: Automotive-Systeme, industrielle Automatisierung
Synchronisation von Threads
Definition:
Threads in einem Echtzeitsystem synchronisieren, um Konsistenz und korrekte Ausführung zu gewährleisten.
Details:
- Mutex: Verhindert gleichzeitigen Zugriff auf gemeinsame Ressourcen. Syntax: \texttt{pthread\textunderscore mutex\textunderscore lock()}
- Semaphor: Steuerung des Zugriffs basierend auf Zählerwert. Syntax: \texttt{sem\textunderscore wait()}
- Monitor: Hohes Abstraktionsniveau, Kombination von Mutex und Bedingungsvariablen.
- Deadlock: Vermeiden durch präventive Maßnahmen wie Deadlock-Erkennung, Zeitüberschreitung.
Prioritäten-basierte Scheduling-Algorithmen
Definition:
Prioritäten-basierte Scheduling-Algorithmen verwenden Prioritäten von Aufgaben für die Reihenfolge der Ausführung.
Details:
- Jede Aufgabe hat eine festgelegte Priorität.
- Höhere Priorität → schnellere Ausführung.
- Beispiele: Fixed-Priority Scheduling (FPS), Earliest Deadline First (EDF).
- Berechnung von Prioritäten z.B. mit Rate-Monotonic Algorithmus (RMA).
- Garantie der Echtzeitbedingungen durch Prioritätenzuweisung.
- Problem: Prioritätsinversion – niedrig priorisierte Aufgabe blockiert höhere Prioritäten.
- Verwendung von Protokollen wie Priority Inheritance zur Lösung von Prioritätsinversion.
Verteilte Echtzeitsysteme
Definition:
Echtzeitsysteme, die geografisch verteilt sind und miteinander kommunizieren, oft über Netzwerke.
Details:
- Synchronisation von Uhren notwendig
- Kommunikationsverzögerungen beachten
- Verteiltes Scheduling notwendig
- Fehlertoleranz und Redundanz wesentliche Aspekte
- Beispiele: Sensornetze, Automatisierungsnetze