Linux时钟系列-02-时钟、定时器、计数器

Linux时钟系列-02-时钟、定时器、计数器

时钟,即Clock,一般包括两个含义:

一个含义指的是在硬件层面按照固定频率产生的时钟滴答(Clock Tick),它一般由石英晶振驱动,是机器上各个硬件最终协调运行起来的动力源,起到引擎的作用,可以说一切计算机硬件都是基于时钟滴答运行起来的。

另一个含义指的是表示日期时间的时钟(Date Time Clock),跟Real Time Clock、Wall Clock的含义差不多。

在本文中,如果没有特殊说明,我们提到Clock的时候指的就是它的第一个含义,请注意区分。

定时器,即Timer,它基于Clock计时,每隔一段时间触发一次。Timer基于Clock实现,粒度比Clock粗。

计数器,即Counter,它由Clock触发更新,一般Clock每滴答一次,Counter的数值会加1。

在上一篇文章中,我们提到了一些概念,下面按照上述三个维度给它们进行了区分,供参考:

概念类别说明
Hardware ClockClock(Date Time)一般由RTC硬件驱动
System ClockClock(Date Time)一般由TSC驱动
Linux Clock SourceClock(Tick)驱动Linux内核做定时任务的时钟源
TSC(Time Stamp Counter)Counter本质上是一个基于CPU时钟信号的计数器
HPET(High Precision Event Timer) Timerlinux可选时钟源之一,基于内置晶振产生时钟信号,驱动Linux内核做定时任务。
ACPI_PM(ACPI Power Management Timer)Timerlinux可选时钟源之一,基于内置晶振产生时钟信号,驱动Linux内核做定时任务。
PIT(Programmable Interval Timer)Timerlinux可选时钟源之一,基于内置晶振产生时钟信号,驱动Linux内核做定时任务。
RTC(Real Time Clock)Clock(Date Time)/Clock(Tick)RTC在硬件层面指的是带电池和晶振的,用于维持系统时间的东西,所以是Clock(Date Time);在系统层面,它可以作为Linux系统的时钟源,所以是Clock(Tick)。
晶振Clock(Tick)驱动计算机硬件协调工作的源动力(引擎)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注