Prioridades em tempo real no SO não real

8

Se eu fizer 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 obtenho alguns dos processos com prioridade em tempo real de 99.

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

    
por TheMeaningfulEngineer 11.02.2013 / 15:08

1 resposta

5

"Tempo real" significa processos que devem ser finalizados por seus prazos, ou Coisas Ruim (TM) acontecem. Um kernel em tempo real é aquele em que as latências pelo kernel são estritamente limitadas (sujeito a possivel hardware mal-comportado que simplesmente não responde a tempo) e no qual a maioria das atividades pode ser interrompida para permitir que tarefas de maior prioridade sejam executadas. No caso do Linux, o kernel vanilla não é configurado em tempo real (ele tem um custo em desempenho, e os patches em tempo real que estão por aí dependem de alguns hacks que os desenvolvedores do núcleo consideram brutos). Além disso, rodar 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 isso, o kernel vanilla lida com prioridades em tempo real, o que lhes dá uma prioridade maior do que as tarefas normais, e essas tarefas geralmente serão executadas até que elas voluntariamente cedam a CPU. Isso dá uma melhor resposta a essas tarefas, mas significa que outras tarefas são prejudicadas.

    
por 11.02.2013 / 18:52