2021-10-24

11.定时器和时间管理

内核中的时间概念

系统定时器被用来计算流逝的时间,系统定时器以某种频率自行触发(击中/射中)时钟中断,该频率可以编程修改,叫做节拍率
节拍是两次中断间隔的时间,为1/节拍率秒,墙上时间(实际时间)
时间中断周期中执行的操作

  • 更新系统运行时间
  • 在SMP系统上,均衡调度处理程序各处理器上的运行队列负载
  • 检查当前进程是否用尽了自己的时间片
  • 更新资源消耗和处理器时间的统计值

理想的HZ值

不同体系结构拥有默认节拍率,提高节拍率时:

  • 时钟中断更加频繁
  • 提高时钟中断解析度
  • 时间驱动事件的精度提高
  • 提高系统负担,频繁陷入时钟中断
    无节拍的OS:如果一段时间内无事可做,就延长时钟中断频率,这样可以减少系统损失的能耗

jiffies

这个全局变量用来记录系统启动以来产生的节拍的总数,unsigned long类型,64位的jiffies变量永远不可能溢出,因此一般只取变量的后32位,jiffies回绕是指变量溢出后会自动回到0值

实时时钟

实时时钟(RTC)在系统关闭后可以通过主板上的微型电池提供的电力确保系统的计时,内核读取RTC来初始化墙上时间,存放在xtime变量中。

系统定时器

可编程中断时钟(PIT)在内核定时机制中很重要,采用周期性触发中断机制,有些体系结构利用衰减测量器或电子晶振分频实现

11.5 时钟中断处理程序