Existem desvantagens nos processos em execução com prioridade em tempo real ( chrt -f 99
)?
Minha hipótese é que isso combinado com uma afinidade garantirá que qualquer preferência do meu processo seja mínima e, portanto, qualquer instabilidade (especificamente a latência da rede) será minimizada - isso não ajudará na latência geral, mas, neste momento, estou mais preocupado com jitter.
(Kernel: 2.6.16 / 3.0)
Respostas:
A desvantagem mais imediata da execução de um processo em tempo real é que ele pode facilmente passar fome por todos os outros processos do sistema. O resultado do seu ponto de vista será que o computador não responde totalmente ao teclado, mouse e provavelmente à rede, enquanto o processo em tempo real estiver usando a CPU. Isso pode acontecer se algo der errado e o processo entrar em um loop infinito, ou mesmo temporariamente, se o processo iniciar um cálculo de longa execução sem esperar pela entrada periódica. (Portanto, por exemplo, não execute o SETI @ home com prioridade em tempo real.)
Um processo único de thread único em uma CPU com vários núcleos tem menos probabilidade de causar esse problema, pois existem outros núcleos que o processo de prioridade mais baixa pode usar. Mas se esse processo criar algum processo filho, ele herdará a mesma prioridade em tempo real, para que as coisas fiquem fora de controle se você não for cuidadoso.
A
sched_setscheduler(2)
página de manual tem bons conselhos:Esse deve ser um shell no console - não no Xterm, a menos que você queira também dar prioridade ao X em tempo real.
fonte