深入理解Linux内核-定时测量

 

定时测量:由基于固定频率振荡器和计数器的几个硬件电路完成的。



记时体系概貌:

内核中与时间相关的任务:



硬件设备:
实时时钟(RTC):1、Real Time Clock ,独立于CPU和所有芯片,每个PC都有。
         2、它有专门的电池,不受PC电源断电影响。
         3、能在IRQ8上门发周期性的中断,频率为2-8192Hz
4、可编程

时间戳计数器(TSC):1、Time Stamp Counter 收到时钟信号加一
2、时钟信号的频率,如果是1GHz,时间戳计数器美纳秒加一。

可编程间隔定时器(PIT):1、Programmable Interval Timer
2、通常是使用0x40~0x43 I/O端口的一个8354CMOS芯片
3、通过发出 时钟中断来通知内核又一个时间间隔过去了。
4、永远以固定对频率发送中断
        
CPU本地定时器:有APIC提供,APIC(32bit),PIC(16bit);可以对本地定时器编程产生很低频率的中断
        本地APIC定时器把中断只发送给自己的处理器,而PIT产生全局性中断,任何CPU都可以对其进行处理。
        APIC定时器基于时钟信号;PIT基于内部时钟振荡。

高精度事件定时器(HPET):

Linux 记时体系结构:

内核会周期性的执行与定时 相关的操作:
  1、更新自系统启动以来所经过的时间
  2、更新时间和日期
  3、确定当前进程在每个CPU上面已经运行了多长时间,如果超过了分配给他的时间片,则抢占它。
  4、更新系统资源使用统计数
  5、检查每个软定时器的时间间隔是否已经达到。

 

posted @ 2015-07-25 17:46  lipeil  阅读(470)  评论(0编辑  收藏  举报