一种多核ARM平台下用户态定时器的实现.pdf

一种多核ARM平台下用户态定时器的实现.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

一种多核ARM平台下用户态定时器的实现

喻诗祥;顾乃杰;张旭;曹越

【摘要】在ARM平台下,系统提供的posix-timer误差较大,难以满足实时要求,而

且传统的Linux用户态定时器通过系统调用及信号传递的方式向进程提供定时服

务,当定时器使用规模较大时,进程会在内核态用户态间频繁切换.针对上述问题,提出

并实现一种基于多核ARM平台的新型用户态定时器方案.该方案采用一种新的时

间轮数据结构,通过内核态与用户态共享内存等方式向进程提供服务,避免不必要的

信号传递,有效地缓解频繁状态切换问题.实验结果表明,该方案保持微秒级的定时精

度,定时误差相比posix-timer明显降低.

【期刊名称】《计算机工程》

【年(卷),期】2015(041)001

【总页数】6页(P19-23,30)

【关键词】Linux用户态;定时器;多核;ARM平台;时间轮;共享内存

【作者】喻诗祥;顾乃杰;张旭;曹越

【作者单位】中国科学技术大学计算机科学技术学院,合肥230027;中国科学技术

大学安徽省计算与通信软件重点实验室,合肥230027;中国科学技术大学先进技术

研究院,合肥230027;中国科学技术大学计算机科学技术学院,合肥230027;中国科

学技术大学安徽省计算与通信软件重点实验室,合肥230027;中国科学技术大学先

进技术研究院,合肥230027;中国科学技术大学计算机科学技术学院,合肥230027;

中国科学技术大学安徽省计算与通信软件重点实验室,合肥230027;中国科学技术

大学先进技术研究院,合肥230027;中国科学技术大学计算机科学技术学院,合肥

230027;中国科学技术大学安徽省计算与通信软件重点实验室,合肥230027;中国

科学技术大学先进技术研究院,合肥230027

【正文语种】中文

【中图分类】TP391

定时器作为Linux操作系统提供的一种定时服务机制,被广泛的应用于各种内核及

用户应用程序中,其主要功能是实现一个给定的函数在给定的定时时长用完后被调

用执行。在Linux系统中,定时器分为内核态定时器和用户态定时器。内核态定时

器在内核态被使用,如早期Linux内核提供的低精度经典定时器及后期Linux内核

提供的高精度定时器。用户态定时器由进程在用户态创建使用,一般在内核态定时

器的基础上实现,Linux用户态可以调用的定时器接口有setitimer、alARM系统调

用以及posix-timer接口。

衡量一个定时器系统好坏的主要标准有定时精度和定时误差,所谓定时精度是指定

时器所能进行最小时间的定时操作,定时误差指定时器实际定时时长与预定定时时

长之间的时间差[1-2]。在实时操作系统中,要实现对高精度实时任务的精确控制[3],

保证事件在截止时间之前得到响应,定时器精度及定时误差显得尤为重要。由于

Linux系统具有功能强大、开源、支持多种硬件平台等优势,很多实时操作系统是

在Linux的基础上改造而来[4-5]。本文针对Linux下定时器实现机制的相关工作

及其优缺点进行研究,提出并实现一种基于多核ARM平台的新型用户态定时器机

制。

在早期Linux内核(Linux-2.6.16之前)中,Linux内核定时器的实现是基于系统周

期性时钟中断,系统时钟中断由外部时钟源周期性的发出,时钟中断的频率由内核配

置参数Hz决定。在ARM平台上,Hz一般被配置为128,即每秒128次时钟中断。

针对每个核上的定时器,采用经典时间轮数据结构,即系统根据其粗略到期时间(到期

时刻的jiffies)的远近分类至5个不同的组中,在组内再根据定时器到期的具体到期

时刻将定时器构建为若干个链表,如图1所示。

随着时间的推移,当到期时间较近的组中的所有定时器被处理完之后,再从到期时间

较远的组中将定时器依次前推,重新补足至到期时间较近的组中。早期内核定时器

的精度和误差都与Hz相关,首先,系统在每次时钟中断中对到期定时器进行处理,即

每1/Hz秒处理一次到期定时器,其次,定时器计时单位基于jiffies变量,定时器只能

处理1/Hz秒整数倍的定时操作。如果Hz值设置较小,定时精度只能达到毫秒级别,

不能满足实时应用需求;如果Hz值过大,将使时钟中断更加频繁的产生,减少了处理

文档评论(0)

185****0981 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档