linux内核启动(2)——2.6.内核时钟
2009-09-04 17:08
302 查看
2.6. 内核时钟
现在我们来看看内核时钟。内核时钟常用来为细节函数(时钟处理函数)分派执行时间。主数据结构timer_list定义在include/linux/timer.h文件中:
struct timer_list {
struct list_head list;
unsigned long expires;
unsigned long data;
void (*function)(unsigned long);
volatile int running;
};
list字段用于链接内部链表,操作时由timerlist_lock同步锁保护。expires字段表示了处理函数在以data数据为参数被调用的时间数值。running字段用于SMP机上标识时钟处理函数当前是否运行在其他CPU上。
函数add_timer()和del_timer()用于从链表中增加和删除一个时钟。当时钟终止时,它自动被移出。在时钟被使用之前,它必须被init_timer函数初始化;在其被添加到链表之前,function字段和expires字段必须被设置。
现在我们来看看内核时钟。内核时钟常用来为细节函数(时钟处理函数)分派执行时间。主数据结构timer_list定义在include/linux/timer.h文件中:
struct timer_list {
struct list_head list;
unsigned long expires;
unsigned long data;
void (*function)(unsigned long);
volatile int running;
};
list字段用于链接内部链表,操作时由timerlist_lock同步锁保护。expires字段表示了处理函数在以data数据为参数被调用的时间数值。running字段用于SMP机上标识时钟处理函数当前是否运行在其他CPU上。
函数add_timer()和del_timer()用于从链表中增加和删除一个时钟。当时钟终止时,它自动被移出。在时钟被使用之前,它必须被init_timer函数初始化;在其被添加到链表之前,function字段和expires字段必须被设置。
相关文章推荐
- 内核:Linux2.6内核启动流程学习
- Linux内核源码分析--内核启动之(2)Image内核启动(汇编部分)(Linux-3.0 ARMv7)
- Linux内核分析之三——使用gdb跟踪调试内核从start_kernel到init进程启动
- linux内核分析第三周-跟踪分析Linux内核的启动过程
- Linux内核分析第三周学习博客——跟踪分析Linux内核的启动过程
- Linux内核源码分析--内核启动命令行的传递过程(Linux-3.0 ARMv7)
- Linux内核源码分析--内核启动之(2)Image内核启动(汇编部分)(Linux-3.0 ARMv7) 【转】
- linux内核启动地址,解压缩,内核参数问题探讨【转】
- Linux内核源码分析--内核启动
- Linux2.6内核启动流程学习
- Linux内核 2.4和2.6的进程内核堆栈和task描述符
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Oops在Linux 2.6内核+PowerPC架构下的前世今生
- Linux内核分析------跟踪分析Linux内核的启动过程
- Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7)
- Linux内核 2.4和2.6的进程内核
- 20135239 益西拉姆 linux内核分析 跟踪分析Linux内核的启动过程
- Linux内核分析——跟踪分析Linux内核的启动过程
- linux2.6内核启动流程简述
- Linux内核源码分析--内核启动之(5)Image内核启动(rest_init函数)(Linux-3.0 ARMv7)
- Linux内核设计第三周学习总结 跟踪分析Linux内核的启动过程