定时器管理系统及方法技术方案

技术编号:8022764 阅读:194 留言:0更新日期:2012-11-29 04:58
本发明专利技术提供了一种定时器管理系统,包括定时器注册表、定时器注销表、注册集合、以及定时器扫描单元;所述定时器注册表的每一表项包括绝对扫描频率记数和注册集合地址;每一所述注册集合包括定时器ID;所述定时器注销表的每一表项包括定时器ID以及注册集合地址;所述定时器扫描单元,用于在所述定时器注册表中绝对扫描频率记数最小的表项中的绝对扫描频率记数与当前扫描计数相等时,根据所述表项的注册集合地址获取对应的注册集合并向该注册集合中每个定时器ID相关联的定时器发出超时通知。本发明专利技术还提供一种对应的定时器管理方法。本发明专利技术通过绝对扫描频率记数对定时器进行扫描匹配,在大规模定时器注册、注销及扫描都具有极高的效率。

【技术实现步骤摘要】
定时器管理系统及方法
本专利技术涉及定时器,更具体地说,涉及一种基于操作系统的定时器管理系统。
技术介绍
定时器目前已经广泛应用于各个领域。例如,定时器是通信协议正常运行的基本要素之一,用于各种定时和帧重传的任务。现有的定时器几乎无一例外地使用了“相对时间”的概念,即相对于当前时间,定时器的“剩余时间”还有多少,如果为0则表明定时器已经超时,并发出超时通知。现有较常用的定时器大多采用时间轮算法、定时器队列算法等。例如某一时刻存在四个已注册的定时器,它们的剩余时间分别为:8、10、15、18,则使用时间轮(假设采用8格一轮)算法的定时器结构如图1所示,使用定时器队列算法的定时器结构如图2所示。时间轮算法采用的数据结构是哈希表,轮的格数即为哈希桶的个数,哈希函数即使用剩余时间对哈希桶的个数求模,相应的商即表示定时器要在轮转过这么多圈之后才超时。定时器队列算法采用的数据结构是双向链表,以方便在任何节点之前进行插入操作。每次注册定时器需要从队头开始进行剩余时间的累加,直到累加时间超出本定时器的定时时长,这时可计算出本定时器的相对剩余时间,并插入到当前节点之前。当出现大规模问题时,时间轮算法和定时器队列算法很难在定时器注册、注销和扫描这三个重要的操作之间取得令人满意的效率。下面是它们的算法时间复杂度分析:(n表示问题规模,m表示时间轮算法的哈希桶个数)算法\操作注册注销扫描时间轮算法O(1)O(n+m)O(n/m)定时器队列算法O(n)O(n)O(1)由上表可知时间轮算法具有很高的注册效率,但却有很低的注销效率,更进一步,其扫描效率与注销效率具有负相关性,并且一旦m固定,扫描效率与问题规模n线性相关。定时器队列算法具有很高的扫描效率,但注册和注销效率与问题规模线性相关。
技术实现思路
本专利技术要解决的技术问题在于,针对上述定时器管理方案中注册、注销及扫描效率无法兼顾的问题,提供一种基于操作系统的定时器及其实现方法。本专利技术解决上述技术问题的技术方案是,提供一种定时器管理系统,包括定时器注册单元、定时器注销单元以及定时器扫描单元;所述定时器注册单元,用于在接收到包含定时器ID的定时器注册请求时,计算绝对扫描频率记数并查找所述定时器注册表,所述定时器注册表的每一表项包括绝对扫描频率记数和注册集合地址,所述绝对扫描频率记数为当前扫描计数与定时时长之和;每一所述注册集合包括定时器ID;所述定时器注销单元,用于在接收到包含定时器ID的定时器注销请求时,从所述定时器注销表中获取包含所述定时器ID的表项并从与该表项对应的注册集合中删除所述定时器ID,然后将所述表项从定时器注销表中删除,所述定时器注销表的每一表项包括定时器ID以及注册集合地址;所述定时器扫描单元,用于在所述定时器注册表中绝对扫描频率记数最小的表项中的绝对扫描频率记数与当前扫描计数相等时,根据所述表项的注册集合地址获取对应的注册集合并向该注册集合中每个定时器ID相关联的定时器发出超时通知;所述定时器扫描单元在发出超时通知后从所述定时器注销表中删除所有包含所述定时器ID的表项,销毁上述注册集合,并从所述定时器注册表中删除所述绝对扫描频率记数最小的表项;所述定时器注册单元在所述定时器注册表中存在与所述绝对扫描频率记数对应的表项时,则将所述定时器ID插入所述与绝对扫描频率记数对应的表项指向的注册集合,同时在所述定时器注销表中插入包括所述定时器ID及注册集合地址的表项;在所述定时器注册表中不存在与所述绝对扫描频率记数对应的表项,则创建注册集合并将所述定时器ID插入该注册集合,同时在所述定时器注册表中插入包含所述绝对扫描频率记数及注册集合地址的表项,并在所述定时器注销表中插入包括所述定时器ID及注册集合地址的表项。在本专利技术所述的定时器管理系统中,所述定时器注册表以绝对扫描频率记数为键,所述定时器注销表以定时器ID为键,所述定时器注册表、定时器注销表中的表项按键有序并采用红黑树实现,所述定时器扫描单元对所有注册的定时器按超时通知时间进行有序插入。本专利技术还提供一种定时器管理方法,包括以下步骤:(a)从定时器注册表获取绝对扫描频率记数最小的表项,所述定时器注册表的每一表项包括绝对扫描频率记数和注册集合地址,所述绝对扫描频率记数为当前扫描计数与定时时长之和;(b)判断所述表项中的绝对扫描频率记数与当前扫描计数是否相等,若相等则执行步骤(c);(c)根据所述表项的注册集合地址获取对应的注册集合,所述注册集合包括定时器ID,并向该注册集合中每个定时器ID相关联的定时器发出超时通知;所述方法还包括:在接收到包含定时器ID的定时器注册请求时,计算绝对扫描频率记数并查找所述定时器注册表;在接收到包含定时器ID的定时器注销请求时,从所述定时器注销表中获取包含所述定时器ID的表项并从与该表项对应的注册集合中删除所述定时器ID,然后将所述表项从定时器注销表中删除;所述步骤(c)之后还包括:从所述定时器注销表中删除所有包含所述定时器ID的表项,销毁上述注册集合,并从所述定时器注册表中删除所述绝对扫描频率记数最小的表项,所述定时器注销表的每一表项包括定时器ID以及注册集合地址;所述方法还包括:若所述定时器注册表中存在与所述绝对扫描频率记数对应的表项,则将所述定时器ID插入所述与绝对扫描频率记数对应的表项指向的注册集合,并在所述定时器注销表中插入包括所述定时器ID及注册集合地址的表项;若所述定时器注册表中不存在与所述绝对扫描频率记数对应的表项,则创建注册集合并将所述定时器ID插入该注册集合,同时在所述定时器注册表中插入包含所述绝对扫描频率记数及注册集合地址的表项,并在所述定时器注销表中插入包括所述定时器ID及注册集合地址的表项。在本专利技术所述的定时器管理方法中,所述定时器注册表以绝对扫描频率记数为键,所述定时器注销表以定时器ID为键,所述定时器注册表、定时器注销表中的表项按键有序并采用红黑树实现,所述定时器扫描单元对所有注册的定时器按超时通知时间进行有序插入。本专利技术的定时器管理系统及方法,通过绝对扫描频率记数对定时器进行扫描匹配,在大规模定时器注册、注销及扫描都具有极高的效率。附图说明图1是现有采用时间轮算法的定时器的示意图。图2是现有采用定时器队列算法的定时器的示意图。图3是本专利技术定时器管理系统第一实施例的示意图。图4是本专利技术定时器管理系统第二实施例的示意图。图5是图4中定时器管理系统工作原理的示意图。图6是本专利技术定时器管理方法实施例的流程图。图7是本专利技术定时器管理方法中定时器注册的流程图。图8是本专利技术定时器管理方法中定时器注销的流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图3所示,是本专利技术定时器管理系统第一实施例的示意图。在本实施例中,定时器管理系统包括定时器注册表31、定时器注销表33、注册集合32以及定时器扫描单元34。上述的定时器注册表31、定时器注销表33的数据结构为关联数组。注册集合32的数据结构为集合,可包括相互独立的多个。定时器注册表31包括多个表项且每一表项包括绝对扫描频率记数和注册集合地址,绝对扫描频率记数为当前扫描计数与定时时长之和本文档来自技高网
...
定时器管理系统及方法

【技术保护点】
一种定时器管理系统,其特征在于:包括定时器注册表、定时器注销表、注册集合、以及定时器扫描单元;所述定时器注册表的每一表项包括绝对扫描频率记数和注册集合地址,所述绝对扫描频率记数为当前扫描计数与定时时长之和;每一所述注册集合包括定时器ID;所述定时器注销表的每一表项包括定时器ID以及注册集合地址;所述定时器扫描单元,用于在所述定时器注册表中绝对扫描频率记数最小的表项中的绝对扫描频率记数与当前扫描计数相等时,根据所述表项的注册集合地址获取对应的注册集合并向该注册集合中每个定时器ID相关联的定时器发出超时通知。

【技术特征摘要】
1.一种定时器管理系统,其特征在于:包括定时器注册单元、定时器注销单元以及定时器扫描单元;所述定时器注册单元,用于在接收到包含定时器ID的定时器注册请求时,计算绝对扫描频率记数并查找定时器注册表,所述定时器注册表的每一表项包括绝对扫描频率记数和注册集合地址,所述绝对扫描频率记数为当前扫描计数与定时时长之和;每一所述注册集合包括定时器ID;所述定时器注销单元,用于在接收到包含定时器ID的定时器注销请求时,从所述定时器注销表中获取包含所述定时器ID的表项并从与该表项对应的注册集合中删除所述定时器ID,然后将所述表项从定时器注销表中删除,所述定时器注销表的每一表项包括定时器ID以及注册集合地址;所述定时器扫描单元,用于在所述定时器注册表中绝对扫描频率记数最小的表项中的绝对扫描频率记数与当前扫描计数相等时,根据所述表项的注册集合地址获取对应的注册集合并向该注册集合中每个定时器ID相关联的定时器发出超时通知;所述定时器扫描单元在发出超时通知后从所述定时器注销表中删除所有包含所述定时器ID的表项,销毁上述注册集合,并从所述定时器注册表中删除所述绝对扫描频率记数最小的表项;所述定时器注册单元在所述定时器注册表中存在与所述绝对扫描频率记数对应的表项时,则将所述定时器ID插入所述与绝对扫描频率记数对应的表项指向的注册集合,同时在所述定时器注销表中插入包括所述定时器ID及注册集合地址的表项;在所述定时器注册表中不存在与所述绝对扫描频率记数对应的表项,则创建注册集合并将所述定时器ID插入该注册集合,同时在所述定时器注册表中插入包含所述绝对扫描频率记数及注册集合地址的表项,并在所述定时器注销表中插入包括所述定时器ID及注册集合地址的表项。2.根据权利要求1所述的定时器管理系统,其特征在于:所述定时器注册表以绝对扫描频率记数为键,所述定时器注销表以定时器ID为键,所述定时器注册表、定时器注销表中的表项按键有序并采用红黑树实现,所述定时器扫描单元对所有注册的定时器按...

【专利技术属性】
技术研发人员:丘锋伟
申请(专利权)人:深圳市汇川控制技术有限公司深圳市汇川技术股份有限公司苏州汇川技术有限公司
类型:发明
国别省市:

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

1