一种定时器实现方法及装置制造方法及图纸

技术编号:4002535 阅读:233 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种定时器实现方法和装置:创建对应有各定时时间的定时器超时桶,各定时器超时桶按定时时间由小到大的顺序依次链接成一链表;若一子定时器的定时周期与一定时器超时桶对应有的定时时间相匹配,则将该子定时器链接到该定时器超时桶中;当定时周期扫描器的扫描时间到达时,定时周期扫描器对定时时间与所述扫描时间相等的定时器超时桶所链接的子定时器进行超时处理。本发明专利技术所述的定时器实现方法和装置,是通过降低某些子定时器的定时准确度,从而避免了某个扫描时间内可能会出现多个子定时器同时执行超时处理的情况,也就降低了CPU的资源占用率,能够实现在降低CPU资源占用率的同时实现定时器的定时功能,并且设计复杂度低。

【技术实现步骤摘要】

本专利技术涉及定时器设计
,特别涉及一种定时器实现方法及装置。技术背景 目前,在嵌入式实时系统开发中,常用的定时器有轮询定时器和分类定时器两种, 下面分别对这两种定时器进行简单介绍。图1给出了现有轮询定时器的设计示意图。如图1所示,在该轮询定时器中有一 个定时周期扫描器和一个子定时器队列,其中,在定时周期扫描器中设置有扫描时间,子定 时器队列中有依次排列的T1、T2、T3、T4等多个子定时器,且子定时器队列中的每一个子定 时器与定时周期扫描器是同时启动的当定时周期扫描器开始扫描时,所有的子定时器开 始进行定时操作。在每个扫描时间到达时,定时周期扫描器都会对子定时器队列中的每个 子定时器进行扫描,即,将扫描时间与子定时器的定时时间相比较,当两者相等时,则视为 子定时器超时,该子定时器会执行相应的超时处理,如响铃等。如果该子定时器为可重置型 定时器,则该子定时器会被重置到子定时器队列中;如果该子定时器为一次性定时器,则该 子定时器会从子定时器队列中被删除。从上述分析可以看出,在轮询定时器中,当在某个扫描时间内有多个子定时器同 时超时时,则这多个子定时器需要同时执行各自对应的超时处理,因此,在某个时刻会造成 中央处理单元(CPU)资源的占用率非常高。然而,在实际应用中,系统中的CPU资源是有限 的,当某个时刻所需的CPU资源超过了系统中有限的CPU资源时,整个系统会崩溃,从而导 致轮询定时器定时功能失效,也就限制了轮询定时器的使用。图2为现有分类定时器的设计示意图。同现有轮询定时器一样,在分类定时器中, 也有一个定时周期扫描器,但与轮询定时器不同的是,在分类定时器中有子定时器队列1、 子定时器队列2、子定时器队列3等多个子定时器队列,这些不同的子定时器队列是将所有 的子定时器依据一定的分类原则而得到的,分类原则不同,得到的子定时器队列也就不同, 图2中给出的是按照定时周期的不同来对所有子定时器进行划分而得到的。在分类定时器 中,定时周期扫描器的扫描过程基本上同轮询定时器,即,当定时周期扫描器开始扫描时, 每个子定时器队列中的每个子定时器都开始进行定时操作,且在每个扫描时间到达时,定 时周期扫描器都会对每个子定时器队列中的每个子定时器进行扫描。在采用分类定时器时,当在某个扫描时间内有多个子定时器同时超时时,也会出 现多个子定时器需要同时执行各自的超时处理,而每个子定时器在执行超时处理时都会占 用系统的CPU资源,由于系统中的CPU资源是有限的,当多个子定时器同时执行超时处理所 需的CPU资源超过了系统中有限的CPU资源时,整个系统会出现崩溃的问题。目前,随着业务支撑系统性能差异及业务需求不同,在业务功能开发中,常常有多 个不同的子定时器同时执行超时处理,而当多个子定时器同时执行超时处理时,采用现有 的各种定时器都可能会出现CPU资源占用率过高而导致系统崩溃的问题,从而导致不能完 成定时器的定时功能。
技术实现思路
有鉴于此,本专利技术提供了一种定时器实现方法,能够在降低CPU资源占用率的情 况下实现定时器的定时功能,而且设计复杂度较低。本专利技术还提供了一种定时器实现装置,能够在降低CPU资源占用率的情况下实现 定时器的定时功能,而且设计复杂度较低。为了达到上述目的,本专利技术提出的技术方案为一种定时器实现方法,应用于具有多个子定时器的定时器装置中,该方法包括以 下步骤创建对应有各定时时间的定时器超时桶,各定时器超时桶按定时时间由小到大的 顺序依次链接成一链表,所述定时时间为定时周期扫描器的最小扫描时间的整数倍;若一子定时器的定时周期与一定时器超时桶对应有的定时时间相匹配,则将该子定时器链接到该定时器超时桶中;当定时周期扫描器的扫描时间到达时,定时周期扫描器对定时时间与所述扫描时 间相等的定时器超时桶所链接的子定时器进行超时处理。一种定时器实现装置,该装置包括创建模块、选择模块和超时处理模块,其中,所述创建模块,用于创建对应有各定时时间的定时器超时桶,各定时器超时桶按 定时时间由小到大的顺序依次链接成一链表,所述定时时间为定时周期扫描器的最小扫描 时间的整数倍;所述选择模块,用于若一子定时器的定时周期与一定时器超时桶对应有的定时时 间相匹配,则将该子定时器链接到该定时器超时桶中;所述超时处理模块,用于当定时周期扫描器的扫描时间到达时,对定时时间与所 述扫描时间相等的定时器超时桶所链接的子定时器进行超时处理。综上所述,本专利技术所采用的定时器实现方法,通过降低某些子定时器的定时准确 度,从而避免了某个扫描时间内可能会出现多个子定时器同时执行超时处理的情况,也就 降低了 CPU的资源占用率,从而能够实现在降低CPU资源占用率的同时实现定时器的定时 功能,并且设计复杂度低。附图说明图1为现有轮询定时器的设计示意图;图2为现有分类定时器的设计示意图;图3为本专利技术所采用的定时器实现装置的设计示意图;图4为本专利技术所采用的定时器实现方法的工作流程图;图5为本专利技术定时器实现装置的结构示意图。具体实施例方式为了解决现有技术中存在的问题,本专利技术提出了一种全新的定时器实现方法和装 置,即通过降低某些子定时器的定时准确度,从而避免了某个扫描时间内可能会出现多个 子定时器同时执行超时处理的情况,也就降低了 CPU的资源占用率;此外,本专利技术还通过减少子定时器的个数来减少多个子定时器同时执行超时处理的可能,进一步地降低了 CPU的 资源占用率;最后,在本专利技术所采用的方法中,定时器超时桶是按照定时时间由小到大的顺 序依次排列的,在某个扫描时间到达时,定时器周期扫描器仅需扫描定时时间与扫描时间 相等的定时器超时桶中的子定时器即可,而无需在每个扫描时间到达时,定时周期扫描器 对所有的子定时器都要进行扫描,从而也降低了设计复杂度。在介绍具体的方案之前,首先介绍一下定时器超时桶和数据池的概念。定时器超 时桶是针对具有不同定时时间的子定时器而建立的数据结构,即,将具有相同定时周期的 子定时器链接入一定时器超时桶;多个定时器超时桶可以相互链接形成链表,即定时器超 时桶链表。在误差允许的范围内,链接于同一定时器超时桶的子定时器的定时周期是相等 的,当定时时间为定时周期扫描器的扫描时间时,其链 接的多个子定时器会执行各自的超 时处理;数据池是一子定时器可允许配置的定时周期的集合,且数据池的个数是与所有定 时器超时桶中的子定时器的个数一一对应的。基于上述介绍,本专利技术所述方案的具体实现包括创建对应有各定时时间的定时器超时桶,各定时器超时桶按定时时间由小到大的 顺序依次链接成一链表,所述定时时间为定时周期扫描器的最小扫描时间的整数倍;若一子定时器的定时周期与一定时器超时桶对应有的定时时间相匹配,则将该子 定时器链接到该定时器超时桶中;当定时周期扫描器的扫描时间到达时,定时周期扫描器对定时时间与所述扫描时 间相等的定时器超时桶所链接的子定时器进行超时处理。为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对 本专利技术作进一步地详细描述。参见图3所述的定时器实现装置的设计示意图。如图3所示,该定时器装置包括 定时周期扫描器和Bctl、Bct2、BCt3、BCt4和Bctx等多个定时器超时桶,其中,每个定时器 超时桶的定时时间都为定时周期扫描器最小扫本文档来自技高网
...

【技术保护点】
一种定时器实现方法,应用于具有多个子定时器的定时器装置中,其特征在于,该方法包括以下步骤:创建对应有各定时时间的定时器超时桶,各定时器超时桶按定时时间由小到大的顺序依次链接成一链表,所述定时时间为定时周期扫描器的最小扫描时间的整数倍;若一子定时器的定时周期与一定时器超时桶对应有的定时时间相匹配,则将该子定时器链接到该定时器超时桶中;当定时周期扫描器的扫描时间到达时,定时周期扫描器对定时时间与所述扫描时间相等的定时器超时桶所链接的子定时器进行超时处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈卫亮
申请(专利权)人:瑞斯康达科技发展股份有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1