POSIX Real-Time-Threading-Leitfaden fuer deterministische Fahrzeugaufgaben

Zuverlaessige Software unter Linux PREEMPT_RT oder RTOS verlangt diszipliniertes Thread-Design: Eine einzige Prioritaetsinversion oder ein Page Fault kann Lenkeingriffe um Millisekunden verzoegern. Dieser Leitfaden liefert verbindliche Regeln.

Beseitigung von Page Faults mit mlockall und Speicher-Vorallokation

Dynamischer Speicher (malloc) waehrend der Fahrt fuehrt zu Page Faults, die Echtzeit-Threads fuer Millisekunden laehmen. Entwickler muessen vor Thread-Start mlockall(MCL_CURRENT | MCL_FUTURE) aufrufen, den Stack vorab touchieren und statische Speicher-Pools nutzen.

Vermeidung von Prioritaetsinversion durch Priority-Inheritance-Mutexes

Unbegrenzte Prioritaetsinversion tritt auf, wenn ein Logger einen Mutex haelt und von einem mittleren Task verdraengt wird, waehrend der Brems-Task blockiert bleibt. POSIX loest dies mit PTHREAD_PRIO_INHERIT: Der Logger erbt temporaer die maximale Prioritaet.

Domain-Portfolio entdecken