Quelle est la différence entre les systèmes d'exploitation en temps réel comme VxWorks et les systèmes d'exploitation traditionnels comme Windows?


Réponse 1:

Les systèmes d'exploitation en temps réel garantissent que les tâches seront terminées dans un certain laps de temps. Cela peut être vital dans certains domaines. À titre d'exemple, considérons un système de contrôle de véhicule autonome. Vous voulez vous assurer que les calculs sont terminés dans un délai limité afin qu'il ne se bloque pas en ne tournant pas les roues.

Cela signifie que la conception du système d'exploitation est différente afin que le planificateur puisse faire de telles garanties sur la façon dont les choses fonctionnent sur l'appareil. En même temps, cela signifie que les applications écrites pour ce système d'exploitation sont subtilement différentes en raison de ces exigences et hypothèses.

D'un autre côté, sous Windows, si un programme ne se termine pas en 20 ms, bien que le système puisse sembler lent, cela n'entraînera pas de scénario de défaillance catastrophique. Ce type d'environnement est souvent meilleur pour les utilisateurs qui tentent d'interagir avec le système, car différentes choses peuvent être hiérarchisées.


Réponse 2:

Saleem Abdulrasool a une excellente réponse, il s'agit de la latence du système. Dans le calcul, la définition du temps réel est un temps de réponse garanti entre l'événement qui se produit, généralement une interruption d'une certaine sorte, et le système qui répond à cet événement.

Vous constaterez que divers producteurs de systèmes d'exploitation définissent un temps de réponse dépendant de la combinaison matérielle et de la vitesse à laquelle il s'exécute avec un ensemble matériel de base qu'ils utilisent pour évaluer les modifications et les tests.

Vous pouvez définir Windows comme temps réel en définissant un temps de réponse de 1 seconde. Il se peut que ce temps de réponse soit suffisant pour un processus considéré en temps réel.

Le codage sur un système en temps réel a également les mêmes contraintes, votre code doit se terminer avant la prochaine interruption du type auquel votre code répond, permettant toutes les autres interruptions auxquelles le système doit faire face. Si cela ne se produit pas, il y a un risque réel que votre code écrase la pile.


Réponse 3:

Je suis essentiellement d'accord avec ce que Saleem et Andrew ont dit. En général, la différence entre un RTOS et un OS traditionnel réside dans les algorithmes de planification. Cela est basé sur le domaine d'application du système d'exploitation et sur les priorités qu'il doit établir.

Dans un système d'exploitation traditionnel, la priorité est le débit et l'équité afin que le nombre maximal de tâches puisse être accompli dans un laps de temps donné et que tout le travail ait une chance de se terminer.

Dans un RTOS, certaines tâches nécessiteront le plus près possible d'une fenêtre de fin de temps garantie. Même si cela signifie une injustice par rapport aux autres tâches et diminue le débit global. Parce qu'il y a une certaine criticité dans la tâche en temps réel telle que désignée par l'utilisateur du RTOS. Ainsi, même une tâche démarrée plus tôt peut être anticipée et mise de côté pour terminer une tâche en temps réel. Cela viole l'équité mais est nécessaire pour garantir le principe en temps réel.

La raison pour laquelle j'ai dit "le plus près possible" d'un temps d'achèvement garanti est que si vous démarrez 5 tâches en temps réel en même temps, il peut ne pas être possible de les terminer toutes dans la fenêtre requise. Le concepteur du système devra tenir compte de ces possibilités lors de la conception du système global et de la planification des capacités.


Réponse 4:

Étant donné que VxWorks est un système d'exploitation en temps réel (RTOS) et Windows est un système d'exploitation à usage général (GPOS), votre question peut être considérée comme RTOS vs GPOS.

La différence la plus fondamentale est que, RTOS est déterministe dans le comportement temporel tandis que GPOS est non déterministe.

Déterministe en termes de comportement temporel, les tâches RTOS ne consommeront que des unités de temps connues et attendues. par exemple: on peut dire qu'un calcul d'échantillonnage (une tâche) se fera en 2ms.

Dans GPOS, les services (tâches) peuvent injecter des retards aléatoires dans les logiciels d'application et ainsi ralentir la réactivité à des moments inattendus. Par exemple: nous ne pouvons pas garantir que Microsoft Word dans Windows s'ouvrira dans les 2 secondes une fois que vous avez cliqué pour l'ouvrir.