Identifizierung und Beseitigung von Latenzquellen auf Ihrer Hardwareplattform.
Real-Time Linux
Real-Time Linux und Preempt-RT.
Real-Time und Linux
Ein Echtzeitbetriebssystem stellt sicher, dass Aufgaben innerhalb vorgegebener Zeitgrenzen ausgeführt werden. Es geht dabei nicht darum, eine Aufgabe möglichst schnell zu erledigen, sondern darum, dass sie die nötige Rechenzeit rechtzeitig vor ihrer Deadline bekommt. Diese Zeitvorgaben hängen von der Anwendung ab und reichen von Minuten in Wasseraufbereitungsanlagen bis zu Mikrosekunden in der Robotik. Werden sie verpasst, kann das zu Fehlfunktionen oder schweren Schäden führen. Standard-Linux bietet einen hohen Durchsatz, garantiert aber kein deterministisches Echtzeitverhalten.
Preempt-RT wurde 2024 nach rund zwanzig Jahren Entwicklung in den Mainline-Kernel aufgenommen. Entwickler von Linutronix haben Preempt-RT maßgeblich mitentwickelt und pflegen es bis heute im Upstream. Preempt-RT läuft weltweit auf vielen Hardwareplattformen und in den unterschiedlichsten Industrieanwendungen. Je nach Hardware sind Reaktionszeiten deutlich unter 100 Mikrosekunden erreichbar.
Worst-Case-Latenz unter Last
Vanilla Kernel
21,5 ms
PREEMPT_RT
40 µs
Warum Preempt-RT
Ohne Preempt-RT enthält der Linux-Kernel mehrere Bereiche, in denen Preemption deaktiviert ist:
- Durch Spinlocks geschützte Bereiche
- Interrupt-Handler
- Teile des Schedulers
Solche Bereiche verursachen unbegrenzte Latenzen für Echtzeitaufgaben, die
rechtzeitig vor ihrer Deadline auf der CPU laufen müssen.
Preempt-RT löst das vor allem durch:
- Umwandlung von Spinlocks in preemptible sleeping locks auf Basis von
rtmutex - Umwandlung von Interrupt-Handlern in preemptible Kernel-Threads, die
standardmäßig mitSCHED_FIFOund Priorität 50 (MAX_RT_PRIO /) laufen
2 - Hochauflösende Hardware-Timer mit Nanosekundenpräzision im
Timer-Subsystem des Kernels - Prioritätsvererbung (Priority Inheritance) gegen Prioritätsinversion
Das Ergebnis ist ein Kernel, in dem ein Echtzeitprozess nahezu jeden anderen
Kernel-Codepfad unterbrechen kann und so vor Ablauf seiner Deadline auf die
CPU kommt.
Die Worst-Case-Latenz beim Aufwecken liegt auf moderner Hardware
typischerweise bei 20–50 Mikrosekunden, abhängig von SoC, Interrupt-Last und
Konfiguration.
Preempt-RT im Laufe der Jahre
Von seinen Ursprüngen in der akademischen Echtzeitforschung bis zur Integration in den Mainline-Kernel im Jahr 2024 erstreckt sich die Entwicklung von Preempt-RT über mehr als zwei Jahrzehnte:
CONFIG_PREEMPT_RTIntegration mit anderen Technologien
Echtzeit-Linux steht in Embedded-Systemen selten für sich allein:
- Hypervisor-Setups – Preempt-RT kann in einer dedizierten
VM mit fest zugewiesenen
CPU-Kernen und Peripheriegeräten laufen. Jailhouse und andere Hypervisoren unterstützen das für
Mixed-Criticality-Systeme. - Industrielle Netzwerke – Zusammen mit TSN reicht das deterministische
Verhalten vom Scheduler bis ins Netzwerk. - Safety und Zertifizierung – Preempt-RT kann Teil
sicherheitsrelevanter Systeme sein, zusammen mit geeigneter Hardware und
Software sowie passenden Entwicklungs-, Verifikations- und
Validierungsprozessen. - Echtzeitanwendungen – Robotik, Bewegungssteuerung, SPS,
Automotive und Bildverarbeitung: überall dort, wo vorhersagbare Reaktionszeiten
wichtiger sind als maximaler Durchsatz.
Arbeiten Sie mit uns an Real-Time Linux
Die Ingenieure von Linutronix haben Preempt-RT entwickelt und arbeiten seit über 20 Jahren kontinuierlich an seiner Weiterentwicklung und Upstreampflege. Unser Team deckt die Bereiche Latenzanalyse, BSP-Entwicklung, Kernel-Konfiguration und Validierung für die Industrie ab:
Latenzanalyse
Training
Alles rund um Preempt-RT – einschließlich spezieller Schulungswochen zu Real-Time Linux.
Upstreaming
Wir bringen Unterstützung Ihre Plattform und Fehlerkorrekturen in den Mainline-Kernel.
Tests
Echtzeit-Benchmarks für vollständige Hardware-/Software-Systeme.