Asesoramiento sobre el uso hipervisor para ejecutar un sistema operativo de tiempo real en paralelo con Windows / Linux

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

  •  18-09-2019
  •  | 
  •  

Pregunta

¿Cuáles son sus consejos / experiencia de usar un hipervisor (por ejemplo, estrategia en tiempo real en tiempo real hipervisor) para ejecutar un RTOS en paralelo con un sistema operativo de tiempo real no. ¿Hay consecuencias en el rendimiento? ¿Hay riesgos involucrados? (Al igual que cómo se puede garantizar que el sistema operativo en tiempo no real no interferirá con los aspectos en tiempo real del RTOS)

Por lo que entiendo, un doble núcleo (o hyperthreading) CPU tiene que ser utilizado para que pueda asignar a cada sistema operativo de su propio núcleo.

¿Fue útil?

Solución

  1. No, no necesita de doble núcleo o hyperthreading.
    • No, las tareas no-RT no interfiere con los RT.

La idea principal es tener un RTOS, que ejecuta tareas escritas específicamente para este sistema operativo, utilizando su propia API. Estas tareas se fijan en los niveles de prioridad de cuerda, donde una tarea de mayor prioridad será Allways prevalecer sobre una prioridad más baja. Las tareas de menor prioridad se ejecutará sólo en la medida que no hay otra tarea disponible para su ejecución (es decir, todos están a la espera de algún acontecimiento, ya sea un tiempo de espera o una señal externa).

todo esto es igual que un programador del sistema operativo multitarea de costumbre, que no necesita multple núcleos o hilos de hardware; es sólo que las garantías de sincronización son radicalmente diferentes, y la API disponible refleja este hecho.

En esas implementaciones híbridas, hay una sola tarea de nivel más bajo que ejecute un núcleo completo no-RT OS, por lo general Linux o algún otro núcleo tipo Unix (no sé acerca de las ventanas, pero debería funcionar de la misma). Hoy en día, llamamos a esta arquitectura de un hipervisor.

es así, ya que el conjunto no-RT sistema operativo se ejecuta como la tarea de prioridad más baja, que no tiene ninguna garantía de conseguir el tiempo de procesamiento en absoluto. cualquier tarea de TR puede interrumpir en cualquier momento, incluso cuando el acceso al hardware. mantener esto, por lo general las tareas RT tienen un acceso muy limitado al hardware, o si hay un mínimo de arbitrajes a muy bajo nivel. es decir: se puede interrumpir un acceso al disco (posiblemente dando como resultado un error de acceso); pero no un acceso PCI (siempre y cuando son de corta duración y de tiempo limitado)

también hay algunas extensiones suave-RT al planificador de Linux desde hace algún tiempo; pero las garantías de tiempo no son tan apretado como algunos sistemas operativos duros RT-construidas con esto en mente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top