O que é uma resolução instantânea no kernel do Linux?
de acordo com a fonte do timer atual ( cat /sys/devices/system/clocksource/clocksource0/current_clocksource
), o Linux usa TSC e tem resolução de nanossegundos
de acordo comhttp://lxr.free-electrons.com/source/include/linux/jiffies.hjiffie não é menor que 1us, mas pode ser maior.
Existe uma maneira de determinar sua resolução atual.
Responder1
Se você der uma olhada na página de manualman 7 time
O valor de HZ varia entre versões do kernel e plataformas de hardware. No i386 a situação é a seguinte: em kernels até 2.4.x inclusive, HZ era 100, dando um valor instantâneo de 0,01 segundos; começando com 2.6.0, HZ foi aumentado para 1000, dando um instante de 0,001 segundos. Desde o kernel 2.6.13, o valor HZ é um parâmetro de configuração do kernel e pode ser 100, 250 (o padrão) ou 1000, produzindo um valor de instantes de, respectivamente, 0,01, 0,004 ou 0,001 segundos. Desde o kernel 2.6.20, uma frequência adicional está disponível: 300, um número que divide igualmente as taxas de quadros de vídeo comuns (PAL, 25 HZ; NTSC, 30 HZ).
A chamada do sistema times(2) é um caso especial. Ele relata tempos com granularidade definida pela constante do kernel USER_HZ. Os aplicativos de espaço do usuário podem determinar o valor dessa constante
usando sysconf(_SC_CLK_TCK).
Você pode consultar a CLK_TCK
constante:
$ getconf CLK_TCK
100
Isto indica o valor de HZ, ou seja, 100. Este valor é o número de instantes em um segundo.
Referências
Responder2
Segundo estas fontes, a resolução parainstantesé 1/HZ
(qualquer valor HZ
que tenha):
- Mapa do kernel Linux em PDF para impressão por US$ 4 ou € 3
- Sistemas de temporizador de kernel
- ticks do kernel, instantes e temporizadores de alta resolução...
É definido em um dos arquivos de cabeçalho dependentes do kernel, por exemplo,
/usr/include/asm-generic/param.h
que está incluído de
/usr/include/linux/param.h
e, finalmente, de <sys/param.h>
, que pode estar em um diretório específico da arquitetura, por exemplo,
/usr/include/x86_64-linux-gnu/sys/param.h
As fontes deixam claro que é uma constante de tempo de compilação e depende do seu sistema específico.