为什么在有PIT可用时需要TSC

时间:2013-07-31 00:53:27

标签: linux timer linux-kernel interrupt

我正在阅读"Understanding Linux Kernel",其中有三个时钟

  1. 实时时钟

  2. 时间戳计数器(TSC)

  3. 可编程间隔定时器(PIT)

  4. 关于这些我几乎没有问题。

    1. 为什么计算机开机后不使用实时时钟?

    2. 系统运行时是否正在运行?

    3. TSC寄存器使用PIT,那么为什么我们需要基于TSC寄存器的时序?

    4. 来自/ proc / interrupts的IRQ8的值为cpu0和0给出1 对于其他人,即使在系统运行一段时间后也是如此。为什么 IRQ8中只有一个中断,即实时时钟。

    5. 这不是一个家庭作业问题

1 个答案:

答案 0 :(得分:6)

  1. RTC不经常使用,因为它的寄存器访问速度很慢。
  2. RTC 始终正在运行(这就是为什么它有自己的电池)。但是,现在它的唯一目的是在系统不运行时保持时间。
  3. 可以比PIT更快地访问TSC。
  4. 内核总是尝试使用可以以最有效的方式编程的定时器,因此一旦检测到后者,它就会从PIT切换到基于CPU的本地TSC定时器(local APIC timer) 。 在/proc/interrupts中,LAPIC中断没有数字,但名为LOC