内核定时器

时钟中断由系统的定时硬件以周期性的时间间隔产生,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的参数,可配置(50-1200),在X86平台,默认1000

jiffies(unsigned long):每当时钟中断发生一次,全局变量jiffies就加1.因此jiffies记录了自linux启动后时钟中断发生的次数。

unsigned long j=jiffies+jit_delay*HZ; (即增加jit_delay秒)

struct timer_list { 
struct list_head entry; //timer_list结构体链表的头部,内核使用了爱组织成双向链表
unsigned long expires; //用于存放延时结束时间 ,超时的jiffies值
void (*function)(unsigned long); //延时结束时执行的回调函数,注意这里传递一个无符号长整型数字
unsigned long data; //常用于存储数据的指针
struct tvec_base *base; //内核中使用
};

资料链接:

http://blog.csdn.net/iletlet/article/details/6117280 timer_list结构体
http://blog.chinaunix.net/space.php?uid=20543183&do=blog&id=1930794 Linux中断处理之时钟中断
http://blog.chinaunix.net/space.php?uid=20648784 开源Linux
http://blog.csdn.net/iLetLet
http://blog.csdn.net/woniuguilai/article/details/6212018
http://qin8.blog.163.com/blog/static/189699090201091133322816/
http://www.ibm.com/developerworks/cn/linux/l-cn-clocks/index.html 时钟处理机制
http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart=1&vc=1

http://blog168.chinaunix.net/space.php?uid=25014876&do=blog&id=106572 非常棒的总结
http://wenku.baidu.com/view/caefc5f67c1cfad6195fa70d.html

原文地址:https://www.cnblogs.com/moonflow/p/2290385.html