Linux内核定时器

<背景>

a:Linux中,时钟又分为实时时钟和系统时钟。
    实时时钟(硬件时钟):
实时时钟的主要作用是提供计时和产生精确的时钟中断。实时时钟是用来持久存放系统时间的设备,即便系统关闭后,它也可以靠主板上的微型电池提供的电力保持系统的计时。
 
    系统时钟(软时钟):
    (1)保证系统时间的准确性。
    (2)防止进程超额使用CPU
    (3)记录CPU和资源消耗的时间
系统时钟的初始值在系统启动时,通过读取硬件时钟获得,然后由Linux内核来维护。在系统运行中,系统时钟的更新是根据系统启动后的时钟滴答数来更新的。
 
 
<HZ和jiffies>
<>"HZ"计算机中的时钟频率都来自于晶振,晶振的频率很高,使用计数器计数,调整初始值,使得计数器每秒钟产生HZ中断。</>
<>"jiffies"时钟每产生一次中断就加一.</>
<>对于HZ为100的系统,1个jiffes等于10ms(1/100*1000.1s = 1000ms).同理对于HZ为1000的系统,1jiffes仅仅为1ms</>
</HZ和jiffies>
 
<长延时和短延时>
    <>对于一般系统而言,以大于jiffes作为单位的是长延时,以小于jiffes的称为短延时</>
</长延时和短延时>
 
<相关函数>
a:time_after()的功能主要是将目前的jiffies值和请求的超时时间对比,检测移除。类似函数还包括time_before(),time_before_eq().

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

原文地址:https://www.cnblogs.com/big-devil/p/8589966.html