Prioridades em tempo real no sistema operacional não em tempo real

8

Se eu executar o seguinte comando na minha instalação padrão do Linux Mint:

comp ~ $ ps -eo rtprio,nice,cmd
RTPRIO  NI CMD
...
99   - [migration/0]
99   - [watchdog/0]
99   - [migration/1]
 -   0 [ksoftirqd/1]
99   - [watchdog/1]

Eu recebo alguns dos processos com prioridade em tempo real de 99.

Qual é o significado de rtprioum Linux não em tempo real? Isso significa que, se eu apenas executar um programa com rtprio99, ele será executado em tempo real? Onde os sistemas operacionais em tempo real se enquadram nessa história?

TheMeaningfulEngineer
fonte

Respostas:

5

"Tempo real" significa processos que devem ser concluídos dentro dos prazos, ou coisas ruins acontecem. Um kernel em tempo real é aquele em que as latências do kernel são estritamente limitadas (sujeitas a um possível hardware que se comporta mal e que não responde a tempo) e no qual quase todas as atividades podem ser interrompidas para permitir a execução de tarefas de maior prioridade. No caso do Linux, o kernel vanilla não está configurado para tempo real (tem um custo em desempenho, e os patches em tempo real flutuando dependem de alguns hacks que os desenvolvedores principais consideram brutos). Além disso, executar um kernel em tempo real em uma máquina que simplesmente não consegue acompanhar (a maioria das máquinas pessoais) não faz sentido.

Dito isto, o kernel vanilla lida com prioridades em tempo real, o que lhes confere uma prioridade mais alta que as tarefas normais, e essas tarefas geralmente serão executadas até que voluntariamente produzam a CPU. Isso dá uma melhor resposta a essas tarefas, mas significa que outras tarefas são adiadas.

vonbrand
fonte