CN117056059B - 定时器实现方法、装置、存储介质及电子设备 - Google Patents
定时器实现方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117056059B CN117056059B CN202311316970.8A CN202311316970A CN117056059B CN 117056059 B CN117056059 B CN 117056059B CN 202311316970 A CN202311316970 A CN 202311316970A CN 117056059 B CN117056059 B CN 117056059B
- Authority
- CN
- China
- Prior art keywords
- event
- dial
- overtime
- timeout
- mounting
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000006870 function Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种定时器实现方法、装置、存储介质及电子设备,属于计算机技术领域。所述定时器实现方法包括:获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能。通过将超时事件挂载在表盘上,表盘上的指针走动一个刻度轮询上一刻度的超时事件来判断是否超时,不用定时器就可以实现定时功能,降低了系统复杂度,也不会占用太多资源,降低了系统的总体功耗。
Description
技术领域
本发明涉及计算机技术领域,具体地涉及一种定时器实现方法、一种定时器实现装置、一种机器可读存储介质及一种电子设备。
背景技术
TCP卸载引擎(TCP Offload Engine,TOE)和远程直接数据存取(Remote DirectMemory Access,RDMA)技术采用硬件实现TCP/IP协议处理,以获得最大的性能提升。在TOE/RDMA网卡的实现中,TCP协议定时机制运行的好坏对网络传输性能有重要影响。从三次握手建立TCP连接,到连接成功(ESTABLISHED)状态下每个数据报文的发送和接收,直至最后终止TCP连接,每一步都需要定时机制的参与,定时机制的正确工作确保了TCP协议的正常运行。如何准确高效的用硬件实现TCP定时机制,使其在千兆或更高带宽的网络下正常工作,是TOE/RDMA网卡实现中的重点和难点 。在TOE/RDMA中,TCP协议的重传定时器、延迟ACK定时器和零窗口探测定时器由硬件逻辑模块实现,这三种定时器均工作在ESTABLISHED状态下,并且与TCP连接上的数据报文发送接收有密切关系,其余四种由软件系统实现。
在TOE/RDMA中,一般会用到多个定时器来实现超时重传和零窗口探测,从而减少CPU的开销以及实现数据的可靠性传输。但是,这种在硬件实现上同时使用多个定时器会增加系统复杂度以及占用更多资源。
发明内容
本发明实施例的目的是提供一种定时器实现方法、一种定时器实现装置、一种机器可读存储介质及一种电子设备,该定时器实现方法不用定时器就可以实现定时功能,降低了系统复杂度,也不会占用太多资源,降低了系统的总体功耗。
为了实现上述目的,本申请第一方面提供一种定时器实现方法,包括:
获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;
在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能。
在本申请实施例中,所述获取挂载超时事件队列的表盘,包括:
响应于外部调用定时器指令,获取配置信息以及超时事件信息;
根据所述配置信息选择得到表盘;
基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘。
在本申请实施例中,所述超时事件信息包括超时时间和系统时间;
所述基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘,包括:
基于所述系统时间和所述表盘的配置精度,确定得到表盘刻度值;
基于所述超时时间和所述表盘的配置精度,确定得到事件挂载队列号;
基于所述事件挂载队列号和当前系统时间,确定得到超时事件在表盘上应该挂载的位置;
基于所述超时事件在表盘上应该挂载的位置,在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘。
在本申请实施例中,所述超时事件信息还包括超时事件识别号和对应的相关信息,所述超时事件识别号和对应的相关信息以块状链表方式存储在外部DDR中;
所述在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘,包括:
在所述表盘上挂载对应的超时事件识别号,得到挂载超时事件队列的表盘。
在本申请实施例中,所述表盘为多种表盘组合,各种表盘的精度不同;
所述基于所述超时事件在表盘上应该挂载的位置,在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘,包括:
基于各个表盘的精度和所述超时事件在表盘上应该挂载的位置,将所述超时事件挂载至对应的表盘上,得到挂载超时事件队列的表盘。
在本申请实施例中,所述轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,包括:
轮询上一个刻度对应的超时事件队列,得到待确定超时事件;
获取所述待确定超时事件当前的最新超时时间;
根据所述最新超时时间和当前的系统时间,判断所述待确定超时事件是否超时。
在本申请实施例中,还包括:
确定所述待确定超时事件超时,返回超时事件信息,并在所述超时事件队列中删除所述待确定超时事件对应的超时事件;
确定所述待确定超时事件不超时,基于所述待确定超时事件的最新超时时间,将所述待确定超时事件重新挂载在表盘上,得到新的挂载超时事件队列的表盘。
本申请第二方面提供一种定时器实现装置,包括:
获取模块,用于获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;
判断模块,用于在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能。
本申请第三方面提供一种电子设备,该电子设备包括:
至少一个处理器;
存储器,与所述至少一个处理器连接;
其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现上述的定时器实现方法。
本申请第四方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行上述的定时器实现方法。
通过上述技术方案,通过获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能。通过将超时事件挂载在表盘上,表盘上的指针走动一个刻度轮询上一刻度的超时事件来判断是否超时,不用定时器就可以实现定时功能,降低了系统复杂度,也不会占用太多资源,降低了系统的总体功耗。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1示意性示出了根据本申请实施例的一种定时器实现方法的流程示意图;
图2示意性示出了根据本申请实施例的时刻表示意图;
图3示意性示出了根据本申请实施例的定时器实现的整体结构图;
图4示意性示出了根据本申请实施例的SID索引方式示意图;
图5示意性示出了根据本申请实施例的一种定时器实现装置的结构框图;
图6示意性示出了根据本申请实施例的计算机设备的内部结构图。
附图标记说明
410-获取模块;420-判断模块;A01-处理器;A02-网络接口;A03-内存储器;A04-显示屏;A05-输入装置;A06-非易失性存储介质;B01-操作系统;B02-计算机程序。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
需要说明的是,若本申请实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参看图1,图1示意性示出了根据本申请实施例的一种定时器实现方法的流程示意图。本实施例提供一种定时器实现方法,包括以下步骤:
步骤210:获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;
在本实施例中,上述挂载超时事件队列的表盘是指在表盘上挂载有超时事件的表盘。上述挂载超时事件队列的表盘可以是一个表盘,也可以是多个表盘组合,并且表盘精度可配置,以满足不同需求,具体根据实际情况设置,本实施例不做限定。比如:四个表盘组合以得到挂载超时事件队列的表盘,分别为表盘0、表盘1、表盘2、表盘3,各个表盘的精度可配置,表盘上的每一个刻度都对应着一个实际的超时事件队列。上述挂载超时事件队列的表盘可以是根据具体定时需要将需要定时的超时事件挂载在表盘上得到。
请参看图2,图2示意性示出了根据本申请实施例的时刻表示意图。在一些实施例中,所述获取挂载超时事件队列的表盘的过程包括以下步骤:
首先,响应于外部调用定时器指令,获取配置信息以及超时事件信息;
在本实施例中,当外部调用定时器时,启动超时事件挂载,通过获取配置信息以及超时事件信息以便于进行超时事件挂载。上述配置信息包括超时时间、系统时间、表盘数量等,上述超时事件信息包括超时事件以及对应的超时事件识别号(Session ID,SID)等。
然后,根据所述配置信息选择得到表盘;
在本实施例中,可以根据用户配置选择要启动的表盘数量,从而确定表盘。在具体实施时,得到的表盘可以是一个,也可以是多个表盘的组合。
最后,基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘。
在本实施例中,上述挂载超时事件可以是将超时事件挂载到表盘中相应的刻度。多个超时事件挂载在同一刻度上,形成超时事件队列。
通过获取配置信息以及超时事件信息,并根据所述配置信息选择得到表盘,并在所述表盘上挂载超时事件,从而可以根据用户配置设置表盘,以便于获得满足实际需求的挂载超时事件队列的表盘,以满足各种使用场景。通过用户可配置的多表盘组合使用可以实现大容量的不同精度的定时需求。
在一些实施例中,所述超时事件信息包括超时时间和系统时间;
所述基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘,具体包括以下步骤:
第一步,基于所述系统时间和所述表盘的配置精度,确定得到表盘刻度值;
在本实施例中,所述表盘刻度值是指表盘的精度,是指两个刻度之间的时间间隔,比如第一个刻度为1秒,第二个刻度为3秒,那么两个刻度的时间间隔为2秒。具体确定表盘刻度值可以是通过以下公式得到:
表盘刻度值=系统时间* 2^表盘配置精度;其中,表盘配置精度就是表盘的配置精度,在确定表盘的时候就可以得到该配置精度。比如:如果系统时间的变化周期为1个脉冲周期,那么表盘的刻度值变化周期就是2^表盘配置精度个脉冲周期。
需要说明的是,表盘指针每往前走一个刻度,表盘指针所走过的刻度数加1,当刻度数大于等于表盘配置的最大值时,刻度数重新计为0(参考时钟的转圈)。
第二步,基于所述超时时间和所述表盘的配置精度,确定得到事件挂载队列号;
在本实施例中,事件挂载队列号=超时时间/ 2^表盘配置精度;其中,表盘配置精度就是表盘的配置精度,在确定表盘的时候就可以得到该配置精度。这里确定的事件挂载队列号是指的超时事件按照当前的精度来算会在几个刻度之后超时,举例说明,如果表盘的精度为2秒,即两个刻度之间间隔时间为2秒,这时候有一个超时事件,它在10秒之后超时,按照计算,它本身应该在5个刻度之后超时。
第三步,基于所述事件挂载队列号和当前系统时间,确定得到超时事件在表盘上应该挂载的位置;
在本实施例中,超时事件在表盘上应该挂载的位置是指超时事件在表盘上实际挂载的队列号。比如:如果表盘的精度为2秒,即两个刻度之间间隔时间为2秒,这时候有一个超时事件,它在10秒之后超时,按照计算,它本身应该在5个刻度之后超时,但是此时表盘已经走到了刻度2,那么这个超时事件实际应该挂在刻度2+5=7上。因此,根据公式:事件实际挂载队列号=事件挂载队列号+表盘走过的刻度值,就可以计算得到超时事件在表盘上应该挂载的位置,上述表盘走过的刻度值可以是根据当前系统时间确定得到。
因此,根据超时时间和当前系统时间的差值(即超时的绝对值)将超时事件挂载到相应的表盘队列上,挂载的队列号等于启用的表盘的精度加上指针已经走过的刻度数。具体可以表示为:挂载队列号= (超时时间/2^表盘精度)+指针已经走过的刻度数。
第四步,基于所述超时事件在表盘上应该挂载的位置,在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘。
在本实施例中,在确定了超时事件在表盘上应该挂载的位置,就可以将超时事件挂载在对应位置,从而得到挂载超时事件队列的表盘。
通过分别计算表盘刻度值、事件挂载队列号以及当前系统时间,可以确定出超时事件在表盘中的准确位置,以便于得到准确的挂载超时事件队列的表盘,有助于提高定时准确度。
在一些实施例中,所述表盘为多种表盘组合,各种表盘的精度不同;
所述基于所述超时事件在表盘上应该挂载的位置,在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘,包括:基于各个表盘的精度和所述超时事件在表盘上应该挂载的位置,将所述超时事件挂载至对应的表盘上,得到挂载超时事件队列的表盘。
在本实施例中,在使用单个表盘时,如果计算出的事件实际挂载队列号值大于当前表盘配置的最大值,则将超时事件挂载到表盘配置最大值的队列上。当多个表盘组合使用时,如果计算出的事件实际挂载队列号值大于小精度的表盘配置的最大值,则将超时事件挂载到下一大精度表盘上,当计算出的事件实际挂载队列号值大于最大精度表盘配置的最大值时,将超时的SID挂载最大精度表盘的配置最大值队列上。
在一些实施例中,所述超时事件信息还包括超时事件识别号和对应的相关信息,所述超时事件识别号和对应的相关信息以块状链表方式存储在外部双倍速率同步动态随机存储器(Double Data Rate,DDR)中;
所述在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘,包括:在所述表盘上挂载对应的超时事件识别号,得到挂载超时事件队列的表盘。
在本实施例中,如图2所述,表盘刻度上挂载多个超时事件SID,形成超时事件SID队列,通过挂载超时事件识别号,就不会占用过多资源。队列的超时事件识别号以及相关的信息以块状链表的形式存储在外部DDR中,一个块最大支持8192个连续的物理地址,最多支持1024个块,1024个块通过单链表的方式串接在一起,支持尾部插入,任意位置删除。将数据以块状链表的方式存储在外部DDR中,由于块状链表的特性,达到了节省内存的目的。写入DDR的数据是通过缓存(CACHE)作为外部存储空间的物理映射来进行桥接,从而提高数据的读写速度。
步骤220:在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能。
在本实施例中,表盘上的指针每走动一个刻度,开始轮询上一个刻度上的超时事件队列,其中包括两种情况:第一种,对于超时事件的超时时间是固定不变的情况,在轮询上一个刻度上的超时事件队列时,就可以获取到超时事件,确定这些超时事件已超时;第二种,对于超时事件的超时时间是动态变化的情况,需要将超时事件当前的超时时间与当前的系统时间进行对比,以判断是否超时,具体包括以下步骤:
首先,轮询上一个刻度对应的超时事件队列,得到待确定超时事件;
在本实施例中,表盘上的指针每走动一个刻度,开始轮询上一个刻度上的超时事件队列,得到待确定超时事件。
然后,获取所述待确定超时事件当前的最新超时时间;
在本实施例中,对于表盘挂载超时事件的情况,可以直接根据待确定超时事件向TOE/RDMA的上下文发送读取时戳请求,获取得到的时戳就是待确定超时事件当前的最新超时时间。对于表盘挂载超时事件SID的情况,需要先从外部DDR中读取超时事件SID对应的超时事件,然后再向TOE/RDMA的上下文发送读取时戳请求,以获取得到时戳。在对获取的时戳还可以进行排序,然后将排序结果以保序形式返回TOE/RDMA上下文。请参看图4,图4示意性示出了根据本申请实施例的SID索引方式示意图。具体在实施时,可以先将各个超时事件的时戳放入时戳表中,然后按照SID进行线性索引,以读取到SID对应超时事件的时戳。
最后,根据所述最新超时时间和当前的系统时间,判断所述待确定超时事件是否超时。
在本实施例中,启动超时判断时,比较获取的最新超时时间和当前的系统时间,来判断当前的超时事件是否超时,如果当前超时事件的时戳小于或等于当前的系统时间,则判断为超时;反之,则判断为不超时。
在一些实施例中,还包括以下两种情况:
第一种,确定所述待确定超时事件超时,返回超时事件信息,并在所述超时事件队列中删除所述待确定超时事件对应的超时事件;
第二种,确定所述待确定超时事件不超时,基于所述待确定超时事件的最新超时时间,将所述待确定超时事件重新挂载在表盘上,得到新的挂载超时事件队列的表盘。
在本实施例中,输出超时的超时事件并且将超时事件队列中的超时事件删除,反之则将超时事件按照之前的步骤挂载到对应的表盘队列上,重新进行定时。
上述实现过程中,通过获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能。通过将超时事件挂载在表盘上,表盘上的指针走动一个刻度轮询上一刻度的超时事件来判断是否超时,不用定时器就可以实现定时功能,降低了系统复杂度,也不会占用太多资源,降低了系统的总体功耗。通过用户可配置的多表盘组合使用可以实现大容量的不同精度的定时需求,减小了系统复杂程度,有更强的适用性。采用本实施例中定时器实现方法可以实现大容量的定时器,最大可以支持1M个定时器同时工作,每一条连接一一对应一个定时器,每个定时器通过SID来标识。
下面以具体实施的例子进行说明:请参看图3,图3示意性示出了根据本申请实施例的定时器实现的整体结构图。在具体实施时,超时重传和零窗口探测定时器一共包括挂载超时事件队列的表盘、超时队列轮询控制、访问排序、超时判断四个部分。挂载超时事件队列的表盘包括表盘0、表盘1、表盘2、表盘3。各部分的连接关系是挂载超时事件队列的表盘与超时队列轮询控制,超时队列轮询控制与访问排序相连,访问排序与超时判断相连。表盘的功能是将需要定时的超时事件SID挂载在表盘队列上,队列轮询控制的功能是对表盘上挂载的SID队列进行轮询,并将轮询到的SID输出给访问排序部分,访问排序的功能是根据轮询到的SID向维护时戳的模块索引并读取更新的时戳并且将其排序,超时判断是对轮询到的SID和从TOE/RDMA的上下文读取的时戳进行比较,以此判断队列轮询到的SID是否超时,将判断超时的结果传给TOE/RDMA上下文,将判断未超时的结果重新挂载到表盘上。
图1为一个实施例中定时器实现方法的流程示意图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参看图5,图5示意性示出了根据本申请实施例的一种定时器实现装置的结构框图。本实施例提供一种定时器实现装置,包括获取模块410和判断模块420,其中:
获取模块410,用于获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;
判断模块420,用于在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能。
所述定时器实现装置包括处理器和存储器,上述获取模块410和判断模块420等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来降低了系统复杂度和资源占用。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种机器可读存储介质,其上存储有程序,该程序被处理器执行时实现所述定时器实现方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器A01、网络接口A02、显示屏A04、输入装置A05和存储器(图中未示出)。其中,该计算机设备的处理器A01用于提供计算和控制能力。该计算机设备的存储器包括内存储器A03和非易失性存储介质A06。该非易失性存储介质A06存储有操作系统B01和计算机程序B02。该内存储器A03为非易失性存储介质A06中的操作系统B01和计算机程序B02的运行提供环境。该计算机设备的网络接口A02用于与外部的终端通过网络连接通信。该计算机程序被处理器A01执行时以实现一种定时器实现方法。该计算机设备的显示屏A04可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置A05可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的定时器实现装置可以实现为一种计算机程序的形式,计算机程序可在如图6所示的计算机设备上运行。计算机设备的存储器中可存储组成该定时器实现装置的各个程序模块,比如,图5所示的获取模块410和判断模块420。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的定时器实现方法中的步骤。
图6所示的计算机设备可以通过如图5所示的定时器实现装置中的跳转代码段获取模块410执行步骤210。计算机设备可通过判断模块420执行步骤220。
本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;存储器,与所述至少一个处理器连接;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现上述的定时器实现方法。处理器执行指令时实现以下步骤:
获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;
在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能。
在一个实施例中,所述获取挂载超时事件队列的表盘,包括:
响应于外部调用定时器指令,获取配置信息以及超时事件信息;
根据所述配置信息选择得到表盘;
基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘。
在一个实施例中,所述超时事件信息包括超时时间和系统时间;
所述基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘,包括:
基于所述系统时间和所述表盘的配置精度,确定得到表盘刻度值;
基于所述超时时间和所述表盘的配置精度,确定得到事件挂载队列号;
基于所述事件挂载队列号和当前系统时间,确定得到超时事件在表盘上应该挂载的位置;
基于所述超时事件在表盘上应该挂载的位置,在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘。
在一个实施例中,所述超时事件信息还包括超时事件识别号和对应的相关信息,所述超时事件识别号和对应的相关信息以块状链表方式存储在外部DDR中;
所述在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘,包括:
在所述表盘上挂载对应的超时事件识别号,得到挂载超时事件队列的表盘。
在一个实施例中,所述表盘为多种表盘组合,各种表盘的精度不同;
所述基于所述超时事件在表盘上应该挂载的位置,在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘,包括:
基于各个表盘的精度和所述超时事件在表盘上应该挂载的位置,将所述超时事件挂载至对应的表盘上,得到挂载超时事件队列的表盘。
在一个实施例中,所述轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,包括:
轮询上一个刻度对应的超时事件队列,得到待确定超时事件;
获取所述待确定超时事件当前的最新超时时间;
根据所述最新超时时间和当前的系统时间,判断所述待确定超时事件是否超时。
在一个实施例中,还包括:
确定所述待确定超时事件超时,返回超时事件信息,并在所述超时事件队列中删除所述待确定超时事件对应的超时事件;
确定所述待确定超时事件不超时,基于所述待确定超时事件的最新超时时间,将所述待确定超时事件重新挂载在表盘上,得到新的挂载超时事件队列的表盘。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (7)
1.一种定时器实现方法,其特征在于,包括:
获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;
在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能;
其中,所述获取挂载超时事件队列的表盘,包括:
响应于外部调用定时器指令,获取配置信息以及超时事件信息;
根据所述配置信息选择得到表盘;
基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘;
其中,所述超时事件信息包括超时时间和系统时间;
所述基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘,包括:
基于所述系统时间和所述表盘的配置精度,确定得到表盘刻度值;
基于所述超时时间和所述表盘的配置精度,确定得到事件挂载队列号;
基于所述事件挂载队列号和当前系统时间,确定得到超时事件在表盘上应该挂载的位置;
基于所述超时事件在表盘上应该挂载的位置,在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘;
其中,所述轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,包括:
轮询上一个刻度对应的超时事件队列,得到待确定超时事件;
获取所述待确定超时事件当前的最新超时时间;
根据所述最新超时时间和当前的系统时间,判断所述待确定超时事件是否超时。
2.根据权利要求1所述的定时器实现方法,其特征在于,所述超时事件信息还包括超时事件识别号和对应的相关信息,所述超时事件识别号和对应的相关信息以块状链表方式存储在外部DDR中;
所述在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘,包括:
在所述表盘上挂载对应的超时事件识别号,得到挂载超时事件队列的表盘。
3.根据权利要求1所述的定时器实现方法,其特征在于,所述表盘为多种表盘组合,各种表盘的精度不同;
所述基于所述超时事件在表盘上应该挂载的位置,在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘,包括:
基于各个表盘的精度和所述超时事件在表盘上应该挂载的位置,将所述超时事件挂载至对应的表盘上,得到挂载超时事件队列的表盘。
4.根据权利要求1所述的定时器实现方法,其特征在于,还包括:
确定所述待确定超时事件超时,返回超时事件信息,并在所述超时事件队列中删除所述待确定超时事件对应的超时事件;
确定所述待确定超时事件不超时,基于所述待确定超时事件的最新超时时间,将所述待确定超时事件重新挂载在表盘上,得到新的挂载超时事件队列的表盘。
5.一种定时器实现装置,其特征在于,包括:
获取模块,用于获取挂载超时事件队列的表盘;其中,所述挂载超时事件队列的表盘中的每一个刻度对应有超时事件队列;包括:响应于外部调用定时器指令,获取配置信息以及超时事件信息;根据所述配置信息选择得到表盘;基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘;其中,所述超时事件信息包括超时时间和系统时间;所述基于所述超时事件信息,在所述表盘上挂载超时事件,得到挂载超时事件队列的表盘,包括:基于所述系统时间和所述表盘的配置精度,确定得到表盘刻度值;基于所述超时时间和所述表盘的配置精度,确定得到事件挂载队列号;基于所述事件挂载队列号和当前系统时间,确定得到超时事件在表盘上应该挂载的位置;基于所述超时事件在表盘上应该挂载的位置,在所述表盘上挂载对应的超时事件,得到挂载超时事件队列的表盘;
判断模块,用于在所述挂载超时事件队列的表盘上的指针走动一个刻度的情况下,轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,以实现定时器的功能;其中,所述轮询上一个刻度对应的超时事件队列,并判断所述超时事件队列中的超时事件是否超时,包括:轮询上一个刻度对应的超时事件队列,得到待确定超时事件;获取所述待确定超时事件当前的最新超时时间;根据所述最新超时时间和当前的系统时间,判断所述待确定超时事件是否超时。
6.一种电子设备,其特征在于,该电子设备包括:
至少一个处理器;
存储器,与所述至少一个处理器连接;
其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现权利要求1至4任一项所述的定时器实现方法。
7.一种计算机可读存储介质,该计算机可读存储介质上存储有指令,其特征在于,该指令在被处理器执行时使得所述处理器被配置成执行根据权利要求1至4中任一项所述的定时器实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311316970.8A CN117056059B (zh) | 2023-10-12 | 2023-10-12 | 定时器实现方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311316970.8A CN117056059B (zh) | 2023-10-12 | 2023-10-12 | 定时器实现方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117056059A CN117056059A (zh) | 2023-11-14 |
CN117056059B true CN117056059B (zh) | 2024-02-02 |
Family
ID=88655863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311316970.8A Active CN117056059B (zh) | 2023-10-12 | 2023-10-12 | 定时器实现方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117056059B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567106A (zh) * | 2003-07-06 | 2005-01-19 | 王国起 | 一种能够计时的产品及其所用的计时盘 |
CN108874375A (zh) * | 2018-06-01 | 2018-11-23 | 深圳市茁壮网络股份有限公司 | 一种定时器的实现方法及装置 |
CN111722973A (zh) * | 2019-03-20 | 2020-09-29 | 顺丰科技有限公司 | 一种事件超时监控方法、系统及存储介质 |
CN111857994A (zh) * | 2020-06-29 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种高精度定时器调度的方法、装置、设备及可读介质 |
CN115981854A (zh) * | 2022-12-22 | 2023-04-18 | 迈普通信技术股份有限公司 | 一种基于链表的定时器管理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7543195B2 (en) * | 2002-10-28 | 2009-06-02 | Netapp, Inc. | Method and system for managing time-out events in a storage area network |
US20220326887A1 (en) * | 2021-04-06 | 2022-10-13 | Micron Technology, Inc. | Log management maintenance operation and command |
-
2023
- 2023-10-12 CN CN202311316970.8A patent/CN117056059B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567106A (zh) * | 2003-07-06 | 2005-01-19 | 王国起 | 一种能够计时的产品及其所用的计时盘 |
CN108874375A (zh) * | 2018-06-01 | 2018-11-23 | 深圳市茁壮网络股份有限公司 | 一种定时器的实现方法及装置 |
CN111722973A (zh) * | 2019-03-20 | 2020-09-29 | 顺丰科技有限公司 | 一种事件超时监控方法、系统及存储介质 |
CN111857994A (zh) * | 2020-06-29 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种高精度定时器调度的方法、装置、设备及可读介质 |
CN115981854A (zh) * | 2022-12-22 | 2023-04-18 | 迈普通信技术股份有限公司 | 一种基于链表的定时器管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
通信系统中大量定时器的设计与分析;邹仕祥;计算机应用(11);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117056059A (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107798108B (zh) | 一种异步任务查询方法及设备 | |
EP2999276B1 (en) | Method and terminal for reporting sensor data | |
JP2004520655A (ja) | 分散型コンピュータシステムにおける資源の選択 | |
US20150282075A1 (en) | Data processing device, data processing method, and program | |
TWI329249B (en) | Hybrid computer security clock | |
WO2019127230A1 (zh) | 一种网络节点的唤醒方法及设备 | |
CN117056059B (zh) | 定时器实现方法、装置、存储介质及电子设备 | |
CN110750498B (zh) | 对象访问方法、装置及存储介质 | |
CN112905668B (zh) | 基于分布式数据流处理引擎的数据库导数方法、设备和介质 | |
CN111158999A (zh) | 一种格式化时间的计算方法和装置 | |
CN111488373B (zh) | 用于处理请求的方法和系统 | |
CN112363980A (zh) | 一种分布式系统的数据处理方法及装置 | |
CN109905486B (zh) | 一种应用程序识别展示方法和装置 | |
JP4176933B2 (ja) | 外部記憶装置ドライバプログラムを記録した記録媒体、及び外部記憶装置アクセス機能を有する計算機 | |
CN113744013B (zh) | 订单号的生成方法、装置、服务器及存储介质 | |
CN116028226A (zh) | 一种基于量子计算设备dpdk组件图像数据排序方法、存储装置和智能终端 | |
CN106776393B (zh) | 一种无中断的串口数据接收方法和装置 | |
CN114444440A (zh) | 一种标识符生成方法、装置、存储介质及系统 | |
EP2386957B1 (en) | Apparatus and method for managing memory in consideration of user response time | |
CN109257402B (zh) | 请求量控制方法及设备 | |
CN111680014A (zh) | 共享文件的获取方法、装置、电子设备及存储介质 | |
CN116578631B (zh) | 数据交互方法、数据采集设备、数据处理设备及交互系统 | |
CN115065620B (zh) | 网络监测方法、装置、设备及存储介质 | |
CN117094268B (zh) | 网格间数据传递方法、装置、存储介质及电子设备 | |
CN113904953B (zh) | 通信设备的离线检测方法、装置和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |