cat /proc/interrupts
멀티 코어 x86_64 데스크톱 컴퓨터(커널 3.16)에서 이 작업을 수행 하면 다음이 표시됩니다.
0: 16 0 IO-APIC-edge timer
LOC: 529283 401319 Local timer interrupts
cat /proc/interrupts
멀티 코어 x86_64 노트북(커널 3.19)에서 이 작업을 수행 하면 다음이 표시됩니다.
0: 1009220 0 IO-APIC-edge timer
LOC: 206713 646587 Local timer interrupts
이 차이점을 보면 둘 사이의 차이점이 무엇인지 스스로에게 묻습니다.
설명이 주어지면 누군가가 이것을 상당히 철저하게 설명할 수 있기를 바랍니다.여기매우 상세하지 않으며 내 데스크톱 컴퓨터에서는 타이머를 사용하지 않지만 내 노트북에서는 타이머를 사용하는 이유를 설명하지 않습니다.
답변1
명백한 x86_PC 아키텍처에서:
인터럽트 요청 0첫 번째 타이머(Timer0)와 관련된 인터럽트 라인입니다.인프로그래밍 가능나간격시간제 노동자. 그것은 출신이다IOAPICCPU(cpu0)만 시작합니다.
이 인터럽트라고도 합니다.스케줄링 클록 인터럽트또는
시계 틱 예약아니면 단순히진드기:
만약에NO_HZ커널 구성 손잡이가 설정되지 않았습니다(또는 Linux 커널 버전 < 3.10에서는). 인터럽트가 주기적으로 실행되도록 프로그래밍됩니다.헤르츠빈도.
NO_HZ가 설정되면 PIT는 원샷 모드로 작동합니다.
초기 부팅 시 사용되며 특정 상황을 제외하고 시계 틱 및 시스템 시간 업데이트를 위한 스케줄러로 계속 사용할 수 있습니다.더 나은 것(*1)클럭 소스사용 가능한 것으로 나타났습니다.
그럼에도 불구하고 다음과 같은 경우 CPU 시간 통계에 사용됩니다.TICK_CPU_ACCOUNTING커널 구성의 일부로 설정됩니다.
LOC다음과 관련된 인터럽트입니다.로컬 APIC 타이머.
지루한 초기화 후에 활성화해야 합니다. (위 링크 참조)
그런 다음 CPU 하드웨어 기능에 따라 중간 시간에 이 클록 소스를 안정적으로 유지합니다.커널 구성 및 부팅 명령줄 매개변수에 따라 다름이는 다양한 스케줄러 작업, 정확한 CPU 시간 통계 및 시스템 시간 유지 관리를 트리거하기 위해 PIC 인터럽트를 대체합니다.