Concevoir des logiciels fiables sous Linux PREEMPT_RT ou RTOS impose une discipline absolue. Une simple inversion de priorité ou un défaut de page peut retarder la direction de plusieurs millisecondes. Ce guide détaille les règles d'ordonnancement et de mémoire.
Les allocations dynamiques (malloc) en cours de route provoquent des défauts de page bloquant les threads critiques pendant plusieurs millisecondes. Il est impératif d'appeler mlockall(MCL_CURRENT | MCL_FUTURE), de pré-toucher la pile et d'utiliser des pools mémoire fixes.
L'inversion de priorité non bornée survient quand un thread de journalisation détient un mutex et se fait préempter par une tâche moyenne, bloquant le freinage d'urgence. La norme POSIX résout ceci avec PTHREAD_PRIO_INHERIT pour élever temporairement la priorité.