¿Cómo se puede determinar qué programador de procesos se está utilizando?

¿Cómo se puede determinar qué programador de procesos se está utilizando?

Es decir, ¿es el programador O(1), el programador CFS o uno más antiguo?

Respuesta1

Puede llamar sched_getscheduler(process_pid)para determinar la política de programación de un proceso.

Si /sys/kernel/uidsexiste, tienes SFC. O podrías intentarlo

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

No estoy seguro de cómo se puede distinguir el programador O(1) de otros programadores obsoletos. Supongo que podría usar la versión del kernel, pero dado que las distribuciones aplicaron parches a sus kernels enviados, esto no será confiable.

Respuesta2

El programador puede definir el planificador de un proceso, utilizando esta función man sched_setscheduler

Para ver los usos del programador por parte de un proceso, puede usar el comando superior.

para cambiar el programador de un proceso chrt

información relacionada