Linux kernel之内核定时器
内核定时器 (也称为动态定时器)是内核在以后某一个时刻运行一段程序或进程的基础,软件定时器可以在一个确切的时间点上(更严格地说是一个时间点以后)激活相应的程序段或进程。软件定时器在设备驱动程序中被大量应用以检测设备的状态。
使用一个软件定时器很简单,只需做一些初始化工作,设置一个相对于当前时刻的超时时间和超时处理函数,将其插入到内核定时器队列中即可,设置的超时处理函数会在定时器超时时自动运行。下面介绍如何使用内核定时器和实现内核定时器的内部架构。
?
1.内核定时器的使用方法
内核定时器由数据结构timer_list表示,该结构表示了一个待处理的延迟任务,我们称该数据结构为内核定时器节点。该数据结构的详细内容请看下面的代码清单。
代码清单--数据结构timer_list
功能简介:该数据结构保存了内核定时器节点的相关信息,包括定时器超时时间和超时处理函数等。
?
?内核定时器架构示意图