Conselhos sobre como usar hypervisor para executar uma Tempo real OS em paralelo com o Windows / Linux

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

  •  18-09-2019
  •  | 
  •  

Pergunta

O que são o seu conselho / experiência de usar um hypervisor (por exemplo RTS Real-Time hypervisor ) para executar um RTOS em paralelo com um sistema operacional non tempo real. Existem quaisquer implicações de desempenho? Existem riscos envolvidos? (Como como você pode garantir que o tempo de OS não real não irá interferir com os aspectos tempo real do RTOS)

Pelo que eu entendo, um dual core (ou hyperthreading) CPU tem que ser usado de modo que você pode atribuir a cada OS seu próprio núcleo.

Foi útil?

Solução

  1. Não, ele não precisa de dual core ou hyperthreading.
    • Não, as tarefas não-RT não interfere com as RT.

A idéia principal é ter um RTOS, que executa tarefas escritos especificamente para este sistema operacional, usando a sua própria API. Essas tarefas são definidas em níveis de prioridade de cordas, onde uma tarefa de maior prioridade será hair têm precedência sobre um inferior prioridade. As tarefas mais prioritárias irá executar apenas enquanto não há nenhuma outra tarefa disponível para executar (isto é, que todos estão esperando por algum evento, um tempo limite ou um sinal externo).

tudo isso é apenas como um programador de costume multitarefa OS, ele não precisa de núcleos multple ou segmentos de hardware; é só que as garantias de tempo são radicalmente diferentes, ea API disponível reflecte este facto.

Nas implementações híbridas, não há uma única tarefa de nível mais baixo que executa um completo non-RT OS kernel, geralmente Linux ou algum outro unix-like kernel (eu não sei sobre o Windows, mas deve funcionar da mesma). Hoje em dia, nós chamamos isso de arquitetura um hypervisor.

Assim, desde que o todo não-RT OS é executado como a tarefa de menor prioridade, ele não tem qualquer garantia de obter o tempo de processamento em tudo. qualquer tarefa RT pode interrompê-lo a qualquer momento, mesmo quando acessar hardware. para manter isso, normalmente as tarefas RT têm muito limitado o acesso ao hardware, ou há arbitragens mínimo em nível muito baixo. ou seja: pode interromper um acesso ao disco (possivelmente resultando em um erro de acesso); mas não um acesso PCI (desde que são de curta duração e de tempo limitado)

há também algumas extensões soft-RT para o programador Linux há algum tempo; mas as garantias de tempo não são tão apertado como algumas hard-RT sistemas operacionais construídos com isso em mente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top