Conseils sur l'utilisation de l'hyperviseur pour exécuter un système d'exploitation en temps réel en parallèle avec Windows / Linux

StackOverflow https://stackoverflow.com/questions/1160110

  •  18-09-2019
  •  | 
  •  

Question

Quels sont vos conseils / expérience de l'utilisation d'un hyperviseur (par exemple RTS en temps réel hyperviseur ) pour exécuter un RTOS en parallèle avec un système d'exploitation en temps non réel. Y a-t-il des conséquences sur les performances? Y a-t-il des risques? (Comme comment pouvez-vous assurer que le système d'exploitation en temps non réel ne sera pas interférer avec les aspects en temps réel du RTOS)

D'après ce que je comprends, un processeur dual core (ou hyperthreading) doit être utilisé de sorte que vous pouvez attribuer à chaque OS son propre noyau.

Était-ce utile?

La solution

  1. non, il n'a pas besoin dual core ou hyperthreading.
    • non, les tâches non-RT ne pas interférer avec les RT.

L'idée principale est d'avoir un RTOS, qui exécute des tâches écrites spécialement pour ce système d'exploitation, en utilisant son propre API. Ces tâches sont définies dans les niveaux de priorité de chaîne, où une tâche prioritaire plus élevée AllWays ont priorité sur une priorité inférieure. Les plus faibles tâches prioritaires exécuteront que tant qu'il n'y a pas d'autre tâche disponible pour exécuter (c'est, ils sont tous en attente pour un événement, que ce soit un délai d'attente ou un signal externe).

tout cela est comme un planificateur d'habitude multi-tâches du système d'exploitation, il n'a pas besoin multple noyaux ou fils de matériel; il est juste que les garanties de synchronisation sont radicalement différentes, et l'API disponible reflète ce fait.

Dans ces implémentations hybrides, il y a une seule tâche plus bas niveau qui exécute un noyau complet non-RT OS, généralement Linux ou un autre noyau unix (je ne sais pas sur les fenêtres, mais devrait fonctionner de la même). De nos jours, nous appelons cette architecture d'un hyperviseur.

, puisque l'ensemble non-RT OS est exécuté comme la tâche la plus basse priorité, il n'a pas de garantie d'obtenir le temps de traitement du tout. une tâche RT peut interrompre à tout moment, même lorsque l'accès au matériel. de garder cela, généralement les tâches RT ont un accès très limité au matériel, ou il y a un minimum au niveau des arbitrages très bas. à savoir: peut interrompre un accès au disque (éventuellement résultant en une erreur d'accès); mais pas un accès PCI (aussi longtemps que sont de courte durée et limitée dans le temps)

il y a aussi des extensions soft-RT au programmateur Linux depuis un certain temps; mais les garanties de synchronisation ne sont pas si serré que certains systèmes d'exploitation hard-RT construit dans cet esprit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top