[发明专利]一种定时器实现方法及装置有效
申请号: | 201010180908.7 | 申请日: | 2010-05-18 |
公开(公告)号: | CN101853047A | 公开(公告)日: | 2010-10-06 |
发明(设计)人: | 陈卫亮 | 申请(专利权)人: | 瑞斯康达科技发展股份有限公司 |
主分类号: | G06F1/04 | 分类号: | G06F1/04 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 谢安昆;宋志强 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 定时器 实现 方法 装置 | ||
技术领域
本发明涉及定时器设计技术领域,特别涉及一种定时器实现方法及装置。
背景技术
目前,在嵌入式实时系统开发中,常用的定时器有轮询定时器和分类定时器两种,下面分别对这两种定时器进行简单介绍。
图1给出了现有轮询定时器的设计示意图。如图1所示,在该轮询定时器中有一个定时周期扫描器和一个子定时器队列,其中,在定时周期扫描器中设置有扫描时间,子定时器队列中有依次排列的T1、T2、T3、T4等多个子定时器,且子定时器队列中的每一个子定时器与定时周期扫描器是同时启动的:当定时周期扫描器开始扫描时,所有的子定时器开始进行定时操作。在每个扫描时间到达时,定时周期扫描器都会对子定时器队列中的每个子定时器进行扫描,即,将扫描时间与子定时器的定时时间相比较,当两者相等时,则视为子定时器超时,该子定时器会执行相应的超时处理,如响铃等。如果该子定时器为可重置型定时器,则该子定时器会被重置到子定时器队列中;如果该子定时器为一次性定时器,则该子定时器会从子定时器队列中被删除。
从上述分析可以看出,在轮询定时器中,当在某个扫描时间内有多个子定时器同时超时时,则这多个子定时器需要同时执行各自对应的超时处理,因此,在某个时刻会造成中央处理单元(CPU)资源的占用率非常高。然而,在实际应用中,系统中的CPU资源是有限的,当某个时刻所需的CPU资源超过了系统中有限的CPU资源时,整个系统会崩溃,从而导致轮询定时器定时功能失效,也就限制了轮询定时器的使用。
图2为现有分类定时器的设计示意图。同现有轮询定时器一样,在分类定时器中,也有一个定时周期扫描器,但与轮询定时器不同的是,在分类定时器中有子定时器队列1、子定时器队列2、子定时器队列3等多个子定时器队列,这些不同的子定时器队列是将所有的子定时器依据一定的分类原则而得到的,分类原则不同,得到的子定时器队列也就不同,图2中给出的是按照定时周期的不同来对所有子定时器进行划分而得到的。在分类定时器中,定时周期扫描器的扫描过程基本上同轮询定时器,即,当定时周期扫描器开始扫描时,每个子定时器队列中的每个子定时器都开始进行定时操作,且在每个扫描时间到达时,定时周期扫描器都会对每个子定时器队列中的每个子定时器进行扫描。
在采用分类定时器时,当在某个扫描时间内有多个子定时器同时超时时,也会出现多个子定时器需要同时执行各自的超时处理,而每个子定时器在执行超时处理时都会占用系统的CPU资源,由于系统中的CPU资源是有限的,当多个子定时器同时执行超时处理所需的CPU资源超过了系统中有限的CPU资源时,整个系统会出现崩溃的问题。
目前,随着业务支撑系统性能差异及业务需求不同,在业务功能开发中,常常有多个不同的子定时器同时执行超时处理,而当多个子定时器同时执行超时处理时,采用现有的各种定时器都可能会出现CPU资源占用率过高而导致系统崩溃的问题,从而导致不能完成定时器的定时功能。
发明内容
有鉴于此,本发明提供了一种定时器实现方法,能够在降低CPU资源占用率的情况下实现定时器的定时功能,而且设计复杂度较低。
本发明还提供了一种定时器实现装置,能够在降低CPU资源占用率的情况下实现定时器的定时功能,而且设计复杂度较低。
为了达到上述目的,本发明提出的技术方案为:
一种定时器实现方法,应用于具有多个子定时器的定时器装置中,该方法包括以下步骤:
创建对应有各定时时间的定时器超时桶,各定时器超时桶按定时时间由小到大的顺序依次链接成一链表,所述定时时间为定时周期扫描器的最小扫描时间的整数倍;
若一子定时器的定时周期与一定时器超时桶对应有的定时时间相匹配,则将该子定时器链接到该定时器超时桶中;
当定时周期扫描器的扫描时间到达时,定时周期扫描器对定时时间与所述扫描时间相等的定时器超时桶所链接的子定时器进行超时处理。
一种定时器实现装置,该装置包括:创建模块、选择模块和超时处理模块,其中,
所述创建模块,用于创建对应有各定时时间的定时器超时桶,各定时器超时桶按定时时间由小到大的顺序依次链接成一链表,所述定时时间为定时周期扫描器的最小扫描时间的整数倍;
所述选择模块,用于若一子定时器的定时周期与一定时器超时桶对应有的定时时间相匹配,则将该子定时器链接到该定时器超时桶中;
所述超时处理模块,用于当定时周期扫描器的扫描时间到达时,对定时时间与所述扫描时间相等的定时器超时桶所链接的子定时器进行超时处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于瑞斯康达科技发展股份有限公司,未经瑞斯康达科技发展股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010180908.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:整合风扇的主机板
- 下一篇:基于传感器网络的污水曝气监控系统