2017/4/27
Linux时间子系统之五:低分辨率定时器的原理和实现DroidPhone的专栏博客频道CSDN.NET
http://blog.csdn.net/droidphone/article/details/8051405 1/8
分类:
目录(?)
[+]
【活
动
】Python
创
意
编
程活
动
开始啦!!!CSDN日报2017042 5——《私活,是对技术达人最好的点赞》【CSDN日
报
】|
3.184.18上榜作者排行出炉
Linux时间子系统之五:低分辨率定时器的原理和实现
2012101300:21 13912人阅读 评论(2) 收藏 举报
版权声明:本文为博主原创文章,未经博主允许不得转载。
利用定时器,我们可以设定在未来的某一时刻,触发一个特定的事件。所谓低分辨率定时器,是指这种定时器的计
时单位基于jiffies值的计数,也就是说,它的精度只有1/HZ,假如你的内核配置的HZ是1000,那意味着系统中的低
分辨率定时器的精度就是1ms。早期的内核版本中,内核并不支持高精度定时器,理所当然只能使用这种低分辨率
定时器,我们有时候把这种基于HZ的定时器机制成为时间轮:timewheel。虽然后来出现了高分辨率定时器,但它
只是内核的一个可选配置项,所以直到目前最新的内核版本,这种低分辨率定时器依然被大量地使用着。
/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.NET/droidphone原创,转载请注明出处,谢谢!
/*****************************************************************************************************/
1.定
时
器的使用方法
在讨论定时器的实现原理之前,我们先看看如何使用定时器。要在内核编程中使用定时器,首先我们要定义一个
time_list结构,该结构在includ e/Linux/timer.h中定义:
entry字段用于把一组定时器组成一个链表,至于内核如何对定时器进行分组,我们会在后面进行解释。
expires 字段指出了该定时器的到期时刻,也就是期望定时器到期时刻的jiffies计数值。
base每个cpu拥有一个自己的用于管理定时器的tvec_base结构,该字段指向该定时器所属的cpu所对应tvec_base
结构。
function 字段是一个函数指针,定时器到期时,系统将会调用该回调函数,用于响应该定时器的到期事件。
原创: 转载:
译文: 评论:
展开
个人
资
料
DroidPhone
访问:
积分:
等级:
排名:
文章搜索
文章分类
移动开发之Android
Linux内核架构
Linux设备驱动
Linux电源管理
Linux音频子系统
Linux中断子系统
Linux时间管理系统
Linux输入子系统
文章存档
2014年07月
2014年04月
2013年11月
2013年10月
2013年07月
阅
读
排行
LinuxALSA声卡驱动之一:ALSA架构简介
AndroidAudioSystem之一:AudioTrack如何与AudioFlinger交换音频数据
LinuxALSA声卡驱动之三:PCM设备的创建
AndroidAudioSystem之三:AudioPolicyService和AudioPolicyManager
欢迎各位大虾交流,本人联系方式:droid.phx@gmail.com
目录视图 摘要视图 订阅
登录|注册
Linux时间管理系统(7) Linux内核架构(14)
[cpp]
01. structtimer_list{
02. /*
03. *Allfieldsthatchangeduringnormalruntimegroupedtothe
04. *samecacheline
05. */
06. structlist_headentry;
07. unsignedlongexpires;
08. structtvec_base*base;
09.
10. void(*function)(unsignedlong);
11. unsignedlongdata;
12.
13. intslack;
14. ......
15. };
1251849次
9517
第1606名
51篇 0篇
4篇 555条
(11)
(15)
(20)
(3)
(15)
(5)
(8)
(4)
(1)
(4)
(4)
(3)
(3)
(87756)
(61776)
(52760)
(46894)