지금까지 내가 이해한 바는 프로그램이 그 아래의 파일을 열고 읽을 때 /proc/
커널이 즉시 정보를 생성한다는 것입니다. 어떤 경우에는 cpuinfo
대부분의 데이터가 하드웨어에 의해 결정되며 시스템이 실행되는 동안에는 분명히 변경되지 않습니다. 내가 확실하지 않은 것은모두이 데이터의할 수 없다시스템이 실행되는 동안 변경되었습니다.
/proc/cpuinfo
시스템을 다시 시작하지 않고도 반환된 값을 변경할 수 있나요?
답변1
예. 한편, 이 cpu MHz
필드는 표시되기 때문에 자주 변경됩니다.현재의CPU의 속도. 예를 들어 내 시스템에서는 다음과 같습니다.
$ for i in {1..10}; do grep -m 1 MHz /proc/cpuinfo ; done
cpu MHz : 1596.000
cpu MHz : 1596.000
cpu MHz : 1596.000
cpu MHz : 1596.000
cpu MHz : 2394.000
cpu MHz : 2394.000
cpu MHz : 1596.000
cpu MHz : 1596.000
cpu MHz : 2394.000
cpu MHz : 2394.000
위 명령은 cpu MHz
첫 번째 CPU 라인을 10번 인쇄합니다. 위에서 볼 수 있듯이 이로 인해 2개의 별도 값이 생성되며 대기 시간도 추가되지 않습니다. 이 필드는 자주 변경될 것으로 예상할 수 있습니다. 다른 값은 변경되지 않는다고 생각하며 테스트에서도 변경되지 않았지만 맹세할 수는 없습니다.
답변2
아키텍처에 따라 다릅니다. 관련 코드는 여기에 있습니다(ARM의 경우).
http://lxr.free-electrons.com/source/arch/arm/kernel/setup.c#L1074
참고: ARM의 경우 모든 필드는 계산 후에 변경되지 않은 상태로 유지되어야 합니다. 아니요 cpu MHz
(@terdon은 아키텍처에 대한 답변을 인용했습니다).
예를 들어 Raspberry Pi의 출력은 다음과 같습니다.
pi@raspberrypi ~ $ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 1
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 2
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
processor : 3
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5
Hardware : BCM2709
Revision : a01041
Serial : 000000002489fe23