Como você pode determinar qual agendador de processo está sendo usado? [duplicado]

8

Ou seja. é o agendador O (1), o agendador CFS ou um agendador mais antigo?

    
por daveb 17.04.2012 / 16:09

2 respostas

3

Você pode chamar sched_getscheduler(process_pid) para determinar a política de agendamento de um processo.

Se o /sys/kernel/uids existir, você terá o CFS. Ou você poderia tentar

[[ -n $(awk '$3 == "load_balance_fair" {print;}' < /proc/kallsyms) ]] && 
  echo CFS

Não sei como você pode distinguir o planejador O (1) de outros planejadores obsoletos. Você pode usar a versão do kernel, mas como as distribuições aplicaram patches em seus kernels enviados, isso não será confiável.

    
por 17.04.2012 / 17:05
0

O escalonador de um processo pode ser definido pelo programador, usando essa função homem sched_setscheduler

para ver o agendador usa por um processo, você pode usar o comando top

para alterar o agendador de um processo chrt

    
por 18.04.2012 / 23:44