Les systèmes temps-réels ont pour objectif de fournir un résultat dans un temps précis et de garantir le déterminisme de votre application. Ici, la notion de temps-réel n'est pas synonyme de rapidité, au contraire, votre programme doit réagir correctement et au bon moment : ni trop rapidement ni trop lentement. Jusqu'à récemment, ce type d'application était déployé sur des systèmes d'exploitation ou noyaux majoritairement propriétaires offrant des services spécifiques à la garantie de ces contraintes temporelles.Avec son adoption de plus en plus massive, Linux a su s'adapter et constitue une alternative intéressante. Cet article propose un tour d'horizon des solutions existantes.
1. Introduction
1.1 Linux et le temps-réel, historique
Jusqu'à récemment, Linux faisait fi des contraintes de temps et ses choix architecturaux étaient peu propices au respect d'exigences temporelles fortes : verrouillages intempestifs dans le noyau, fréquence du tick peu flexible, support incomplet des threads jusqu'à l’avènement du noyau 2.6, etc. Ainsi, Linux était davantage utilisé pour des applications embarquées ayant des contraintes temps-réel faibles (aussi appelé temps-réel mou), la disponibilité du code source et la possibilité de configuration (et donc, d'adaptation à des besoins particuliers) en font une plate-forme de choix pour ce type de système. De plus, il manquait à l'OS libre le support de nombreux périphériques utilisés dans les applications temps-réel. Les instruments déployés dans ce type de mission étant bien souvent spécifiques et coûteux, les développeurs du manchot étaient peu enclins à développer les pilotes...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première