Linux 커널에서 jiffie의 해상도는 무엇입니까?
Linux는 TSC를 사용하며 현재 타이머 소스에 따라 나노초 해상도를 갖습니다( cat /sys/devices/system/clocksource/clocksource0/current_clocksource
).
~에 따르면http://lxr.free-electrons.com/source/include/linux/jiffies.hjiffie는 1us보다 작지 않지만 더 클 수도 있습니다.
현재 해상도를 확인할 수 있는 방법이 있습니까?
답변1
맨페이지를 보면man 7 time
HZ 값은 커널 버전과 하드웨어 플랫폼에 따라 다릅니다. i386에서 상황은 다음과 같습니다. 2.4.x 및 이전 커널에서는 HZ가 100이며 2.6.0부터 HZ는 0.001초인 1000으로 증가합니다. 커널 2.6.13부터 HZ 값은 100, 250(기본값) 또는 1000일 수 있는 커널 구성 매개변수이므로 각각 0.01, 0.004 또는 0.001초의 jiffies 값이 생성됩니다. 커널 2.6.20부터 더 많은 주파수를 사용할 수 있습니다. 300은 일반 비디오 프레임 속도(PAL, 25HZ, NTSC, 30HZ)를 균등하게 나누는 숫자입니다.
times(2) 시스템 호출은 특별한 경우입니다. 커널 상수 USER_HZ에 의해 정의된 단위로 시간을 보고합니다. 사용자 공간 응용 프로그램은
sysconf(_SC_CLK_TCK)를 사용하여 이 상수의 값을 결정할 수 있습니다.
CLK_TCK
상수를 쿼리할 수 있습니다 .
$ getconf CLK_TCK
100
이는 HZ 값, 즉 100을 알려줍니다. 이 값은 1초 동안의 jiffies 수입니다.
인용하다
답변2
이들 소식통에 따르면, 결의안은지피스예 1/HZ
( HZ
발생하는 값에 관계없이):
이는 커널 관련 헤더 파일 중 하나에 정의되어 있습니다. 예를 들면 다음과 같습니다.
/usr/include/asm-generic/param.h
포함하여
/usr/include/linux/param.h
<sys/param.h>
궁극적으로 아키텍처별 디렉토리에 있을 수 있는 에서 옵니다 .
/usr/include/x86_64-linux-gnu/sys/param.h
소스는 이것이 컴파일 타임 상수이며 특정 시스템에 따라 다르다는 것을 나타냅니다.