操作系统中的时钟控制方法

文档序号:6285645阅读:536来源:国知局
专利名称:操作系统中的时钟控制方法
技术领域
本发明涉及通信领域、自动化和控制领域等,具体涉及操作系统中的时钟控制方法。
背景技术
在实时系统中,操作系统设计的好坏对一个系统的运转起关键的作用。在操作系统的核心内容——调度控制、内存控制、中断控制、时钟控制、通讯控制中,时钟控制起了非常重要的作用。在一个实时系统中,对时钟的设定、取消是一个很频繁的操作,在对时钟控制准确性要求的同时,还要求时钟控制的高效性。
传统时钟控制采用了一个定时队列的控制方式,在设置定时时,要根据当前用户设定的定时长度到队列中找到自己所在的位置。它必须从第一个定时器开始,检查该定时器的设定时间值,如果比自己设定的时间短,则继续查找下一个定时器,下一个定时器的设定时间值加上前面的定时器的设定时间值和再同用户设定的定时时长相比较。如此反复,直至前面定时器的设定时间和大于用户设置的时长,才将该定时器插入队列中,同时要修改自己和在自己后面的一个定时器的设定时间值。
如果在一个频繁的进行定时操作的实时系统,例如交换机中,有1000用户同时打电话,从主叫摘机到通话后挂机释放,至少要进行5次定时器设定、取消的操作,那么就可能同时有上千个定时器须同时设定。按照传统定时器控制的方式,所消耗的时间和占用的系统资源将非常可观。
因此,传统的时钟控制不能提供一个高效率的时钟控制方法。

发明内容
本发明的目的在于提出一种操作系统中的时钟控制方法,用于多时钟的控制和管理,既能保障时钟控制的高效性,又能保障时钟控制的准确性,特别是在对时钟操作频繁的实时系统中,高效性和准确性更加明显。
本发明的目的是这样实现的本发明公开了一种操作系统中的时钟控制方法,用于对多时钟控制队列进行处理,该方法包括定时的中断处理,用于完成定时器的定时时长的减1操作及准备超时消息的产生;定时器的设置与取消,分别用于完成将定时器挂入定时队列和取出;超时消息调度,供系统调度使用的,用于产生超时消息;在所述定时的中断处理、定时器的设置与取消、超时消息调度中均包含有多时钟控制队列处理,其处理过程至少包括不同队列完成不同定时时长的处理,每个定时队列只完成固定时长的定时,在队列控制头中用剩余时间这一变量来记录队列中所有定时器的剩余时间之和,新的定时器挂入相应队列的队尾时,无需查找它队列中在它前面的所有定时器的剩余时间之和。
所述多时钟控制队列主要包含以下的控制队列定时空闲队列,用来控制空闲的定时器;定时即将到达队列,用来控制定时时长即将到达的定时器;定时忙队列,定时时间已到,等待调度控制给设定定时的进程发送超时消息;控制不同时长的多个队列,用来控制不同定时时长的处理。
所述操作系统中的时钟控制方法,每个队列的队列控制头和定时器均包含以下的基本信息前向指针,用于找到下一个定时器;后向指针,用于找到上一个定时器;队列标记,用来指明当前是哪个队列;设定时长,如果是队列控制头,用来表明当前该队列所处理的定时时长;如果是定时器,则记录该定时器需完成的定时时长;剩余时间,如果是队列控制头,则用来记录队列中所有定时器的剩余时间之和;如果是定时器,则记录该定时器完成当前所在队列定时的剩余时间;设定定时器的进程号,用以记录是哪一个进程设定定时操作的。
所述操作系统中的时钟控制方法,多个队列的处理采用以下的方式(1)当用户设定了一个m的定时,根据该定时器的定时时长找到它所在的队列,将该定时器挂入该定时队列,并将该定时器中定时时长改为m减去该队列的设定时长;
(2)当该队列的定时完成时,再根据它的定时时长查找下一个队列,将该定时器挂入该定时队列,并将该定时器中定时时长改为m减去该队列的设定时长减去下一个队列的设定时长;(3)重复前面的操作,一直到该定时器的定时时长小于定时即将到达队列中定时时长,将该定时器取出并挂入定时即将到达队列;对于定时即将到达队的处理,在中断里需对该队列中的所有定时器进行扫描,如定时到,再将该定时器取出挂入定时忙队列,由调度控制进行调度,并给相应的进程发送超时消息。
所述定时的中断处理包括对于定时即将到达队列,需检查队列中的每一个定时器,如定时到则挂入定时忙队列,否则对定时器的设定时长进行减1的操作;对于其它的队列,只处理队列控制头和队列中的第一个定时器,将队列控制头的剩余时间和队列中的第一个定时器的剩余时间减1,当第一个定时器的剩余时间为0时,将该定时器取出并挂入下一队列,再继续查找下一个剩余时间为0的定时器,并将它取出并挂入下一队列,对队列中的剩余时间不为0的定时器并不处理。
所述定时器的设置包括在每个队列只进行固定时长的定时处理,每一个挂入该队列的定时器都进行相同的定时,每一个定时器的剩余时间值是由该队列控制头的设定时长减掉在它前面的所有定时器的剩余时间值;新的定时器挂入时,新的定时器的剩余时间为队列控制头的设定时长减去队列控制头的剩余时间值,将队列控制头的剩余时间置为队列控制头的设定时长。
所述定时器的时钟取消包括如果定时器已在空闲队列中,则不做如何处理;当在定时忙队列或定时即将到达队列,只需要将定时器取出并挂入空闲队列即可;否则除了要将定时器取出并挂入空闲队列,还需修改定时器的剩余时间值。
所述定时器的时钟取消还包括当需取消的定时器是所在队列中的最后一个定时器,则队列控制头的剩余时间=队列控制头的原有剩余时间减去需取消定时的定时器的剩余时间值;否则,该定时器后面的一个定时器的剩余时间=后面定时器原有的剩余时间加上需取消定时器的剩余时间值。
所述超时消息调度还包括检查该队列是否为空,如不空,则根据该定时器中保留的进行号给相应进程发送超时消息,并将定时器归还空闲队列。
所述操作系统中的时钟控制方法,还包括初始化处理步骤,包括申请数据区、初始化队列头、设置队列标记、剩余时长清零、设置队列头的时长值,将定时器挂入空闲队列。


图1为本发明定时器队列控制框图;图2为本发明定时器处理过程框图;图3为本发明检查定时器设定时长的流程图;图4为本发明检查定时器剩余时间的流程图;图5为本发明定时器定时设置的流程图;图6为本发明定时器定时取消的流程图;图7为本发明超时消息调度流程图。
具体实施例方式
本发明时钟控制方法,主要由三部分组成一、定时的中断处理模块,它完成的基本功能是定时器的定时时长的减1操作及准备超时消息的产生;二、定时器的设置与取消模块,分别完成将定时器挂入定时队列和取出的功能。三、超时消息调度模块,是供系统调度使用的,用以产生超时消息;多时钟控制队列它的处理过程分别包含在上述三部分内容中,共同组成了我们设计的时钟控制系统。
本发明多时钟控制队列的方法,它的核心方法用简单的语言描述如下不同队列完成不同定时时长的处理,每个定时队列只完成固定时长的定时,在队列控制头中用剩余时间这一变量来记录队列中所有定时器的剩余时间之和,以便新的定时器挂入相应队列的队尾时无需查找它队列中在它前面的所有定时器的剩余时间和。下面所进行的所有操作都是为了实现这一思想。
本发明的时钟控制队列主要包含以下的控制队列定时空闲队列用来控制空闲的定时器;定时即将到达队列用来控制定时时长即将到达的的定时器;定时忙队列定时时间已到,等待调度控制给设定定时的进程发送超时消息;
控制不同时长的多个队列用来控制不同定时时长的处理;每个队列的队列控制头和定时器均包含以下的基本信息(1)前向指针由于采用了队列的控制方式,必须通过前向指针找到下一个定时器;(2)后向指针通过它找到上一个定时器;(3)队列标记用来指明当前是哪个队列;(4)设定时长如果是队列控制头,用来表明当前该队列所处理的定时时长;如果是定时器,则记录该定时器需完成的定时时长;(5)剩余时间如果是队列控制头,则用来记录队列中所有定时器的剩余时间之和;如果是定时器,则记录该定时器完成当前所在队列定时的剩余时间;(6)设定定时器的进程号用以记录是哪一个进程设定定时操作的。
对多个队列的处理,采用以下的方式当用户设定了一个m的定时,首先根据该定时器的定时时长找到它所在的队列,将该定时器挂入该定时队列,并将该定时器中定时时长改为m减去该队列的设定时长;当该队列的定时完成时,再根据它的定时时长查找下一个队列,将该定时器挂入该定时队列,并将该定时器中定时时长改为m减去该队列的设定时长减去下一个队列的设定时长;重复前面的操作,一直到该定时器的定时时长小于定时即将到达队列中定时时长,将该定时器取出并挂入定时即将到达队列。对于定时即将到达队的处理,在中断里需对该队列中的所有定时器进行扫描,如定时到,再将该定时器取出挂入定时忙队列,由调度控制进行调度,并给相应的进程发送超时消息。
1.定时器的中断处理中断处理的实时性要求处理的步骤尽可能少,动作尽可能快。对于定时即将到达队列,需检查队列中的每一个定时器,如定时到则挂入定时忙队列,否则对定时器的设定时长进行减1的操作;对于其它的队列,我们只处理队列控制头和队列中的第一个定时器,将队列控制头的剩余时间和队列中的第一个定时器的剩余时间减1,当第一个定时器的剩余时间为0时,将该定时器取出并挂入下一队列,再继续查找下一个剩余时间为0的定时器,并将它取出并挂入下一队列,对队列中的剩余时间不为0的定时器并不处理。
2.定时器的时钟设置
从前面介绍的传统定时器的控制方式可以看到,定时器的设置是非常占用系统资源和耗时的。原因在于它需要到队列中逐个查找定时器,直到发现它应该插入的位置。而我们采用的多队列的控制方式,直接将定时器挂入相应队列的队尾,从根本上改变这种查找、插入的工作方式。这也是采用这种多队列控制最大的优势。
队列控制头的剩余时间是用来记录队列中所有定时器的剩余时间之和,当队列为空时,剩余时间值为0;由于每个队列只进行固定时长的定时处理,每一个挂入该队列的定时器都进行相同的定时,因此每一个定时器的剩余时间值是由该队列控制头的设定时长减掉在它前面的所有定时器的剩余时间值,这样才是它自己真正的时间剩余值。而我们正是用队列控制头的剩余时间来记录队列中所有定时器的剩余时间之和,以便新的定时器挂入时,新的定时器的剩余时间为队列控制头的设定时长减去队列控制头的剩余时间值。由于刚挂入一个定时器,显然需要将队列控制头的剩余时间置为队列控制头的设定时长;定时器的设定时长=用户要求的设定时长-队列控制头的设定时长;定时器的剩余时间=队列控制头的设定时长-队列控制头的剩余时间;队列控制头的剩余时间=队列控制头的设定时长。
3.定时器的时钟取消由于定时器中有一个队列标记,可以很容易的知道当前所处的队列。如果当前已在空闲队列中,则不做如何处理;如果是在定时忙队列或定时即将到达队列,只需要将定时器取出并挂入空闲队列即可;否则除了要将定时器取出并挂入空闲队列,还需修改定时器的剩余时间值。如果需取消的定时器是所在队列中的最后一个定时器,则队列控制头的剩余时间=队列控制头的原有剩余时间减去需取消定时的定时器的剩余时间值;如果不是的话,该定时器后面的一个定时器的剩余时间=后面定时器原有的剩余时间加上需取消定时器的剩余时间值。
4.超时消息调度该模块是供系统调度使用的,用以产生超时消息。检查该队列是否为空,如不空,则根据该定时器中保留的进行号给相应进程发送超时消息,并将定时器归还空闲队列。
下面举例说明采用11个队列来进行时钟的控制过程,这11个队列分别如下1.定时空闲队列用来控制空闲的定时器;2.定时忙队列定时时间已到,等待调度控制给设定定时的进程发送超时消息;3.定时即将到达队列用来控制定时时长小于50ms的定时器;4.50ms定时队列用来控制定时时长大于等于50ms但小于100ms的定时器;5.100ms定时队列用来控制定时时长大于等于100ms但小于500ms的定时器;6.500ms定时队列用来控制定时时长大于等于500ms但小于1s的定时器;7.1s定时队列用来控制定时时长大于等于1s但小于5s的定时器;8.5s定时队列用来控制定时时长大于等于5s但小于10s的定时器;9.10s定时队列用来控制定时时长大于等于10s但小于50s的定时器;10.50s定时队列用来控制定时时长大于等于50s但小于100s的定时器;11.100s定时队列用来控制定时时长大于等于100s的定时器;如图1所示每个队列分别采用一个队列头1,队列的控制采用双向链表的方式,队列头1的前向指针指向第一个定时器2,后向指针指向最后一个定时器5,中间定时器3、4的前向指针、后向指针分别指向下一个和前一个定时器。
队列头和定时器采用相同结构,主要包含以下的数据结构,如下所示typedef struct{WORD next;前向指针;WORD last;后向指针;WORD root;队列标记,用来指明当前是哪个队列;WORD len; 设定时长;WORD rst; 剩余时间;BYTE pno; 设定定时器的进程号;}TCB;
下面举例说明这些队列的应用。
假如用户设定了一个1130ms的定时,首先将该定时器挂入1s定时队列,并将该定时器中定时时长改为1130-1000=130ms;当1s的定时完成时,将该定时器取出挂入100ms定时队列,并将该定时器中定时时长改为130-100=30ms;当100ms的定时完成时,将该定时器取出挂入定时即将到达队列,用户设定的定时时长不变;对定时即将到达队列,在中断里需对其中的所有定时器进行扫描,如定时到,再将该定时器取出挂入定时忙队列,由调度控制进行调度,并给相应的进程发送超时消息。
以下我们以1s定时器队列为例,说明我们采用的这种定时器的设置方式。
队列控制头的设定时长长1000ms/中断产生间隔,假设中断间隔为10ms,即每10ms产生一次中断,用户设置的定时器最大会产生10ms的误差。这样队列控制头的设定时长为100,这个值在初始化时进行设定,是个常量。
由于该队列固定处理1000ms的定时,每一个挂入该队列的定时器只进行1000ms的定时,因此每一个定时器的剩余时间值是由1000ms减掉在它前面的所有定时器的剩余时间值,这样才是它自己真正的时间剩余值。
定时器的设定时长=用户要求的设定时长-100;定时器的剩余时间=100-队列控制头的剩余时间;队列控制头的剩余时间=100;图2为定时器处理过程图,是先挂入一个设定时长为4200ms的定时器,经过200ms后,再挂入一个设定时长为3400ms的定时器处理过程。
初始化处理模块1申请所有定时器和定时器队列头所需的数据区;2初始化所有的定时器队列头,将每个队列头中的前向指针和后向指针分别指向队列头自己,设置队列头中的队列标记为具体的哪一个队列,将所有队列中剩余时间清0;3设置所有队列头中的时长len值;(由于我们采用了10ms中断,故相应队列头的时间值要除10,如下所示50ms定时队列的len=5;100ms定时队列的len=10;500ms定时队列的len=50;1s定时队列的len=100;5s定时队列的len=500;10s定时队列的len=1000;50s定时队列的len=5000;100s定时队列的len=10000;)
4将所有的定时器挂入定时器空闲队列中。
中断处理模块中断处理模块顾名思义是在中断里处理的,它每10ms处理一次,需扫描所有的队列,其处理步骤如下1.扫描定时即将到达队列过程;2.扫描50ms定时队列过程;3.扫描100ms定时队列过程;4.扫描500ms定时队列过程;5.扫描1s定时队列过程;6.扫描5s定时队列过程;7.扫描10s定时队列过程;8.扫描50s定时队列过程;9.扫描100s定时队列过程;扫描定时即将到达队列过程的处理,是按顺序从队列控制头开始对队列中的每一个定时器进行检查,如定时时间为0则挂入定时忙队列,如未到,则继续查找下一个定时器,直至所有队列中的定时器均检查过。
对于整个队列而言,处理过程如图3所示开始(步骤30),判断队列是否为空?(步骤31)若是,则退出;若否,则判断设定时器的设定时长len是否为0?(步骤33),若是,则从队列中取出该定时器(步骤37),将该定时器插入定时器忙队列(步骤38);若否,定时器的设定时长减1(步骤34),检查是否到队列尾(步骤35),如果没有,取下一个定时器(步骤32)重复上述步骤。
对于定时器的剩余时间,从扫描50ms队列开始,队列的处理方式是一致的,它的处理如图4所示开始(步骤40),判断队列是否为空(步骤41)?若是,则退出;若否,将队列控制头的剩余时间减1(步骤42),并将队列中的第一个定时器的剩余时间减1(步骤43),如果定时器的剩余时间不为0(步骤44),则退出。如果为0,将该定时器取出并根据它的设定时长把它挂入响应队列中(步骤45)。再判断队列是否为空(步骤46),如果空,则退出。如果不为空,则检查下一个定时器的剩余时间值(步骤47),返回到步骤44。
给用户提供的设置、取消定时所用的两个原语(primitive),设置定时的原语SET_TIMER,它的处理如图5所示,取消定时的原语KILL_TIMER,它的处理如图6所示。
图5中,开始,从定时器空闲队列中取出一定时器,记录下当前的进程号和设定时长(步骤50),如果设定时长为0,则将该定时器挂入定时忙队列(步骤56),退出;如果设定时长不为0但小于50ms,将该定时器挂入定时时长小于50ms队列的队尾(步骤58),退出(步骤59)。如果设定时长不小于50ms,根据定时器的时长找出相应的队列(步骤53),将该定时器挂入该队列的队尾(步骤54),计算定时器的设定时长、定时器的剩余时间和队列控制头的剩余时间(步骤55)。
图6中,取出该定时器所在的队列号(步骤60),检查定时器是否还在该队列中(步骤61),不在,则退出。如果在,判断该定时器是否在空闲队列中(步骤62),如果不在,判断是否在忙队列中或者定时即将到达队列中(步骤63),若是,则从队列中删除该定时器,将定时器挂入空闲队列中(步骤68),退出。再取出该定时器的下一个定时器(步骤64),判断是否是队尾(步骤65)?如果是,队列控制头的剩余时间等于队列控制头的剩余时间减去该定时器的剩余时间(步骤69),如果否,则下一个定时器的剩余时间等于下一个定时器的剩余时间加上该定时器的剩余时间(步骤66),最后,从队列中删除该定时器并将定时器挂入空闲队列中(步骤67)。
图7所示为超时消息调度模块的流程图,超时消息调度模块是供系统调度使用的,用以产生超时消息。
首先判断定时器是否为空(步骤70)?如果不为空,从定时器忙队列中删除该定时器(步骤71),根据定时器中保留的进程号调度执行该进程(步骤72),然后将该定时器归还定时器空闲队列(步骤73),判断定时器队列是否为空,如果不空,取下一个定时器,返回步骤71。
定时器的队列标记(root)需特别说明,当定时器挂入空闲队列时,队列标记中记录的是自己的定时器号;而当队列挂入其它队列时,队列标记中记录的则是队列头的定时器号,主要的作用是可以很容易的知道当前定时器所处的队列号。
以上几个基本部分,共同组成了时钟控制的功能。其中,初始化模块在系统刚开始运行时调用一次,以后不再执行;中断处理模块供系统在中断里调用,每次中断产生调用一次;超时消息调度模块供调度控制在系统主循环里调度;两个原语SET_TIMER和KILL_TIMER则是提供给用户所用的。
由于是介绍方法,故我们这里只简单的提供了设置、取消定时操作的两个原语的设计,用户可以根据自己的需要增加相应的原语,如定时给某个进程发送超时消息或取消该操作的原语,提供周期性的发送超时消息或取消的原语等。
权利要求
1.一种操作系统中的时钟控制方法,用于对多时钟控制队列进行处理,该方法包括定时的中断处理,用于完成定时器的定时时长的减1操作及准备超时消息的产生;定时器的设置与取消,分别用于完成将定时器挂入定时队列和取出;超时消息调度,供系统调度使用的,用于产生超时消息;其特征在于,在所述定时的中断处理、定时器的设置与取消、超时消息调度中均包含有多时钟控制队列处理,其处理过程至少包括不同队列完成不同定时时长的处理,每个定时队列只完成固定时长的定时,在队列控制头中用剩余时间这一变量来记录队列中所有定时器的剩余时间之和,新的定时器挂入相应队列的队尾时,无需查找它队列中在它前面的所有定时器的剩余时间之和。
2.如权利要求1所述操作系统中的时钟控制方法,其特征在于,所述多时钟控制队列主要包含以下的控制队列定时空闲队列,用来控制空闲的定时器;定时即将到达队列,用来控制定时时长即将到达的定时器;定时忙队列,定时时间已到,等待调度控制给设定定时的进程发送超时消息;控制不同时长的多个队列,用来控制不同定时时长的处理。
3.如权利要求1或者2所述操作系统中的时钟控制方法,其特征在于,每个队列的队列控制头和定时器均包含以下的基本信息前向指针,用于找到下一个定时器;后向指针,用于找到上一个定时器;队列标记,用来指明当前是哪个队列;设定时长,如果是队列控制头,用来表明当前该队列所处理的定时时长;如果是定时器,则记录该定时器需完成的定时时长;剩余时间,如果是队列控制头,则用来记录队列中所有定时器的剩余时间之和;如果是定时器,则记录该定时器完成当前所在队列定时的剩余时间;设定定时器的进程号,用以记录是哪一个进程设定定时操作的。
4.如权利要求1所述操作系统中的时钟控制方法,其特征在于,多个队列的处理采用以下的方式(1)当用户设定了一个m的定时,根据该定时器的定时时长找到它所在的队列,将该定时器挂入该定时队列,并将该定时器中定时时长改为m-该队列的设定时长;(2)当该队列的定时完成时,再根据它的定时时长查找下一个队列,将该定时器挂入该定时队列,并将该定时器中定时时长改为m-该队列的设定时长-下一个队列的设定时长;(3)重复前面的操作,一直到该定时器的定时时长小于定时即将到达队列中定时时长,将该定时器取出并挂入定时即将到达队列;对于定时即将到达队的处理,在中断里需对该队列中的所有定时器进行扫描,如定时到,再将该定时器取出挂入定时忙队列,由调度控制进行调度,并给相应的进程发送超时消息。
5.如权利要求1所述操作系统中的时钟控制方法,其特征在于,所述定时的中断处理包括对于定时即将到达队列,需检查队列中的每一个定时器,如定时到则挂入定时忙队列,否则对定时器的设定时长进行减1的操作;对于其它的队列,只处理队列控制头和队列中的第一个定时器,将队列控制头的剩余时间和队列中的第一个定时器的剩余时间减1,当第一个定时器的剩余时间为0时,将该定时器取出并挂入下一队列,再继续查找下一个剩余时间为0的定时器,并将它取出并挂入下一队列,对队列中的剩余时间不为0的定时器并不处理。
6.如权利要求1所述操作系统中的时钟控制方法,其特征在于,所述定时器的设置包括在每个队列只进行固定时长的定时处理,每一个挂入该队列的定时器都进行相同的定时,每一个定时器的剩余时间值是由该队列控制头的设定时长减掉在它前面的所有定时器的剩余时间值;新的定时器挂入时,新的定时器的剩余时间为队列控制头的设定时长-队列控制头的剩余时间值,将队列控制头的剩余时间置为队列控制头的设定时长。
7.如权利要求1所述操作系统中的时钟控制方法,其特征在于,所述定时器的时钟取消包括如果定时器已在空闲队列中,则不做如何处理;当在定时忙队列或定时即将到达队列,只需要将定时器取出并挂入空闲队列即可;否则除了要将定时器取出并挂入空闲队列,还需修改定时器的剩余时间值。
8.如权利要求7所述操作系统中的时钟控制方法,其特征在于,所述定时器的时钟取消还包括当需取消的定时器是所在队列中的最后一个定时器,则队列控制头的剩余时间=队列控制头的原有剩余时间-需取消定时的定时器的剩余时间值;否则,该定时器后面的一个定时器的剩余时间=后面定时器原有的剩余时间+需取消定时器的剩余时间值。
9.如权利要求1所述操作系统中的时钟控制方法,其特征在于,所述超时消息调度还包括检查该队列是否为空,如不空,则根据该定时器中保留的进行号给相应进程发送超时消息,并将定时器归还空闲队列。
10.如权利要求1所述操作系统中的时钟控制方法,其特征在于,该方法还包括初始化处理步骤,包括申请数据区、初始化队列头、设置队列标记、剩余时长清零、设置队列头的时长值,将定时器挂入空闲队列。
全文摘要
本发明涉及一种操作系统中的时钟控制方法,用于对多时钟控制队列进行处理,该方法包括定时的中断处理、定时器的设置与取消和超时消息调度,在所述定时的中断处理、定时器的设置与取消、超时消息调度中均包含有多时钟控制队列处理,其处理过程至少包括不同队列完成不同定时时长的处理,每个定时队列只完成固定时长的定时,在队列控制头中用剩余时间这一变量来记录队列中所有定时器的剩余时间之和,新的定时器挂入相应队列的队尾时,无需查找它队列中在它前面的所有定时器的剩余时间之和。本发明既能保障时钟控制的高效性,又能保障时钟控制的准确性,特别是在对时钟操作频繁的实时系统中更为明显。
文档编号G05B19/00GK1570785SQ0313996
公开日2005年1月26日 申请日期2003年7月24日 优先权日2003年7月24日
发明者王永新, 朱西延, 任小燕, 毛晓峻, 宣志坚 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1