全局变量jiffies用来记录自系统启动以来产生的节拍的总数。
启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序就会增加该变量的值。
因为一秒内时钟中断的次数等于HZ, 所以jiffies一秒内增加的值也就为HZ。
系统运行时间以秒为单位计算的话,就等于 jiffies/HZ。
Jiffies定义于文件<linux/jiffies.h>中:
Externunsigned long volatile jiffies;
将以秒为单位的时间转化为jiffies:(seconds*HZ)
将jiffies转换为以秒为单位的时间:jiffies/HZ
比较而言,内核中将秒转换为jiffies用的多一些,比如代码经常需要设置一些将来的时间:
Unsigned long time_stamp = jiffies; /*现在*/
Unsigned long time_stamp = jiffies+1; /*从现在开始1个节拍*/
Unsigned long time_stamp = jiffies+5*HZ; /*从现在5秒*/
Unsigned long time_stamp = jiffies+HZ/10; /*从现在开始1/10秒*/