Système d'exploitation temps réel
Un système d'exploitation temps réel, en anglais RTOS pour real-time operating system (généralement prononcé à l’anglaise, en séparant le R de l’acronyme : Are-toss), est un système d'exploitation pour lequel le temps maximum entre un stimulus d'entrée et une réponse de sortie est précisément déterminé.
Ces systèmes d'exploitation multitâches sont destinés à des applications temps réel : systèmes embarqués (thermostats programmables, contrôleurs électroménagers, téléphones mobiles, robots industriels, vaisseaux spatiaux, systèmes de contrôle commande industriel, matériel de recherche scientifique).
Un RTOS facilite la création d'un système temps réel, mais ne garantit pas que le résultat final respecte les contraintes temps réel, ce qui exige le développement correct du logiciel. Un RTOS n'a pas nécessairement pour but d'être performant et rapide, mais un RTOS fournit des services et des primitives qui, si elles sont utilisées correctement, peuvent garantir les délais souhaités. Un RTOS utilise des ordonnanceurs spécialisés afin de fournir aux développeurs des systèmes temps réel les outils et les primitives nécessaires pour produire un comportement temps réel souhaité dans le système final.
Types de conceptions
Deux types de conceptions existent :
- événementielle (ordonnancement par priorité) : l'ordonnanceur ne change de tâche que lorsqu'un événement de plus haute priorité a besoin de service ;
- par partage de tâche : L'ordonnanceur change de tâche aux interruptions de l'horloge, et lors des événements.
La conception par partage de tâche change de tâche plus souvent que c'est strictement nécessaire mais donne un caractère plus doux, plus déterministe au multitâche, donnant l'illusion à un processus ou à un utilisateur qu'il est le seul utilisateur de la machine.
Les premières conceptions de processeur avaient besoin de beaucoup de cycles pour changer de tâche, durant lesquels le processeur ne pouvait rien faire d'utile. Ainsi, les premiers RTOS essayaient de limiter le gaspillage de temps CPU en évitant au maximum les permutations de contexte.
Les plus récents processeurs utilisent largement moins de temps pour permuter de contexte. Le cas extrême est le Barrel processor (en) qui commute d'une tâche à l'autre en zéro cycle. Les plus récents RTOS implémentent invariablement l'ordonnancement par partage de tâche avec un ordonnancement par priorité.
Exemples de systèmes d'exploitation temps réel
- Adeos
- ART Linux
- ChorusOS
- ContikiOS
- eCos
- ELinOS
- ERIKA Enterprise
- FreeRTOS
- HipperOS[1]
- iRmx
- ITRON
- linux-rt[2],
- LynxOS
- MPE (en)
- MicroC/OS-II (ou µC/OS-II)
- nOS[3]
- Nucleus
- OS-9
- OSE
- OSEK/VDX
- pSOS
- PikeOS
- QNX
- RedHawk
- RSX-11
- RT-11
- RT-LAB
- RT-Thread
- RTE-III (en) de HP[4]
- RTAI
- RTEMS
- RTLinux ou Real Time Linux
- RTOS-UH
- RTX ou Real Time eXtension to Windows
- SCIOPTA
- Symbian OS
- VRTX
- VxWorks
- Windows CE
- Xenomai
- XNU :
- Yasos
Notes et références
- (en) HipperOS
- et le patch PREEMPT_RT (branche du noyau Linux).
- nOS, github.com
- (en) Name: RTE-III, sur le site hpmuseum.net.
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Real-time operating system » (voir la liste des auteurs).
Bibliographie
- Mehdi Aichouch, Jean-Christophe Prevotet et Fabienne Nouvel, « Evaluation of an RTOS on top of a hosted virtual machine system », Design and Architectures for Signal and Image Processing (DASIP), Institut d’Electronique et de Télécomunications de Rennes INSA Rennes, no 2013 Conference on, Oct 2013, Cagliari, Italy, , p. 290-297 (lire en ligne)
Articles connexes
- Portail de l’informatique