타이머 인터럽트를 구현하기 위해 Linux 커널은 어떤 하드웨어를 사용합니까?

타이머 인터럽트를 구현하기 위해 Linux 커널은 어떤 하드웨어를 사용합니까?

나는 모든 타이머 인터럽트에 대해 업데이트되는 jiffies에 대해 읽고 있습니다. 타이머 인터럽트의 빈도는 컴파일 시간 상수 HZ에 의해 결정됩니다.

X86에는 많은 하드웨어 장치가 있습니다. 1. RTC 2. 프로그래밍 가능한 인터럽트 타이머 3. 로컬 APIC 4. 타임스탬프 카운터 5. HPET

이것은 jiffie 값을 증가시키기 위해 Linux 커널에서 사용하는 장치입니다.

Robert Love의 책에는 "Programmable Interrupt Timers"라고 나와 있습니다. 아직도 효과적인가요?

 cat /sys/devices/system/clocksource/clocksource0/available_clocksource 
tsc hpet acpi_pm 

# cat /sys/devices/system/clocksource/clocksource0/current_clocksource 
tsc

위의 sys 파일이 이 정보를 제공합니까?

답변1

나는 당신이 이 글이나 매우 유사한 것을 읽고 있다고 생각합니다(https://elinux.org/Kernel_Timer_Systems):

타이머 휠, Jiffies와 HZ(아니면 그게 다야)

원래 커널 타이머 시스템("타이머 휠"이라고 함)은 모든 타이머 인터럽트를 기반으로 커널 내부 값(jiffies)을 증가시켰습니다. 타이머 인터럽트는 기본 스케줄러가 되며 다른 모든 타이머는 jiffies를 기반으로 합니다. 타이머 인터럽트 속도(및 일시적인 증가 속도)는 HZ라는 컴파일 타임 상수로 정의됩니다. 과거에는 커널이 HZ 값으로 100을 사용하여 10ms HZ가 되었습니다. i386의 값이 1000으로 변경되어 1밀리초의 짧은 간격이 생성됩니다. 최근(2.6.13) 커널은 i386의 HZ를 250으로 변경했습니다. (1000은 너무 높은 것으로 간주됩니다).

그래서 당신은 "무슨 타이머가 중요합니까?"라고 묻는 것 같습니다.

제거 방법별:RTC, 최신 기본 APIC 및 TSC는 고정 주파수 인터럽트를 지원하지 않습니다.아래에서 논의된 것처럼 HPET가 PIT를 대체한 것으로 보입니다.

그래서가장 가능성이 높은 대답은 다음과 같습니다.고온 PET. 이는 일반적으로 위치하는 석영 크리스탈에 의해 트리거되는 카운터를 기반으로 합니다.난챠오. 이 경우 jiffy는 단일 HPET 비교기에 의해 주기적 모드로 클럭킹되어 다음을 생성합니다.방해하다.

그러나 Linux에서는 여전히 PIT 또는 기타 타이머를 사용할 수 있습니다(참조:https://en.wikipedia.org/wiki/High_Precision_Event_Timer):

사용법 및 호환성

HPET가 존재하기 전에 설계된 운영 체제는 HPET를 사용할 수 없으므로 다른 타이머 기능을 사용합니다. 최신 운영 체제에서는 둘 중 하나를 사용할 수 있는 경향이 있습니다. 일부 하드웨어는 두 가지를 모두 수행합니다. 실제로 대부분의 최신 Southbridge 칩은 운영 체제의 사용 여부에 관계없이 PIT, PIC, APIC(Advanced Programmable Interrupt Controller) 및 RTC 장치의 레거시 지원 인스턴스를 실리콘에 통합하므로 최신 PC가 이전 운영 체제를 실행하는 데 매우 도움이 됩니다. 시스템.

PIT와 PET의 연결

프로그래밍 가능한 인터럽트 타이머는 코드의 정상적인 실행을 방해할 수 있는 활성 타이머입니다. HPET로 대체된 것으로 보입니다.:

PIT(프로그래밍 가능한 간격 타이머)는 특히 멀티태스킹 환경에서 최신 컴퓨터의 중요한 부분입니다. 다양한 레지스터 값을 설정함으로써 PIT 칩이 특정 속도로 카운트 업 또는 다운되고 특정 시간에 인터럽트를 트리거하도록 만들 수 있습니다. 타이머는 트리거될 때 자동으로 카운트를 다시 시작하도록 루프 모드로 설정하거나 원샷 카운트다운 모드로 설정할 수 있습니다.

최신 하드웨어에서는 PIT 개념이 발전된 HPET(High Precision Event Timer)가 제공될 수 있습니다.

관련 정보