CN100570568C - 用于实时操作系统的定时方法和系统 - Google Patents

用于实时操作系统的定时方法和系统 Download PDF

Info

Publication number
CN100570568C
CN100570568C CNB2007100008817A CN200710000881A CN100570568C CN 100570568 C CN100570568 C CN 100570568C CN B2007100008817 A CNB2007100008817 A CN B2007100008817A CN 200710000881 A CN200710000881 A CN 200710000881A CN 100570568 C CN100570568 C CN 100570568C
Authority
CN
China
Prior art keywords
timer
timing
formation
overtime
circulation timing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2007100008817A
Other languages
English (en)
Other versions
CN101221512A (zh
Inventor
王泽民
曹刚
徐立锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB2007100008817A priority Critical patent/CN100570568C/zh
Publication of CN101221512A publication Critical patent/CN101221512A/zh
Application granted granted Critical
Publication of CN100570568C publication Critical patent/CN100570568C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种用于实时操作系统的定时方法和系统。其中,用于实时操作系统的定时方法包括以下步骤:S302,建立用于定时的循环计时队列;S304,当循环计时队列中的未处理的超时定时器的数目大于1时,记录超时定时器在循环计时队列中的位置,并中止由超时定时器进行定时的事件。通过本发明,可以有效提高嵌入式软件定时器的精度,特别是对多个定时器同时超时的情况。

Description

用于实时操作系统的定时方法和系统
技术领域
本发明涉及操作系统领域,更具体地涉及一种用于实时操作系统的定时方法和系统。
背景技术
随着嵌入式实时系统在各个领域的广泛应用,嵌入式软件的开发也受到越来越多的瞩目。而在嵌入式软件开发中,定时器管理功能是对嵌入式软件的实时操作、快速响应影响非常大的一个方面;同时由于嵌入式实时操作系统对定时器的精度要求远远高于通用操作系统,所以如何尽可能地提高实时操作系统的定时管理精度,是嵌入式软件系统需要关注的一个课题。
嵌入式软件的定时器要求准确,及时;而在嵌入式系统中一般都没有方便、现成的软件定时器可以直接使用。因此,嵌入式系统中的定时器一般都通过捕捉实时操作系统(RTOS)的系统嘀嗒(TICK)信号来实现。
目前,嵌入式软件定时器的通用技术方案如图1所示。其他的技术实现同此方案大同小异。
采用若干个(L个)一定长度的数组和循环指针变量组成一个循环计时队列,循环指针变量以循环的方式逐一指向各数组元素;这样,构成一个单循环队列(循环队列长度为L),而这个单循环队列的每个节点又是一个单向的有序队列。
当上层应用程序申请定时器时,首先根据待设定定时器的长度找到循环队列中相应的节点元素的位置(TICK游标+待设定定时器的时长与循环队列长度LOOP_QUE_LENGTH相除的余数);然后再根据待设定定时器的循环因子(待设定定时器时长与L相除所得的商)插入到循环队列该节点上的单向队列中。
在每个计时周期到来时,TICK游标向前走一位,查询该处的链表队列是否为空,如果为空,则不处理;如不为空,则判断该处队列中定时器循环因子值是否为0。如为0,则进行相应的报时操作,并删除该定时器资源;如循环因子值不为0,则将循环因子值减1,然后判断下一个定时器;当上层应用程序不再需要定时器时,从循环队列中删除该定时器资源。
该嵌入式软件定时器通用的技术方案由于直接使用实时操作系统的系统嘀嗒信号来实现,理论上精度可以达到TICK级的误差(TICK的精度由嵌入式系统的硬件确定),一般来说,都是可以满足嵌入式软件定时管理功能的要求的。
但是,这种通用的软件定时器方案对于多个定时器同时超时的精度是无法保证的。比如在时刻1设置一个相对定时器T1,定时器时间为n毫秒;过了1毫秒后,又设置一个相对定时器T2,定时器时间为(n-1)毫秒,以此类推,过了(n-1)毫秒后,设置一个相对定时器T(n-1),定时器时间为1毫秒。这样,在时刻1后n毫秒,同时就有(n-1)个定时器超时。这就需要在一个TICK内处理完这n个超时的定时器:遍历这n个定时器链表,发送超时消息,释放超时的定时器资源(包括对超时定时器数据的处理、对链表节点的删除以及对释放后链表节点的加入),如图2。可见,对每个定时器超时的处理是需要耗费一定的处理时间的(假设为len),很显然,当n大于(一个TICK的时间/len)时,部分定时器的精度就无法保证了。同时,考虑到对定时器资源的释放过程时间较长,而且在定时器超时处理中占用了大部分的处理时间,可以预见,n值不会太大,即多个定时器同时超时时,该方案通常是无法保证定时器的精度的。
对于这种情况,一般的处理方法是:
一、不进行处理。在一个TICK内处理的定时器数目较大时,显示警告,标明对该种情况,嵌入式软件不支持。
二、超过一个TICK内能够处理的定时器阈值数后的超时定时器移到下一个TICK进行处理(如果数目仍然较大,再移到该TICK后的第二个TICK进行处理,依次类推,直到处理结束)。该处理方法可以解决超过阈值数目的超时定时器,但是其精度在原来精度基础上多了一个TICK以上的误差,可能导致定时器精度无法满足嵌入式软件要求。
如何扬长避短,既保持通用软件定时器方案的的高效、可行性等优点,又避免其可能存在的多个定时器同时超时时精度无法保证的缺点是更好利用嵌入式软件定时器的关键。
发明内容
鉴于上述问题,本发明提供了一种用于实时操作系统的定时方法和定时系统,以提高定时器的精度。
根据本发明的一方面,提供了一种用于实时操作系统的定时方法,包括以下步骤:S302,建立用于定时的循环计时队列;S304,当循环计时队列中的未处理的超时定时器的数目大于1时,仅记录超时定时器在循环计时队列中的位置,中止由超时定时器进行定时的事件,暂不进行对超时定时器的资源释放操作。
根据本发明的另一方面,提供了一种用于实时操作系统的定时系统,其包括:定时队列建立装置,用于建立用于定时的循环计时队列;定时事件中止装置,用于当循环计时队列中的未处理的超时定时器的数目大于1时,仅记录超时定时器在循环计时队列中的位置,中止由超时定时器进行定时的事件,暂不进行对超时定时器的资源释放操作。
通过本发明,可以有效提高嵌入式软件定时器的精度,特别是对多个定时器同时超时的情况。而且,本发明对嵌入式软件系统平稳性的影响可以忽略不计,具有很高的可操作性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是通用的定时器管理方案的示意图;
图2是捕捉TICK信号后,一个TICK内需要完成的工作示意图;
图3A至图3D是根据本发明的用于实时操作系统的定时方法及其步骤的流程图;
图4是根据本发明的用于实时操作系统的定时方法的实施例的用于提高嵌入式定时器精度的方法的示意图;
图5是捕捉TICK信号后,根据本发明的用于实时操作系统的定时方法的实施例的定时器的处理流程示意图;
图6是根据本发明的用于实时操作系统的定时方法的实施例的定时器设置流程示意图;
图7是根据本发明的用于实时操作系统的定时方法的实施例的定时器删除流程示意图;以及
图8是根据本发明的用于实时操作系统的定时系统的框图。
具体实施方式
下面参考附图,详细说明本发明的实施方式。
参考图3A至图3D,说明根据本发明的用于实时操作系统的定时方法及其步骤。
如图3A所示,根据本发明的用于实时操作系统的定时方法包括以下步骤:S302,建立用于定时的循环计时队列;S304,当循环计时队列中的未处理的超时定时器的数目大于1时,记录超时定时器在循环计时队列中的位置,并中止由超时定时器进行定时的事件。上述定时方法还可以包括以下步骤:S306,当设置新定时器时,首先检查循环计时队列中是否存在超时定时器,如果存在,则从循环计时队列中删除超时定时器,再将新定时器插入循环计时队列中,否则直接将新定时器插入循环计时队列中。
如图3B所示,步骤S302包括以下步骤:S3022,建立由特定长度的数组和循环指针组成的循环计时队列;S3024,建立用于标记数组和循环指针的位置变量。
如图3C所述,步骤S304包括以下步骤:S3042,当捕捉到嘀哒信号时,判断循环计时队列中的未处理的超时定时器的数目是否大于1;S3044,如果超时定时器的数目不大于1,则从循环计时队列删除超时定时器从而中止由超时定时器进行定时的事件,否则,将超时定时器的位置信息记录在用于标记数组和循环指针的位置变量中,并中止由超时定时器进行定时的事件。
如图3D所示,步骤S306包括以下步骤:S3062,当设置新定时器时,检查用于标记数组和循环指针的位置变量中是否记录有超时定时器的位置信息;S3064,如果记录有超时定时器的位置信息,则首先根据超时定时器的位置信息从循环计时队列的相应位置删除超时定时器,再进行步骤S3066,否则直接进行S3066;S3066,根据新定时器的长度计算新定时器在循环计时队列中的位置,将新定时器插入到循环计时队列中的计算得出的位置中。
其中,特定长度的数组的长度与实时操作系统允许的最大定时器数目相同。在循环计时队列中,循环指针以循环的方式逐一指向特定长度的数组。特定长度的数组是单向有序队列。新定时器在循环计时队列中的位置通过以下方法计算:新定时器的位置=(循环计时队列的起始位置+新定时器的长度与循环计时队列的长度相除的余数)与循环计时队列的长度相除取余。在实时操作系统中止运行时,删除定时方法中建立的循环计时队列和用于标记数组和循环指针的位置变量。
下面说明根据本发明的用于实时操作系统的定时方法的具体实施例。
根据本发明的用于实时操作系统的定时方法的实施例中主要包括以下步骤:
步骤1:建立用于嵌入式软件定时器的由一定长度的数组和循环指针变量组成的循环计时队列。其中,循环指针变量以循环的方式逐一指向各数组元素;这样,构成一个单循环队列,而这个单循环队列的每个节点又是一个单向的有序队列。同时建立记录数组位置(Index)和循环指针头位置(HeaderIdIndex)的变量,将其初始化为空(NULL);建立处理结束标识(HandleOverInd),将其初始化为FALSE。其中,循环队列的结构描述如下:
 typedef struct tagTIMER_QUE
{
    WORD32 dwTimerNum;/*该节点设置的定时器数量 */
    WORD32 HeaderId;/*已设置的定时器队列头 */
    WORD32 LastId;/*已设置的定时器队列尾 */
 }T_TIMER_QUE;
定时器控制块数组需要包括如下信息:
WORD32 dwLoopCounter;/*定时器循环次数   */
WORD32 Pno;          /*进程号           */
WORD32 dwPara;       /*定时器参数       */
WORD32 dwRemainSec;  /*定时器剩余秒数   */
WORD32 TimerId;      /*定时器ID         */
WORD32 PreTimer;     /*前一定时器ID     */
WORD32 NextTimer;    /*后一定时器ID     */
WORD16 wQuePosition; /*循环定时器的位置 */
WORD16 wTimerNo;  /*定时器事件号   */
BYTE   ucType;    /*定时器类型     */
BYTE   ucUseType; /*定时器使用类型 */
如图1所示,循环队列是由长度为L的数组和循环指针变量组成的。循环队列的长度L可考虑如下:
L与系统中最大的定时器数目MAX的大小基本相同,以便当使用的定时器数目接近MAX个时,定时器可以随机均匀地分布到循环队列的各数组元素中,使定时器负载比较均衡;如果L太小容易造成倍数值的减操作过多,效率得不到提高;L太大则浪费存储空间。为了避免在单循环队列中引入繁琐的队列操作,可以适当增大L的值。
步骤2:在每个硬件中断(TICK信号)到达后,TICK游标移动到循环队列中相应的节点,并对节点上的队列进行扫描。如果定时器超时,且超时定时器数目只有一个,则把超时定时器的消息放入超时消息队列,同时删除定时器资源,从单向的有序队列中脱链;如果超时定时器的数目不止一个,且HandleOverInd为FALSE(标明该超时定时器并未进行处理),则仅把对应的多个定时器超时消息放入超时消息队列中,而每个TICK中耗时较大的定时器链表遍历、定时器资源释放暂时不进行处理,从而可以有效节省每个TICK的处理效率,提高同时超时的多个定时器的精度,具体过程如图4所示。也就是说,在超时定时器的数目不止一个,且HandleOverInd为FALSE时,把这些超时定时器的超时消息放入超时消息队列,记录当前超时定时器的数组位置(Index)和循环指针头位置(HeaderIdIndex),处理完后,设置HandleOverInd为TRUE(标明该超时定时器已经进行处理);如果超时定时器的数目不止一个,但HandleOverInd为TRUE,则直接返回,等待进行下一个TICK对定时器的处理,具体过程如图5所示。
步骤3:定时器设置时,首先检查超时定时器的数组位置(Index)和循环指针头位置(HeaderIdIndex)是否为空。如果为空,则根据设置定时器的长度计算其在循环计时队列中的位置,并进行相应的队列插入处理。否则,根据数组位置和循环指针头位置标识的循环计时队列位置,对其所在节点进行资源删除,以及进行从单向的有序队列中脱链的烦琐操作处理,然后再进行定时器的设置,具体过程如图6所示。其中,如图7所示,从循环计时队列删除超时定时器时,在对指定的定时器资源释放后,根据数组位置和循环指针头位置标识的循环计时队列位置,对其所在节点的资源进行遍历、释放,以及从单向的有序队列中脱链的烦琐操作处理。
其中,新定时器在循环队列中的插入位置计算公式如下:
新定时器的插入位置=(当前循环计时队列头位置+新定时器时长与循环队列长度相除的余数)与循环计时队列长度相除取余
其中,在步骤1中,记录数组位置和循环指针头位置的变量,用于在其他适当时候(比如系统空闲,设置定时器,删除定时器时)对定时器资源遍历、释放时定位使用;处理结束标识用于在处理TICK信号时对已经超时,其定时器资源在其他时候释放的节点进行跳过处理,避免重复处理。
其中,在步骤2中,如图4所示,对同时超时的多个定时器处理仅仅是把对应的多个定时器超时消息放入超时消息队列中,而每个TICK中耗时较大的定时器链表遍历、定时器资源释放暂时不进行处理,从而有效的节省了每个TICK的处理效率,提高了同时超时的多个定时器的精度。
设置定时器时是定时器资源释放的最好时机。由于定时器资源直接影响到定时器申请,所以在设置定时器之前首先申请定时器资源,保证定时器的资源能够被顺利申请;并在设置定时器之前将超时定时器删除,以保证对嵌入式系统的影响最小。
在嵌入式软件模块或系统中止运行时,释放定时器循环计时队列和记录数组位置和循环指针头位置的变量。
可见,上述实例中把在TICK信号这一有限时间内需要处理完的操作分成两部分分别进行处理:1)需要立即执行的部分(发送定时器超时消息),在TICK信号处理中进行立即处理;2)可以放到其他时间内处理的部分(对超时定时器所占资源以及所在位置的处理),放到定时器设置和定时器释放时再进行处理。从而有效的提高了多个同时超时定时器的精度,这对于提高嵌入式实时操作系统的快速反应性能是很有裨益的。同时,该方法对现有的技术方案改动很小,不但可以提高嵌入式软件定时器的精度,而且可以节省嵌入式软件定时器的重开发成本和升级成本,在嵌入式软件领域有很大的推广价值和实用价值。
参考图8,说明用于实现根据本发明的用于实时操作系统的定时方法的定时系统。
如图8所示,根据本发明的用于实时操作系统的定时系统包括:定时队列建立装置802,用于建立用于定时的循环计时队列;定时事件中止装置804,用于在循环计时队列中的未处理的超时定时器的数目大于1的情况下,记录超时定时器在循环计时队列中的位置,并中止由超时定时器进行定时的事件。
上述定时系统还可以包括:新定时器设置装置806,用于在需要设置新定时器的情况下,检查循环计时队列中是否存在超时定时器,如果存在,则从循环计时队列中删除超时定时器,再将新定时器插入循环计时队列中,否则直接将新定时器插入循环计时队列中。
其中,定时队列建立装置802包括:队列建立模块8022,用于建立由特定长度的数组和循环指针组成的循环计时队列;变量建立模块8024,用于建立用于标记数组和循环指针的位置变量。
其中,定时事件中止装置804包括:数目判断模块8042,用于在捕捉到嘀哒信号的情况下,判断循环计时队列中的未处理的超时定时器的数目是否大于1;第一定时器删除模块8044,用于在超时定时器的数目不大于1的情况下,从循环计时队列删除超时定时器从而中止由超时定时器进行定时的事件;定时器记录模块8046,用于在超时定时器的数目大于1的情况下,将超时定时器的位置信息记录在用于标记数组和循环指针的位置变量中,并中止由超时定时器进行定时的事件。
其中,新定时器设置装置806包括:定时器检查模块8062,用于在需要设置新定时器的情况下,检查用于标记数组和循环指针的位置变量中是否记录有超时定时器的位置信息;第二定时器删除模块8064,用于在记录有超时定时器的位置信息的情况下,根据超时定时器的位置信息从循环计时队列的相应位置删除超时定时器;定时器插入模块8066,用于根据新定时器的长度计算新定时器在循环计时队列中的位置,将新定时器插入到循环计时队列中的计算得出的位置中。
其中,特定长度的数组的长度与实时操作系统允许的最大定时器数目相同。在循环计时队列中,循环指针以循环的方式逐一指向特定长度的数组。特定长度的数组是单向有序队列。新定时器在循环计时队列中的位置通过以下方法计算:新定时器的位置=(循环计时队列的起始位置+新定时器的长度与循环计时队列的长度相除的余数)与循环计时队列的长度相除取余。
其中,定时器插入模块8066可以包括用于根据所述新定时器的长度计算所述新定时器在所述循环计时队列中的位置的定时器位置计算模块。
在实时操作系统中止运行时,删除定时系统中建立的循环计时队列和用于标记数组和循环指针的位置变量。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (21)

1.一种用于实时操作系统的定时方法,其特征在于包括以下步骤:
S302,建立用于定时的循环计时队列;以及
S304,当所述循环计时队列中的未处理的超时定时器的数目大于1时,仅记录所述超时定时器在所述循环计时队列中的位置,中止由所述超时定时器进行定时的事件,暂不进行对所述超时定时器的资源释放操作。
2.根据权利要求1所述的定时方法,其特征在于,还包括以下步骤:
S306,当设置新定时器时,首先检查所述循环计时队列中是否存在所述超时定时器,如果存在,则从所述循环计时队列中删除所述超时定时器,再将所述新定时器插入所述循环计时队列中,否则直接将所述新定时器插入所述循环计时队列中。
3.根据权利要求2所述的定时方法,其特征在于,所述步骤S302包括以下步骤:
S3022,建立由特定长度的数组和循环指针组成的循环计时队列;
S3024,建立用于标记所述数组和所述循环指针的位置变量。
4.根据权利要求3所述的定时方法,其特征在于,所述步骤S304包括以下步骤:
S3042,当捕捉到嘀哒信号时,判断所述循环计时队列中的未处理的所述超时定时器的数目是否大于1;以及
S3044,如果所述超时定时器的数目不大于1,则从所述循环计时队列删除所述超时定时器从而中止由所述超时定时器进行定时的事件,否则,将所述超时定时器的位置信息记录在用于标记所述数组和所述循环指针的位置变量中,并中止由所述超时定时器进行定时的事件。
5.根据权利要求4所述的定时方法,其特征在于,所述步骤S306包括以下步骤:
S3062,当设置新定时器时,检查用于标记所述数组和所述循环指针的位置变量中是否记录有所述超时定时器的位置信息;
S3064,如果记录有所述超时定时器的位置信息,则首先根据所述超时定时器的位置信息从所述循环计时队列的相应位置删除所述超时定时器,再进行步骤S3066,否则直接进行S3066;以及
S3066,根据所述新定时器的长度计算所述新定时器在所述循环计时队列中的位置,将所述新定时器插入到所述循环计时队列中的计算得出的位置中。
6.根据权利要求5所述的定时方法,其特征在于,所述特定长度的数组的长度与所述实时操作系统允许的最大定时器数目相同。
7.根据权利要求5所述的定时方法,其特征在于,在所述循环计时队列中,所述循环指针以循环的方式逐一指向所述特定长度的数组。
8.根据权利要求7所述的定时方法,其特征在于,所述特定长度的数组是单向有序队列。
9.根据权利要求5所述的定时方法,其特征在于,所述新定时器在所述循环计时队列中的位置通过以下方法计算:新定时器的位置=(循环计时队列的起始位置+新定时器的长度与循环计时队列的长度相除的余数)与循环计时队列的长度相除取余。
10.根据权利要求3至9中的任一项所述的定时方法,其特征在于,在所述实时操作系统中止运行时,删除所述定时方法中建立的所述循环计时队列和用于标记所述数组和所述循环指针的位置变量。
11.一种用于实时操作系统的定时系统,其特征在于包括:
定时队列建立装置,用于建立用于定时的循环计时队列;
定时事件中止装置,用于当所述循环计时队列中的未处理的超时定时器的数目大于1时,仅记录所述超时定时器在所述循环计时队列中的位置,中止由所述超时定时器进行定时的事件,暂不进行对所述超时定时器的资源释放操作。
12.根据权利要求11所述的定时系统,其特征在于,还包括:
新定时器设置装置,用于在需要设置新定时器时,检查所述循环计时队列中是否存在所述超时定时器,如果存在,则从所述循环计时队列中删除所述超时定时器,再将所述新定时器插入所述循环计时队列中,否则直接将所述新定时器插入所述循环计时队列中。
13.根据权利要求12所述的定时系统,其特征在于,所述定时队列建立装置包括:
队列建立模块,用于建立由特定长度的数组和循环指针组成的循环计时队列;以及
变量建立模块,用于建立用于标记所述数组和所述循环指针的位置变量。
14.根据权利要求13所述的定时系统,其特征在于,所述定时事件中止装置包括:
数目判断模块,用于在捕捉到嘀哒信号的情况下,判断所述循环计时队列中的未处理的所述超时定时器的数目是否大于1;
第一定时器删除模块,用于在所述超时定时器的数目不大于1的情况下,从所述循环计时队列删除所述超时定时器从而中止由所述超时定时器进行定时的事件;以及
定时器记录模块,用于在所述超时定时器的数目大于1的情况下,将所述超时定时器的位置信息记录在用于标记所述数组和所述循环指针的位置变量中,并中止由所述超时定时器进行定时的事件。
15.根据权利要求14所述的定时系统,其特征在于,所述新定时器设置装置包括:
定时器检查模块,用于在需要设置新定时器的情况下,检查用于标记所述数组和所述循环指针的位置变量中是否记录有所述超时定时器的位置信息;
第二定时器删除模块,用于在记录有所述超时定时器的位置信息的情况下,根据所述超时定时器的位置信息从所述循环计时队列的相应位置删除所述超时定时器;以及
定时器插入模块,用于根据所述新定时器的长度计算所述新定时器在所述循环计时队列中的位置,将所述新定时器插入到所述循环计时队列中的计算得出的位置中。
16.根据权利要求15所述的定时系统,其特征在于,所述特定长度的数组的长度与所述实时操作系统允许的最大定时器数目相同。
17.根据权利要求15所述的定时系统,其特征在于,在所述循环计时队列中,所述循环指针以循环的方式逐一指向所述特定长度的数组。
18.根据权利要求17所述的定时系统,其特征在于,所述特定长度的数组是单向有序队列。
19.根据权利要求15所述的定时系统,其特征在于,所述新定时器在所述循环计时队列中的位置通过以下方法计算:新定时器的位置=(循环计时队列的起始位置+新定时器的长度与循环计时队列的长度相除的余数)与循环计时队列的长度相除取余。
20.根据权利要求15所述的定时系统,其特征在于,所述定时器插入模块包括用于根据所述新定时器的长度计算所述新定时器在所述循环计时队列中的位置的定时器位置计算模块。
21.根据权利要求13至20中的任一项所述的定时系统,其特征在于,在所述实时操作系统中止运行时,删除所述定时系统中建立的所述循环计时队列和用于标记所述数组和所述循环指针的位置变量。
CNB2007100008817A 2007-01-12 2007-01-12 用于实时操作系统的定时方法和系统 Active CN100570568C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2007100008817A CN100570568C (zh) 2007-01-12 2007-01-12 用于实时操作系统的定时方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100008817A CN100570568C (zh) 2007-01-12 2007-01-12 用于实时操作系统的定时方法和系统

Publications (2)

Publication Number Publication Date
CN101221512A CN101221512A (zh) 2008-07-16
CN100570568C true CN100570568C (zh) 2009-12-16

Family

ID=39631372

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100008817A Active CN100570568C (zh) 2007-01-12 2007-01-12 用于实时操作系统的定时方法和系统

Country Status (1)

Country Link
CN (1) CN100570568C (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645024B (zh) * 2009-08-21 2012-09-19 无锡威泰迅电力科技有限公司 环形推进定时器调度方法
CN103034480B (zh) * 2011-09-30 2016-01-20 重庆重邮信科通信技术有限公司 一种嵌入式系统定时器实现方法
CN103473071B (zh) * 2013-09-24 2016-05-11 深圳市路通网络技术有限公司 软件定时器的实现方法和系统
CN106293884B (zh) * 2015-05-20 2019-06-07 苏州简约纳电子有限公司 一种消息驱动系统中无效超时消息的检测方法
CN106406997B (zh) * 2016-09-20 2020-03-06 新华三技术有限公司 一种定时器调度方法和装置
CN109104326B (zh) * 2018-06-05 2021-08-20 创新先进技术有限公司 超时处理方法及装置和电子设备
CN108845872B (zh) * 2018-06-21 2021-02-02 武汉虹信科技发展有限责任公司 一种用于嵌入式系统的软件定时器实现方法
CN109284189A (zh) * 2018-09-06 2019-01-29 福建星瑞格软件有限公司 一种批量任务超时高效触发方法及系统

Also Published As

Publication number Publication date
CN101221512A (zh) 2008-07-16

Similar Documents

Publication Publication Date Title
CN100570568C (zh) 用于实时操作系统的定时方法和系统
CN100412865C (zh) 效率得到提高的读取-复制更新系统和方法
CN101305551A (zh) 用于通信系统中的分布式工作流的构造和执行的方法
WO2005096746B1 (en) Data storage for distributed sensor networks
CN101217571A (zh) 用于多副本数据网格系统中的写/读文件操作的方法
CN103678337A (zh) 数据清除方法、装置及系统
CN110750372B (zh) 基于共享内存的日志系统及日志管理方法
CN106325984A (zh) 一种大数据任务调度装置
CN111211585B (zh) 充电设备分配方法及终端设备
CN110209736A (zh) 区块链数据处理的装置、方法及存储介质
CN101477386A (zh) 一种定时器实现方法和装置
CN114546795A (zh) 内存泄露检测方法、电子设备和计算机可读存储介质
US20040172628A1 (en) Method and system for installing program in parallel computer system
CN102541750A (zh) 数据快照的实现方法和装置
KR101666440B1 (ko) 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법
CN102209016A (zh) 一种数据处理方法、装置和数据处理系统
CN102073690A (zh) 一种支持历史Key信息的内存数据库
CN110007860A (zh) 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置
CN109088782A (zh) 分布式系统的日志收集方法及装置
CN109003432A (zh) 基于电力线载波通信系统的信息抄读方法
CN108959614A (zh) 一种快照管理方法、系统、装置、设备及可读存储介质
CN112667371A (zh) 异步任务的处理方法、装置、设备及存储介质
CN105045542B (zh) 一种实现快照管理的方法及装置
CN101502149B (zh) 一种可自动完成自定义操作的网络管理系统及其实现方法
CN101158976A (zh) 一种数据库记录查询预处理的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant