
Estoy buscando obtener estadísticas de tiempo/jiffie sobre el estado de un proceso de demonio. Los estados a los que me refiero se mencionan en elSistema de archivos de proceso del kernel de Linuxdocumento. Correr, Dormir, Dormir ininterrumpidamente, Zombi, Trazado/detenido.
La Tabla 1-4 menciona los contadores de tiempo de jiffie para usuario, kernel, usuario con hijos y kernel con hijos, pero no menciona los jiffies en estado.
¿Existen contadores estándar que registren el tiempo pasado en estos estados?
Ejemplo:
allí /proc/[pid]/stat
hay contadores de usuario ( utime
), kernel ( stime
) e invitado ( gtime
) medidos en santiamén.
¿Existen contadores de procesos para el tiempo pasado en estados: [ R
] corriendo, [ S
] durmiendo, [ D
] durmiendo en una espera ininterrumpida, [ Z
] ombi, [ T
] corriendo o detenido medido en santiamén?
Respuesta1
Habiendo pensado más sobre mi pregunta, creo que puedo responderla.
[ R
] El estado de ejecución se rastrea como modo de usuario (utime) y modo kernel (tiempo) ya que requiere ciclos. El tiempo de sueño/inactividad puede (algo así como) se calcula restando el tiempo de ejecución calculado en santiamén del start_time
tiempo de inicio del proceso después del reinicio. Esto no es tan confiable suponiendo que la frecuencia del reloj esté escalando dinámicamente.
Los jiffies son una unidad de tiempo no absoluta (un tick) que depende de la frecuencia de interrupción del reloj. Los jiffies son tiempo invertidohaciendoalgo.
No puedo encontrar ningún contador o referencia de fecha de época de cuando un proceso entra en un estado de no ejecución, o las veces que un estado ha cambiado a dicho estado de no ejecución.