¿Qué es una resolución de jiffie en el kernel de Linux?

¿Qué es una resolución de jiffie en el kernel de Linux?

¿Qué es una resolución de jiffie en el kernel de Linux?

Según la fuente del temporizador actual ( cat /sys/devices/system/clocksource/clocksource0/current_clocksource), Linux usa TSC y tiene una resolución de nanosegundos.

de acuerdo ahttp://lxr.free-electrons.com/source/include/linux/jiffies.hjiffie no es más pequeño que 1us, pero puede ser más grande.

¿Hay alguna manera de determinar su resolución actual?

Respuesta1

Si echas un vistazo a la página de manual.man 7 time

El valor de HZ varía según las versiones del kernel y las plataformas de hardware. En i386 la situación es la siguiente: en kernels hasta 2.4.x inclusive, HZ era 100, dando un valor santiamén de 0,01 segundos; A partir de 2.6.0, HZ se elevó a 1000, lo que da un santiamén de 0,001 segundos. Desde el kernel 2.6.13, el valor HZ es un parámetro de configuración del kernel y puede ser 100, 250 (el valor predeterminado) o 1000, lo que produce un valor en santiamén de, respectivamente, 0,01, 0,004 o 0,001 segundos. Desde el kernel 2.6.20, hay disponible una frecuencia adicional: 300, un número que se divide equitativamente para las velocidades de fotogramas de vídeo comunes (PAL, 25 HZ; NTSC, 30 HZ).

La llamada al sistema times(2) es un caso especial. Informa tiempos con una granularidad definida por la constante del kernel USER_HZ. Las aplicaciones de espacio de usuario pueden determinar el valor de esta constante
usando sysconf(_SC_CLK_TCK).

Puedes consultar la CLK_TCKconstante:

$ getconf CLK_TCK
100

Esto le indica el valor de HZ, es decir, 100. Este valor es el número de jiffis en un segundo.

Referencias

Respuesta2

Según estas fuentes, la resolución dejiffieses 1/HZ(cualquier valor HZque tenga):

Se define en uno de los archivos de encabezado dependientes del kernel, por ejemplo,

/usr/include/asm-generic/param.h

que se incluye desde

/usr/include/linux/param.h

y finalmente desde <sys/param.h>, que puede estar en un directorio específico de la arquitectura, por ejemplo,

/usr/include/x86_64-linux-gnu/sys/param.h

Las fuentes dejan claro que es una constante en tiempo de compilación y depende de su sistema particular.

información relacionada