Un système d'exploitation temps réel (RTOS) (en règle générale prononcé comme : Are-toss) est un système d'exploitation multitâche destiné aux applications temps réel. Ces applications comprennent les systèmes embarqués (thermostats programmables, contrôleurs électroménagers, téléphones mobiles), des robots industriels, les vaisseaux spatiaux, les systèmes de contrôle commande industriel, et le 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ées 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.
Deux types de conceptions existent:
La conception par partage de tache change de tache 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 permutation de contexte.
Les plus récents processeurs utilisent largement moins de temps pour permuter de contexte. Le cas extrême est les barrel processor qui commutent d'une tâche à l'autre en zéro cycle. Les plus récents RTOS implémentent invariablement l'ordonnancenement par partage de tâche avec un ordonnancement par priorité.