Visão Geral
Assumir o controle manual das políticas de escalonamento e prioridades em tempo real no ecossistema Linux representa um diferencial crítico quando se busca eliminar latências em cargas de trabalho sensíveis. Este tutorial aborda a utilização prática do utilitário chrt, componente nativo do pacote util-linux, detalhando o funcionamento de algoritmos como FIFO e Round-Robin. Acompanhe neste laboratório em Ubuntu todas as etapas essenciais: verificação do ambiente, ajustes dinâmicos de tarefas em segundo plano e validação das métricas pelo sistema operacional.
Verificação das Políticas de Escalonamento e Faixas de Prioridade
Antes de iniciar as manipulações, asseguramos a presença e a atualização das ferramentas necessárias no Ubuntu instalando os pacotes util-linux e procps.

O binário chrt atua diretamente na consulta e modificação dos atributos de agendamento em tempo real dos processos.
Ao acionar o modificador -m, o utilitário expõe todos os algoritmos suportados pelo kernel em execução, acompanhados de seus respectivos limites mínimos e máximos de prioridade.
⚙️ [Parâmetros Principais]
-m : Exibe todas as políticas de escalonamento ativas no kernel e suas faixas de prioridade suportadas.-p : Especifica o identificador do processo (PID) sobre o qual as operações de leitura ou modificação incidirão.-f : Define a política de escalonamento em tempo real First-In, First-Out (SCHED_FIFO).-r : Configura a política de escalonamento cíclica em tempo real (SCHED_RR).-o : Restaura o escalonador padrão de tempo compartilhado (SCHED_OTHER).-b : Designa a política voltada para processamento em lote com menor interatividade (SCHED_BATCH).-i : Destina o processo à execução em segundo plano com prioridade mínima (SCHED_IDLE).-d : Ativa o modelo orientado a prazos rígidos (SCHED_DEADLINE).

Inspecionando a Política Padrão e Prioridade de um Processo Ativo
Para simular um alvo de teste, inicializamos em background uma rotina com sleep 600 &, garantindo um processo persistente para as manipulações a seguir.

Com a instrução TARGET_PID=$!, capturamos o PID atribuído à última tarefa enviada para segundo plano, armazenando-o em uma variável de ambiente do terminal para simplificar a referência nos próximos passos.

Ao executar chrt -p, interrogamos o kernel a respeito do estado atual da tarefa recém-criada.
Como padrão para aplicações convencionais no Linux, observa-se a presença da classe SCHED_OTHER (tempo compartilhado), acompanhada pelo nível de prioridade estática fixado em 0.

Complementamos o diagnóstico via ps, recorrendo ao argumento -o para extrair conjuntamente a classe de agendamento (CLS), a prioridade de tempo real (RTPRIO) e a prioridade interna do kernel (PRI).
A saída confirma o enquadramento na classe TS (time-sharing), evidenciando o campo RTPRIO desocupado (-) e o valor de prioridade de agendamento convencional estabelecido em 19.

Transição para Políticas de Tempo Real (SCHED_FIFO e SCHED_RR)
Elevamos agora o processo para o modo First-In, First-Out com o comando sudo chrt -f -p 50 $TARGET_PID, atribuindo o nível de prioridade em tempo real igual a 50.
Modificações nesse nível impactam criticamente a distribuição dos ciclos de CPU em todo o sistema operacional, exigindo obrigatoriamente privilégios administrativos (sudo).

Conferimos a efetivação da alteração executando novamente chrt -p.
O retorno do comando ratifica a migração com sucesso para a política SCHED_FIFO e o registro formal da prioridade em 50.

Em seguida, migramos a mesma tarefa para a disciplina Round-Robin executando sudo chrt -r -p 30 $TARGET_PID, reajustando a prioridade para 30.
Sob SCHED_RR, processos de mesma prioridade compartilham a CPU por meio de fatias de tempo predefinidas (quantum), evitando que uma única thread monopolize o núcleo permanentemente.

Validamos a configuração definitiva no nível de processo por meio do ps com flags personalizadas -o.
A consulta evidencia a classe devidamente identificada como RR, registrando o nível 30 em RTPRIO e a escala interna equivalente mapeada pelo kernel com prioridade 70 em PRI.

Inicialização Direta com Tempo Real e Limpeza de Recursos
Além de intervir em processos preexistentes, o utilitário permite instanciar binários já dotados de privilégios de tempo real desde o primeiro ciclo, como ilustrado no comando sudo chrt -r 25 sleep 300 &, que dispara um processo em background sob SCHED_RR com prioridade 25.
Essa flexibilidade viabiliza a inicialização de serviços críticos sem qualquer intervalo de execução sob o escalonador comum.

Para auditar conjuntamente as instâncias em execução, empregamos o filtro ps -eo pid,cls,rtprio,comm | grep '[s]leep'.
A listagem revela simultaneamente as duas tarefas ativas, ambas sob o escalonamento Round-Robin (RR), operando harmoniosamente com as respectivas prioridades estipuladas (30 e 25).

Para restabelecer o estado original do ambiente e desocupar recursos do sistema, encerramos as tarefas criadas via kill -9 $TARGET_PID && pkill -f 'sleep 300'.
Esse comando elimina imediatamente tanto a instância vinculada à variável quanto o processo de espera secundário, finalizando a sessão de testes de maneira ordenada.

Com estes procedimentos práticos, exploramos o potencial do chrt para modular políticas e hierarquias de agendamento no Linux.
Esse domínio técnico é indispensável para administradores de sistemas e desenvolvedores encarregados de otimizar daemons com restrições rígidas de tempo de resposta.