Linux内部的时钟处理机制全面剖析(1)


在 Linux 操作系统中,很多活动都和时间有关,例如:进程调度和网络处理等等。所以说,了解 Linux 操作系统中的时钟处理机制有助于更好地了解 Linux 操作系统的运作方式。本文分析了 Linux 2.6.25 内核的时钟处理机制,首先介绍了在计算机系统中的一些硬件计时器,然后重点介绍了 Linux 操作系统中的硬件时钟和软件时钟的处理过程以及软件时钟的应用。最后对全文进行了总结。

◆1、计算机系统中的计时器

在计算机系统中存在着许多硬件计时器,例如 Real Timer Clock RTC )、Time Stamp Counter TSC ) 和 Programmable Interval Timer PIT ) 等等。

这部分内容不是本文的中点,这里仅仅简单介绍几种,更多内容参见参考文献:

  • Real Timer Clock RTC ):
    • 独立于整个计算机系统例如: CPU 和其他 chip )
    • 内核利用其获取系统当前时间和日期
  • Time Stamp Counter TSC ):
    • 从 Pentium 起,提供一个寄存器 TSC,用来累计每一次外部振荡器产生的时钟信号
    • 通过指令 rdtsc 访问这个寄存器
    • 比起 PIT,TSC 可以提供更精确的时间测量
  • Programmable Interval Timer PIT ):
    • 时间测量设备
    • 内核使用的产生时钟中断的设备,产生的时钟中断依赖于硬件的体系结构,慢的为 10 ms 一次,快的为 1 ms 一次
  • High Precision Event Timer HPET ):
    • PIT 和 RTC 的替代者,和之前的计时器相比,HPET 提供了更高的时钟频率至少10 MHz )以及更宽的计数器宽度64位)
    • 一个 HPET 包括了一个固定频率的数值增加的计数器以及3到32个独立的计时器,这每一个计时器有包涵了一个比较器和一个寄存器保存一个数值,表示触发中断的时机)。每一个比较器都比较计数器中的数值和寄存器中的数值,当这两个数值相等时,将产生一个中断


相关内容