CN116225665B - 一种队列调度方法及装置 - Google Patents

一种队列调度方法及装置 Download PDF

Info

Publication number
CN116225665B
CN116225665B CN202310491620.9A CN202310491620A CN116225665B CN 116225665 B CN116225665 B CN 116225665B CN 202310491620 A CN202310491620 A CN 202310491620A CN 116225665 B CN116225665 B CN 116225665B
Authority
CN
China
Prior art keywords
dequeued
queue
dequeue
priority information
priority
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
CN202310491620.9A
Other languages
English (en)
Other versions
CN116225665A (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.)
Jingxin Microelectronics Technology Tianjin Co Ltd
Original Assignee
Jingxin Microelectronics Technology Tianjin Co Ltd
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 Jingxin Microelectronics Technology Tianjin Co Ltd filed Critical Jingxin Microelectronics Technology Tianjin Co Ltd
Priority to CN202310491620.9A priority Critical patent/CN116225665B/zh
Publication of CN116225665A publication Critical patent/CN116225665A/zh
Application granted granted Critical
Publication of CN116225665B publication Critical patent/CN116225665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种队列调度方法及装置。该方法包括:获取待处理队列,待处理队列包括待出队元素的优先级信息;响应于元素出队指令,根据待出队元素的优先级信息,确定当前出队元素;基于待处理队列中预先创建的队列指针,执行当前出队元素的出队操作;队列指针用于指示元素在待处理队列中的位置。可见,通过元素自身的优先级直接调度元素出队,可以将需要调度的元素都放入一个队列中,实现元素的灵活调度,而无需预先创建多个携带优先级信息的队列,从而可以提高调度效果。

Description

一种队列调度方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种队列调度方法及装置。
背景技术
近年来,随着大数据、云计算等新兴技术的发展,业务场景的需求逐渐增多,Kafka(一种开分布式发布订阅消息系统)、RocketMQ(一种消息队列软件)等消息中间件均可以支持基于队列的数据处理,队列逐渐成为一种常用的调度结构。
相关技术中,为实现队列的合理调度,可以依据元素的优先级进行调度。具体来说,在队列创建时,可以将各个元素按照优先级的大小放入不同的队列,使队列携带有队列自身的优先级信息。在需要元素出队时,基于SP(Strict Priority,严格优先级)算法或RR(Round-Robin,轮询)算法可以直接对队列进行出队调度。但是,这种方式本质是先构建多个队列,再按照队列的优先级对各个队列进行调度。因此,仅能保证具有相同优先级的元素,即处于同一队列的元素按照其优先级对应的出队顺序进行出队,从而会导致队列调度不够灵活,调度效果不佳。
发明内容
本申请实施例提供了一种队列调度方法及装置,从而实现队列中的元素的灵活调度,使不同优先级的元素可以自由入队,并维护其入队顺序。
第一方面,本申请实施例提供了一种队列调度方法,包括:
获取待处理队列,所述待处理队列包括待出队元素的优先级信息;
响应于元素出队指令,根据所述待出队元素的优先级信息,确定当前出队元素;
基于所述待处理队列中预先创建的队列指针,执行所述当前出队元素的出队操作;所述队列指针用于指示元素在所述待处理队列中的位置。
可选地,所述元素出队指令中携带的元素出队模式为最高优先级出队模式;所述响应于元素出队指令,根据所述待出队元素的优先级信息,确定当前出队元素,包括:
响应于所述最高优先级出队模式,根据所述待出队元素的优先级信息,确定优先级最高的元素作为所述当前出队元素;所述优先级最高的元素为所述待出队元素之一。
可选地,所述根据所述待出队元素的优先级信息,确定优先级最高的元素作为所述当前出队元素,包括:
基于所述待出队元素的优先级信息对应的优先级位图,判断所述待出队元素中是否存在优先级信息为p的元素,得到第一判断结果;在所述优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;所述p为正整数;
根据所述第一判断结果,确定所述待出队元素的优先级信息中的最高优先级信息;
基于所述最高优先级信息,确定所述优先级最高的元素作为所述当前出队元素。
可选地,所述第一判断结果的排列顺序从P-1递减至0;所述P为所述待处理队列所支持的优先级数量,且为正整数;所述根据所述第一判断结果,确定所述待出队元素的优先级信息中的最高优先级信息,包括:
将所述第一判断结果的排列顺序调整为从0递增至P-1,得到第二判断结果;
对所述第二判断结果和所述第二判断结果的相反数进行按位与运算,得到第一运算结果;在所述第一运算结果中,取值为1的位置用于表征所述最高优先级信息。
可选地,所述元素出队指令中携带的元素出队模式为较高优先级出队模式;所述响应于元素出队指令,根据所述待出队元素的优先级信息,确定当前出队元素,包括:
响应于所述较高优先级出队模式,根据所述待出队元素的优先级信息,确定优先级较高的元素作为所述当前出队元素;所述优先级较高的元素为所述待出队元素之一;所述优先级较高的元素的优先级信息与前一出队元素的优先级信息相邻,且大于所述前一出队元素的优先级信息。
可选地,所述根据所述待出队元素的优先级信息,确定优先级较高的元素作为所述当前出队元素,包括:
基于所述待出队元素的优先级信息对应的优先级位图,判断所述待出队元素中是否存在优先级信息为p的元素,得到第三判断结果;在所述优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;所述p为正整数;
根据所述第三判断结果和所述前一出队元素的优先级对应的掩码结果,确定所述待出队元素的优先级信息中的较高优先级信息;
基于所述较高优先级信息,确定所述优先级较高的元素作为所述当前出队元素。
可选地,所述根据所述第三判断结果和所述前一出队元素的优先级对应的掩码结果,确定所述待出队元素的优先级信息中的较高优先级信息,包括:
对所述第三判断结果和所述掩码结果进行按位与运算,得到第二运算结果;
对所述第二运算结果和所述第二运算结果的相反数进行按位与运算,得到第三运算结果;在所述第三运算结果中,取值为1的位置用于表征所述较高优先级信息。
可选地,所述预先创建的队列指针,包括:设置于所述待处理队列中的第一空闲区域和待出队区域之间的第一队列指针,以及设置于待处理队列中的待出队区域和第二空闲区域之间的第二队列指针;所述第一队列指针用于指示所述第一空闲区域中的第一个空闲元素的位置;所述第二队列指针用于指示所述待出队区域中的下一待出队元素的位置;
对于一个待出队元素,所述待出队元素的优先级信息对应的优先级位图通过如下步骤获得:
根据所述第一队列指针和所述第二队列指针,确定所述待出队元素的位置并进行标识,得到所述待出队元素的元素标识;
基于所述待出队元素的元素标识和优先级信息,生成所述优先级位图。
可选地,所述预先创建的队列指针,包括:设置于所述待处理队列中的第一空闲区域和待出队区域之间的第一队列指针、设置于待处理队列中的待出队区域和第二空闲区域之间的第二队列指针,以及设置于所述待出队区域中的第三队列指针;所述第一队列指针用于指示所述第一空闲区域中的第一个空闲元素的位置;所述第二队列指针用于指示所述待出队区域中的下一待出队元素的位置;所述第三队列指针用于指示所述待出队区域中的所述当前出队元素的位置;
所述基于所述待处理队列中预先创建的队列指针,执行所述当前出队元素的出队操作,包括:
将所述当前出队元素插入所述第二队列指针所指示的位置进行出队;
基于所述第二队列指针指示的位置和所述第三队列指针指示的位置,将所述待出队区域中除所述当前出队元素之外的其它待出队元素沿所述第一队列指针的方向移动,并将所述第二队列指针加1。
第二方面,本申请实施例提供了一种队列调度装置,包括:
获取模块,用于获取待处理队列,所述待处理队列包括待出队元素的优先级信息;
确定模块,用于响应于元素出队指令,根据所述待出队元素的优先级信息,确定当前出队元素;
执行模块,用于基于所述待处理队列中预先创建的队列指针,执行所述当前出队元素的出队操作;所述队列指针用于指示元素在所述待处理队列中的位置。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中,获取包括待出队元素的优先级信息的待处理队列之后,可以在响应包括元素出队模式的元素出队指令时,根据待出队元素的优先级信息,确定当前出队元素。接着,可以基于待处理队列中预先创建的用于指示元素在待处理队列中的位置的队列指针,执行当前出队元素的出队操作。可见,通过元素自身的优先级直接调度元素出队,可以将需要调度的元素都放入一个队列中,实现元素的灵活调度,而无需预先创建多个携带优先级信息的队列,从而可以使不同优先级的元素可以自由入队,并维护其入队顺序,提高调度效果。
附图说明
图1为本申请实施例提供的一种队列调度方法的流程图;
图2为本申请实施例提供的一种待处理队列的结构示意图;
图3为本申请实施例提供的另一种队列调度方法的流程图;
图4为本申请实施例提供的一种优先级最高的元素出队时的待处理队列的结构示意图;
图5为本申请实施例提供的又一种队列调度方法的流程图;
图6为本申请实施例提供的一种队列调度装置的结构示意图。
具体实施方式
正如前文所述,为实现队列的合理调度,可以依据元素的优先级进行调度。具体来说,在队列创建时,可以将各个元素按照优先级的大小放入不同的队列,使队列携带有队列自身的优先级信息。在需要元素出队时,基于SP(Strict Priority,严格优先级)算法或RR(Round-Robin,轮询)算法可以直接对队列进行出队调度。但是,这种方式本质是先构建多个队列,再按照队列的优先级对各个队列进行调度。因此,仅能保证具有相同优先级的元素,即处于同一队列的元素按照其优先级对应的出队顺序进行出队,从而会导致队列调度不够灵活,调度效果不佳。
为了解决上述问题,本申请实施例提供了一种队列调度方法。该方法可以包括:获取包括待出队元素的优先级信息的待处理队列之后,可以在响应包括元素出队模式的元素出队指令时,根据待出队元素的优先级信息,确定当前出队元素。接着,可以基于待处理队列中预先创建的用于指示元素在待处理队列中的位置的队列指针,执行当前出队元素的出队操作。
可见,通过元素自身的优先级直接调度元素出队,可以将需要调度的元素都放入一个队列中,实现元素的灵活调度,而无需预先创建多个携带优先级信息的队列,从而可以使不同优先级的元素可以自由入队,并维护其入队顺序,提高调度效果。
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的一种队列调度方法的流程图。结合图1所示,本申请实施例提供的队列调度方法,可以包括:
S101:获取待处理队列,待处理队列包括待出队元素的优先级信息。
在本申请实施例中,待处理队列可以指当前需要进行调度的一个队列。需要说明的是,在队列调度过程中,不仅可以针对待处理队列进行相关操作,同时还可以针对其他需要进行调度的队列进行上述操作,从而实现各个队列的灵活调度。当然,这些需要进行调度的队列之间互不关联。为了便于理解本申请实施例中,将需要调度的元素都放入一个队列,无需预先创建多个携带优先级信息的队列的特性,此处以待处理队列为示例做出详细说明。另外,在本申请实施例中,待处理队列的存储空间可大可小,例如,该待处理队列具体可以存储N个元素,N为正整数。在待处理队列的队列结构中,可以包含优先级数组阵列和地址数组阵列,其中,优先级数组阵列用于存储待处理队列中的元素的优先级信息;地址数组阵列用于存储待处理队列中的元素分别对应的数据包的存储地址数据。
S102:响应于元素出队指令,根据多个元素各自的优先级信息,确定当前出队元素。
元素出队指令中可以携带有具体的元素出队模式。具体来说,在本申请实施例中,元素出队模式可以包括三种,分别为顺序出队模式、最高优先级出队模式和较高优先级出队模式。其中,顺序出队模式是指元素按照先进先出的顺序进行出队,即先进入待处理队列中的元素可以作为当前出队元素进行出队。最高优先级出队模式是指从待出队元素中选取元素优先级最高的元素作为当前出队元素进行出队。较高优先级出队模式,则是指从待出队元素中选取与前一出队元素的优先级相邻且大于该前一出队元素的优先级的元素作为当前出队元素进行出队。可以理解的是,在上述按照优先级进行元素出队的模式,即最高优先级出队模式和较高优先级出队模式中,优先级相同的元素则可以进一步按照先进先出的顺序进行出队。如此,通过携带有不同元素出队模式的元素出队指令,可以实现元素的多种调度方式,提高调度的灵活性,使得待处理队列的应用场景更为广泛。
在本申请实施例中,对于按照最高优先级出队模式和较高优先级出队模式确定当前出队元素的实现方式,可不具体限定,为了便于理解,技术详情可以参见下文所做的介绍。
S103:基于待处理队列中预先创建的队列指针,执行当前出队元素的出队操作。
这里,队列指针用于指示元素在待处理队列中的位置。对于队列指针的创建过程,这里可不做具体限定,为了便于理解,下面分别结合一种可能的实施方式和附图进行说明。
图2为本申请实施例提供的一种待处理队列的结构示意图。结合图2所示,在一种可能的实施方式中,队列指针的创建过程具体可以包括:将待处理队列划分20为第一空闲区域21、待出队区域22和第二空闲区域23;在第一空闲区域21和待出队区域22之间设置第一队列指针24;在待出队区域22和第二空闲区域23之间设置第二队列指针25;在待出队区域22中设置第三队列指针26。其中,第一队列指针24指示第一空闲区域21中的第一个空闲元素的位置;第二队列指针25用于指示待出队区域22中的下一待出队元素的位置;第三队列指针26用于指示待出队区域23中的当前出队元素的位置。
如此,在图2中,元素在待处理队列20中的具体传输过程,可以体现为:某个元素从第一空闲区域21入队,在传输过程中经过待出队区域22,而后从第二空闲区域23出队。
进一步地,在初始状态下,第一队列指针和第二队列指针可以通过如下步骤设置:获取待处理队列的可存储元素数量N,N为正整数;初始化第一队列指针和第二队列指针,以分别将第一队列指针和第二队列指针的值置0;将第一队列指针和第二队列指针设置为循环工作。这里,循环工作用于表示在第一队列指针和第二队列指针的值各自累加到N-1时,将第一队列指针和第二队列指针的值重新置0。这样,通过设置三种队列指针,并设置队列指针的循环工作方式,可以构建出可表示元素状态的环形队列,继而形成逻辑上的环形空间,以供队列循环使用,如此,可以有效利用存储空间,提高调度效率。
前面提到,元素出队模式可以包括顺序出队模式、最高优先级出队模式和较高优先级出队模式。对于顺序出队模式,第二队列指针所指向的元素即为当前出队元素,因此,可以直接执行该元素的出队操作,并将第二队列指针加1。而对于其他两种与元素的优先级信息相关的元素出队模式,由于第二队列指针所指向的元素,与这两种元素出队模式确定出的当前出队元素并不一定相符,因此,需要先将当前出队元素插入第二队列指针所指示的位置再进行出队,对此内容的技术详情可以参见下文所做的介绍。
基于上述S101-S103的相关内容可知,本申请实施例中,获取包括待出队元素的优先级信息的待处理队列之后,可以在响应包括元素出队模式的元素出队指令时,根据待出队元素的优先级信息,确定当前出队元素。接着,可以基于待处理队列中预先创建的用于指示元素在待处理队列中的位置的队列指针,执行当前出队元素的出队操作。可见,通过元素自身的优先级直接调度元素出队,可以将需要调度的元素都放入一个队列中,实现元素的灵活调度,而无需预先创建多个携带优先级信息的队列,从而可以使不同优先级的元素可以自由入队,并维护其入队顺序,提高调度效果。
前面提到,元素出队模式可以包括顺序出队模式、最高优先级出队模式和较高优先级出队模式。不同的元素出队模式可以确定不同的当前出队元素,从而实现对待处理队列中的元素的灵活调度。因此,本申请实施例还可以分别针对响应于不同元素出队模式而执行队列调度的过程,下面结合实施例和附图进行描述。
图3为本申请实施例提供的另一种队列调度方法的流程图。在该方法中,元素出队指令中携带的元素出队模式为最高优先级出队模式。相应地,结合图3所示,该队列调度方法可以包括:
S301:获取待处理队列,待处理队列包括待出队元素的优先级信息。
在本申请实施例中,S301的相关内容可以参见上述实施例中S101的技术细节,在此不再赘述。
S302:响应于最高优先级出队模式,根据待出队元素的优先级信息,确定优先级最高的元素作为当前出队元素。
这里,优先级最高的元素为待出队元素之一。另外,对于确定当前出队元素的过程,也就是S302,本申请实施例不具体限定,为了便于理解,下面结合一种可能的实施方式进行说明。
在一种可能的实施方式中,S302可以包括:基于待出队元素的优先级信息对应的优先级位图,判断待出队元素中是否存在优先级信息为p的元素,得到第一判断结果;在优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;p为正整数;根据第一判断结果,确定待出队元素的优先级信息中的最高优先级信息;基于最高优先级信息,确定优先级最高的元素作为当前出队元素。如此,在本申请实施例中,对于优先级最高的元素的查找,具体可以是先判断出优先级信息为p的元素是否存在,再进一步确定存在的优先级信息中的最高的优先级,进而查找出优先级最高的元素。
其中,对于一个待出队元素,该待出队元素的优先级信息对应的优先级位图,具体可以通过如下步骤获得:根据第一队列指针和第二队列指针,确定待出队元素的位置并进行标识,得到待出队元素的元素标识;基于待出队元素的元素标识和优先级信息,生成优先级位图。在实际应用中,可以采用位图的方式标识该待出队元素的位置而得到元素标识,相应的元素标识可以记为queue_vld[N-1:0],其中,取值为1则可以表示该位置存在待出队元素。进一步地,根据元素标识和优先级信息可以进一步生成的优先级位图,可以记为prio(p)_vld[N-1:0],其中,取值为1的位置则可以表征存在优先级为p的待出队元素。需要说明的是,上述的[N-1:0]是指存在N个待出队元素时,其排列顺序从N-1递减至0,也就是N-1,N-2,…,1,0。举例来说,在待处理队列中,位置0处的元素的优先级信息为2,则在该元素对应的优先级位图prio(2)_vld中,第0个位置置1,即prio(2)_vld[0]=1;位置1处的元素的优先级信息为3,则在该元素对应的优先级位图prio3_vld中,第1个位置置1,即prio3_vld[1]=1。
之后,即可基于该优先级位图,判断待出队元素中是否存在优先级信息为p的元素,得到第一判断结果。具体地,对优先级位图进行取或运算,即可得到该优先级信息为p的元素是否存在的指示,也就是第一判断结果,可以记为prio[P-1:0],其中,取值为1则可以表示存在该优先级信息为p的待出队元素。需要说明的是,P为待处理队列所支持的优先级数量,且为正整数。而上述优先级信息p的取值范围为0~P-1。
接着,根据该第一判断结果,即可确定上述待出队元素的优先级信息中的最高优先级信息。具体来说,第一判断结果的排列顺序从P-1递减至0;P为待处理队列所支持的优先级数量,且为正整数。相应地,最高优先级信息的确定过程,可以包括:将第一判断结果的排列顺序调整为从0递增至P-1,得到第二判断结果;对第二判断结果和第二判断结果的相反数进行按位与运算,得到第一运算结果;在第一运算结果中,取值为1的位置用于表征最高优先级信息。
前面提到,第一判断结果可以记为prio[P-1:0],因此其排列顺序可以体现为从P-1递减至0,也就是P-1,P-2,…,1,0。而将该排列顺序调整为从0递增至P-1后,也就是0,1,……,P-2,P-1,得到的第二判断结果可以记为prio[0:P-1]。如此,第二判断结果的相反数可以记为-prio[0:P-1],其中,第二判断结果的相反数具体可以通过对第二判断结果进行按位取反运算后再加1得到。相应地,对第二判断结果和第二判断结果的相反数进行按位与运算,得到的第一运算结果highest_prio[0:P-1]的过程,可以表示为:highest_prio[0:P-1]=prio[0:P-1]&(-prio[0:P-1])。举例来说,假如待处理队列所支持的优先级的数量P为4,该待处理队列中存在具有1和3两个优先级信息的待出队元素,则prio[3:0]=1010,相应地,prio[0:3]=0101;-prio[0:3]=1011。二者进行按位与运算后得到的第一运算结果为highest_prio[0:3]=0001。由于该第一运算结果中,取值为1的位置为3,因此,上述待出队元素的优先级信息中的最高优先级信息为3。
最后,可以基于最高优先级信息,确定优先级最高的元素作为当前出队元素。具体来说,根据最高优先级信息,可以从待出队元素的优先级信息对应的优先级位图中,选取最高优先级信息对应的最高优先级位图。而后,再对该最高优先级位图和最高优先级位图的相反数进行按位与运算,即可得到优先级最高的元素的元素标识;在该元素标识中,取值为1的位置即可表征该优先级最高的元素的位置。
进一步地,可以根据该元素标识换算得到第三队列指针的取值,而该第三队列指针可以用于指示当前出队元素的位置。因此,通过第三队列指针即可得到该元素的优先级信息和对应的数据包的存储地址数据。
基于以上S302的相关内容可知,在本申请实施例中,通过位图的方式标记待出队元素以及待出队元素的优先级信息,再通过相关运算逐步确定出优先级最高的元素来作为当前出队元素,即可通过元素自身的优先级直接调度元素出队,实现最高优先级出队模式,而无需预先创建多个携带优先级信息的队列,从而可以实现元素的灵活调度,使不同优先级的元素可以自由入队,并维护其入队顺序,提高调度效果。
S303:将当前出队元素插入第二队列指针所指示的位置进行出队。
前面提到,第二队列指针设置于待处理队列中的待出队区域和第二空闲区域之间,用于指示待出队区域中的下一待出队元素的位置。而在该待处理队列中,待出队元素按照入队的顺序进行排列。因此,此时第二队列指针所指示的下一待出队元素的位置,可能并不是上述按照最高优先级出队模式确定出的当前出队元素。基于此,为了实现具有最高优先级的元素的出队,在确定出当前出队元素之后,即可将当前出队元素插入第二队列指针所指示的位置。
S304:基于第二队列指针指示的位置和第三队列指针指示的位置,将待出队区域中除当前出队元素之外的其它待出队元素沿第一队列指针的方向移动,并将第二队列指针加1。
在该当前出队元素出队之后,待出队区域中该当前出队元素所在的原始位置会留下一个孔洞,此时需要将其他元素沿第一队列指针的方向进行移动。具体来说,当第三队列指针的值大于第二队列指针的值时,在该待操作队列中,需要进行移动的区域,也就是除当前元素之外的其他元素所在的区域,是指从第三队列指针的值到第二队列指针的值的区域。而当第三队列指针的值小于第二队列指针的值时,在该待操作队列中,需要移动的区域则是指从0到第三队列指针的值的区域,以及从第二队列指针的值到N-1的区域。
为了便于理解,下面结合附图进行说明。图4为本申请实施例提供的一种优先级最高的元素出队时的待处理队列的结构示意图。结合图4所示,待出队区域22中包括多个待出队元素,分别表示为元素1、元素2、元素3、元素…。其中,作为当前出队元素的优先级最高的元素41插入第二队列指针25所指示的位置进行出队时,需要将该待出队区域22中的其它待出队元素都沿第一队列指针24的方向移动,也就都向上移位。并且,由于第二队列指针25用于指向待出队区域22中的下一待出队元素的位置,因此,第二队列指针25的值需要加1,从而依据元素的优先级信息完成对于优先级最高的元素的出队操作。
基于上述S301-S304的相关内容可知,本申请实施例中,获取包括待出队元素的优先级信息的待处理队列之后,可以在响应包括最高优先级出队模式的元素出队指令时,根据待出队元素的优先级信息,确定优先级最高的元素作为当前出队元素。接着,可以将该优先级最高的元素插入第二队列指针中,并移动其它待出队元。如此,即可通过元素自身的优先级直接调度优先级最高的元素出队,这样需要调度的元素可以都放入一个队列中,而无需预先创建多个携带优先级信息的队列,从而可以实现元素的灵活调度,使不同优先级的元素可以自由入队,并维护其入队顺序,提高调度效果。
图5为本申请实施例提供的又一种队列调度方法的流程图。在该方法中,元素出队指令中携带的元素出队模式为较高优先级出队模式。相应地,结合图5所示,该队列调度方法可以包括:
S501:获取待处理队列,待处理队列包括待出队元素的优先级信息。
在本申请实施例中,S501的相关内容可以参见上述实施例中S101的技术细节,在此不再赘述。
S502:响应于较高优先级出队模式,根据待出队元素的优先级信息,确定优先级较高的元素作为当前出队元素。
这里,优先级较高的元素为待出队元素之一;优先级较高的元素的优先级信息与前一出队元素的优先级信息相邻,且大于前一出队元素的优先级信息。可见,在本申请实施例中,包括较高优先级出队模式的元素出队指令,具体是指执行优先级与前一出队元素的优先级相邻,且大于前一出队元素的元素的出队操作。
另外,对于确定当前出队元素的过程,也就是S502,本申请实施例不具体限定,为了便于理解,下面结合一种可能的实施方式进行说明。
在一种可能的实施方式中,S502可以包括:基于待出队元素的优先级信息对应的优先级位图,判断待出队元素中是否存在优先级信息为p的元素,得到第三判断结果;在优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;p为正整数;根据第三判断结果和前一出队元素的优先级对应的掩码结果,确定待出队元素的优先级信息中的较高优先级信息;基于较高优先级信息,确定优先级较高的元素作为当前出队元素。如此,在本申请实施例中,对于优先级较高的元素的查找,具体可以是先判断出优先级信息为p的元素是否存在,再进一步确定存在的优先级信息中的较高优先级信息,进而查找出优先级较高的元素。
其中,对于一个待出队元素,该待出队元素的优先级信息对应的优先级位图,具体可以通过如下步骤获得:根据第一队列指针和第二队列指针,确定待出队元素的位置并进行标识,得到待出队元素的元素标识;基于待出队元素的元素标识和优先级信息,生成优先级位图。在实际应用中,可以采用位图的方式标识该待出队元素的位置而得到元素标识,相应的元素标识可以记为queue_vld[N-1:0],其中,取值为1则可以表示该位置存在待出队元素。进一步地,根据元素标识和优先级信息可以进一步生成的优先级位图,可以记为prio(p)_vld[N-1:0],其中,取值为1的位置则可以表征存在优先级为p的待出队元素。需要说明的是,上述的[N-1:0]是指存在N个待出队元素时,其排列顺序从N-1递减至0,也就是N-1,N-2,…,1,0。举例来说,在待处理队列中,位置0处的元素的优先级信息为2,则在该元素对应的优先级位图prio(2)_vld中,第0个位置置1,即prio(2)_vld[0]=1;位置1处的元素的优先级信息为3,则在该元素对应的优先级位图prio3_vld中,第1个位置置1,即prio3_vld[1]=1。
之后,即可基于该优先级位图,判断待出队元素中是否存在优先级信息为p的元素,得到第三判断结果。具体地,对优先级位图进行取或运算,即可得到该优先级信息为p的元素是否存在的指示,也就是第三判断结果,可以记为prio[P-1:0],其中,取值为1则可以表示存在该优先级信息为p的待出队元素。P为待处理队列所支持的优先级数量,且为正整数。而上述优先级信息p的取值范围为0~P-1。
接着,根据第三判断结果和前一出队元素的优先级对应的掩码结果,即可确定优先级较高的元素的优先级信息。具体来说,较高优先级信息的确定过程,可以包括:对第三判断结果和掩码结果进行按位与运算,得到第二运算结果;对第二运算结果和第二运算结果的相反数进行按位与运算,得到第三运算结果;在第三运算结果中,取值为1的位置用于表征较高优先级信息。
这里,前一出队元素的优先级可以记为prio_pop,相应地,其对应的掩码结果可以记为prio_mask[P-1:0]={P{1’b1}<<(prio_pop+1)},其中,1’b1表示一位二进制数,其值为1。而后,将第三判断结果和该掩码结果进行按位与运算,得到的第二运算结果可以记为prio’[P-1:0]。对应地,该第二运算结果的相反数可以记为-prio’[P-1:0],其中,第二运算结果的相反数具体可以通过对第二运算结果进行按位取反运算后再加1得到。相应地,对第二运算结果和第二运算结果的相反数进行按位与运算,得到的第三运算结果higher_prio[P-1:0]的过程,可以表示为:higher_prio[0:P-1]=prio’[P-1:0]&(-prio’[P-1:0])。举例来说,假如待处理队列所支持的优先级的数量P为4,该待处理队列中存在具有0、1和3三个优先级信息的待出队元素,则prio[3:0]=1011。进一步地,假如前一出队元素的优先级为1,则该优先级对应的掩码结果prio_mask[3:0]=为1100。相应地,二者进行按位与运算后得到的第二运算结果prio’[3:0]=1000。该第二运算结果的相反数-prio’[3:0]=1000,二者进一步进行按位与运算,得到的第三运算结果higher_prio[3:0]=1000。由于该第三运算结果中,取值为1的位置为3,因此,上述待出队元素的优先级信息中的较高优先级信息为3。
最后,可以基于较高优先级信息,确定优先级较高的元素作为当前出队元素。具体来说,根据较高优先级信息,可以从待出队元素的优先级信息对应的优先级位图中,选取较高优先级信息对应的较高优先级位图。而后,再对该较高优先级位图和较高优先级位图的相反数进行按位与运算,即可得到优先级较高的元素的元素标识;在该元素标识中,取值为1的位置即可表征该优先级较高的元素的位置。
进一步地,可以根据该元素标识换算得到第三队列指针的取值,而该第三队列指针可以用于指示当前出队元素的位置。因此,通过第三队列指针即可得到该元素的优先级信息和对应的数据包的存储地址数据。
基于以上S502的相关内容可知,在本申请实施例中,通过位图的方式标记待出队元素以及待出队元素的优先级信息,再通过相关运算逐步确定出优先级较高的元素来作为当前出队元素,即可通过元素自身的优先级直接调度元素出队,实现较高优先级出队模式,而无需预先创建多个携带优先级信息的队列,从而可以实现元素的灵活调度,使不同优先级的元素可以自由入队,并维护其入队顺序,提高调度效果。
S503:将当前出队元素插入第二队列指针所指示的位置进行出队。
前面提到,第二队列指针设置于待处理队列中的待出队区域和第二空闲区域之间,用于指示待出队区域中的下一待出队元素的位置。而在该待处理队列中,待出队元素按照入队的顺序进行排列。因此,此时第二队列指针所指示的下一待出队元素的位置,可能并不是上述按照较高优先级出队模式确定出的当前出队元素。基于此,为了实现具有较高优先级的元素的出队,在确定出当前出队元素之后,即可将当前出队元素插入第二队列指针所指示的位置。
S504:基于第二队列指针指示的位置和第三队列指针指示的位置,将待出队区域中除当前出队元素之外的其它待出队元素沿第一队列指针的方向移动,并将第二队列指针加1。
在本申请实施例中,在当前出队元素为优先级较高的元素时,对其它待出队元素的移动和第二队列指针的操作,与当前出队元素为优先级最高的元素的实现方式一致。因此,S504的相关内容可以参见上述实施例中S304的技术细节,在此不再赘述。
基于上述S501-S504的相关内容可知,本申请实施例中,获取包括待出队元素的优先级信息的待处理队列之后,可以在响应包括较高优先级出队模式的元素出队指令时,根据待出队元素的优先级信息,确定优先级较高的元素作为当前出队元素。接着,可以将该优先级较高的元素插入第二队列指针中,并移动其它待出队元。如此,即可通过元素自身的优先级直接调度优先级较高的元素出队,这样需要调度的元素可以都放入一个队列中,而无需预先创建多个携带优先级信息的队列,从而可以实现元素的灵活调度,使不同优先级的元素可以自由入队,并维护其入队顺序,提高调度效果。
基于上述实施例提供的队列调度方法,本申请实施例还提供了一种队列调度装置。下面分别结合实施例和附图,对该队列调度装置进行描述。
图6为本申请实施例提供的一种队列调度装置的结构示意图。结合图6所示,本申请实施例提供的队列调度装置600,可以包括:
获取模块601,用于获取待处理队列,待处理队列包括待出队元素的优先级信息;
确定模块602,用于响应于元素出队指令,根据待出队元素的优先级信息,确定当前出队元素;
执行模块603,用于基于待处理队列中预先创建的队列指针,执行当前出队元素的出队操作;队列指针用于指示元素在待处理队列中的位置。
作为一种实施方式,为了实现队列中的元素的灵活调度,元素出队指令中携带的元素出队模式为最高优先级出队模式。相应地,确定模块602具体可以包括:
第一确定模块,用于响应于最高优先级出队模式,根据待出队元素的优先级信息,确定优先级最高的元素作为当前出队元素;优先级最高的元素为待出队元素之一。
作为一种实施方式,为了实现队列中的元素的灵活调度,第一确定模块具体可以包括:
第一判断模块,用于基于待出队元素的优先级信息对应的优先级位图,判断待出队元素中是否存在优先级信息为p的元素,得到第一判断结果;在优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;p为正整数;
最高优先级信息确定模块,用于根据第一判断结果,确定待出队元素的优先级信息中的最高优先级信息;
第一元素确定模块,用于基于最高优先级信息,确定优先级最高的元素作为当前出队元素。
作为一种实施方式,为了实现队列中的元素的灵活调度,第一判断结果的排列顺序从P-1递减至0;P为待处理队列所支持的优先级数量,且为正整数。相应地,最高优先级信息确定具体可以包括:
调整模块,用于将第一判断结果的排列顺序调整为从0递增至P-1,得到第二判断结果;
第一运算模块,用于对第二判断结果和第二判断结果的相反数进行按位与运算,得到第一运算结果;在第一运算结果中,取值为1的位置用于表征最高优先级信息。
作为一种实施方式,为了实现队列中的元素的灵活调度,元素出队指令中携带的元素出队模式为较高优先级出队模式。相应地,确定模块602具体可以包括:
第二确定模块,用于响应于较高优先级出队模式,根据待出队元素的优先级信息,确定优先级较高的元素作为当前出队元素;优先级较高的元素为待出队元素之一;优先级较高的元素的优先级信息与前一出队元素的优先级信息相邻,且大于前一出队元素的优先级信息。
作为一种实施方式,为了实现队列中的元素的灵活调度,第二确定模块具体可以包括:
第二判断模块,用于基于待出队元素的优先级信息对应的优先级位图,判断待出队元素中是否存在优先级信息为p的元素,得到第三判断结果;在优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;p为正整数;
较高优先级信息确定模块,用于根据第三判断结果和前一出队元素的优先级对应的掩码结果,确定待出队元素的优先级信息中的较高优先级信息;
第二元素确定模块基于较高优先级信息,确定优先级较高的元素作为当前出队元素。
作为一种实施方式,为了实现队列中的元素的灵活调度,较高优先级信息确定模块具体可以包括:
第二运算模块,用于对第三判断结果和掩码结果进行按位与运算,得到第二运算结果;
第三运算模块,用于对第二运算结果和第二运算结果的相反数进行按位与运算,得到第三运算结果;在第三运算结果中,取值为1的位置用于表征较高优先级信息。
作为一种实施方式,为了实现队列中的元素的灵活调度,预先创建的队列指针,包括:设置于待处理队列中的第一空闲区域和待出队区域之间的第一队列指针,以及设置于待处理队列中的待出队区域和第二空闲区域之间的第二队列指针;第一队列指针用于指示第一空闲区域中的第一个空闲元素的位置;第二队列指针用于指示待出队区域中的下一待出队元素的位置。相应地,对于一个待出队元素,待出队元素的优先级信息对应的优先级位图通过如下模块获得:
标识模块,用于根据第一队列指针和第二队列指针,确定待出队元素的位置并进行标识,得到待出队元素的元素标识;
生成模块,用于基于待出队元素的元素标识和优先级信息,生成优先级位图。
作为一种实施方式,为了实现队列中的元素的灵活调度,预先创建的队列指针,包括:设置于待处理队列中的第一空闲区域和待出队区域之间的第一队列指针,以及设置于待处理队列中的待出队区域和第二空闲区域之间的第二队列指针;第一队列指针用于指示第一空闲区域中的第一个空闲元素的位置;第二队列指针用于指示待出队区域中的下一待出队元素的位置。相应地,执行模块603具体可以包括:
第一执行模块,用于将当前出队元素插入第二队列指针所指示的位置进行出队;
第二执行模块,用于基于第二队列指针指示的位置和第三队列指针指示的位置,将待出队区域中除当前出队元素之外的其它待出队元素沿第一队列指针的方向移动,并将第二队列指针加1。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (7)

1.一种队列调度方法,其特征在于,包括:
获取待处理队列,所述待处理队列包括待出队元素的优先级信息;
响应于元素出队指令,根据所述待出队元素的优先级信息,确定当前出队元素;
基于所述待处理队列中预先创建的队列指针,执行所述当前出队元素的出队操作;所述队列指针用于指示元素在所述待处理队列中的位置;
其中,所述当前出队元素为优先级最高的元素;所述当前出队元素的确定过程,包括:
基于所述待出队元素的优先级信息对应的优先级位图,判断所述待出队元素中是否存在优先级信息为p的元素,得到第一判断结果;在所述优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;所述p的取值为0~P-1;所述第一判断结果的排列顺序从P-1递减至0;所述P为所述待处理队列所支持的优先级数量,且为正整数;
将所述第一判断结果的排列顺序调整为从0递增至P-1,得到第二判断结果;
对所述第二判断结果和所述第二判断结果的相反数进行按位与运算,得到第一运算结果;在所述第一运算结果中,取值为1的位置用于表征最高优先级信息;所述第二判断结果的相反数是对所述第二判断结果进行按位取反运算后再加1得到的;
基于所述最高优先级信息,确定所述优先级最高的元素作为所述当前出队元素;或者,
所述当前出队元素为优先级较高的元素;所述优先级较高的元素的优先级信息与前一出队元素的优先级信息相邻,且大于所述前一出队元素的优先级信息;所述当前出队元素的确定过程,包括:
基于所述待出队元素的优先级信息对应的优先级位图,判断所述待出队元素中是否存在优先级信息为p的元素,得到第三判断结果;在所述优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;
根据所述第三判断结果和所述前一出队元素的优先级对应的掩码结果,确定所述待出队元素的优先级信息中的较高优先级信息;
基于所述较高优先级信息,确定所述优先级较高的元素作为所述当前出队元素。
2.根据权利要求1所述的方法,其特征在于,所述元素出队指令中携带的元素出队模式为最高优先级出队模式;所述响应于元素出队指令,根据所述待出队元素的优先级信息,确定当前出队元素,包括:
响应于所述最高优先级出队模式,根据所述待出队元素的优先级信息,确定优先级最高的元素作为所述当前出队元素;所述优先级最高的元素为所述待出队元素之一。
3.根据权利要求1所述的方法,其特征在于,所述元素出队指令中携带的元素出队模式为较高优先级出队模式;所述响应于元素出队指令,根据所述待出队元素的优先级信息,确定当前出队元素,包括:
响应于所述较高优先级出队模式,根据所述待出队元素的优先级信息,确定优先级较高的元素作为所述当前出队元素;所述优先级较高的元素为所述待出队元素之一。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第三判断结果和所述前一出队元素的优先级对应的掩码结果,确定所述待出队元素的优先级信息中的较高优先级信息,包括:
对所述第三判断结果和所述掩码结果进行按位与运算,得到第二运算结果;
对所述第二运算结果和所述第二运算结果的相反数进行按位与运算,得到第三运算结果;在所述第三运算结果中,取值为1的位置用于表征所述较高优先级信息;所述第二运算结果的相反数是对所述第二运算结果进行按位取反运算后再加1得到的。
5.根据权利要求1所述的方法,其特征在于,所述预先创建的队列指针,包括:设置于所述待处理队列中的第一空闲区域和待出队区域之间的第一队列指针,以及设置于待处理队列中的待出队区域和第二空闲区域之间的第二队列指针;所述第一队列指针用于指示所述第一空闲区域中的第一个空闲元素的位置;所述第二队列指针用于指示所述待出队区域中的下一待出队元素的位置;
对于一个待出队元素,所述待出队元素的优先级信息对应的优先级位图通过如下步骤获得:
根据所述第一队列指针和所述第二队列指针,确定所述待出队元素的位置并进行标识,得到所述待出队元素的元素标识;
基于所述待出队元素的元素标识和优先级信息,生成所述优先级位图。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述预先创建的队列指针,包括:设置于所述待处理队列中的第一空闲区域和待出队区域之间的第一队列指针、设置于待处理队列中的待出队区域和第二空闲区域之间的第二队列指针,以及设置于所述待出队区域中的第三队列指针;所述第一队列指针用于指示所述第一空闲区域中的第一个空闲元素的位置;所述第二队列指针用于指示所述待出队区域中的下一待出队元素的位置;所述第三队列指针用于指示所述待出队区域中的所述当前出队元素的位置;
所述基于所述待处理队列中预先创建的队列指针,执行所述当前出队元素的出队操作,包括:
将所述当前出队元素插入所述第二队列指针所指示的位置进行出队;
基于所述第二队列指针指示的位置和所述第三队列指针指示的位置,将所述待出队区域中除所述当前出队元素之外的其它待出队元素沿所述第一队列指针的方向移动,并将所述第二队列指针加1。
7.一种队列调度装置,其特征在于,包括:
获取模块,用于获取待处理队列,所述待处理队列包括待出队元素的优先级信息;
确定模块,用于响应于元素出队指令,根据所述待出队元素的优先级信息,确定当前出队元素;
执行模块,用于基于所述待处理队列中预先创建的队列指针,执行所述当前出队元素的出队操作;所述队列指针用于指示元素在所述待处理队列中的位置;
其中,所述当前出队元素为优先级最高的元素;所述当前出队元素通过如下模块确定:
第一判断模块,用于基于所述待出队元素的优先级信息对应的优先级位图,判断所述待出队元素中是否存在优先级信息为p的元素,得到第一判断结果;在所述优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;所述p的取值为0~P-1;所述第一判断结果的排列顺序从P-1递减至0;所述P为所述待处理队列所支持的优先级数量,且为正整数;
调整模块,用于将所述第一判断结果的排列顺序调整为从0递增至P-1,得到第二判断结果;
第一运算模块,用于对所述第二判断结果和所述第二判断结果的相反数进行按位与运算,得到第一运算结果;在所述第一运算结果中,取值为1的位置用于表征最高优先级信息;所述第二判断结果的相反数是对所述第二判断结果进行按位取反运算后再加1得到的;
第一元素确定模块,用于基于所述最高优先级信息,确定优先级最高的元素作为当前出队元素;或者,
所述当前出队元素为优先级较高的元素;所述优先级较高的元素的优先级信息与前一出队元素的优先级信息相邻,且大于所述前一出队元素的优先级信息;所述当前出队元素通过如下模块确定:
第二判断模块,用于基于所述待出队元素的优先级信息对应的优先级位图,判断所述待出队元素中是否存在优先级信息为p的元素,得到第三判断结果;在所述优先级位图中,取值为1的位置用于表征存在优先级信息为p的元素;
较高优先级信息确定模块,用于根据所述第三判断结果和所述前一出队元素的优先级对应的掩码结果,确定所述待出队元素的优先级信息中的较高优先级信息;
第二元素确定模块,用于基于所述较高优先级信息,确定所述优先级较高的元素作为所述当前出队元素。
CN202310491620.9A 2023-05-04 2023-05-04 一种队列调度方法及装置 Active CN116225665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310491620.9A CN116225665B (zh) 2023-05-04 2023-05-04 一种队列调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310491620.9A CN116225665B (zh) 2023-05-04 2023-05-04 一种队列调度方法及装置

Publications (2)

Publication Number Publication Date
CN116225665A CN116225665A (zh) 2023-06-06
CN116225665B true CN116225665B (zh) 2023-08-08

Family

ID=86587549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310491620.9A Active CN116225665B (zh) 2023-05-04 2023-05-04 一种队列调度方法及装置

Country Status (1)

Country Link
CN (1) CN116225665B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4358829A (en) * 1980-04-14 1982-11-09 Sperry Corporation Dynamic rank ordered scheduling mechanism
CN102402416A (zh) * 2010-09-10 2012-04-04 深圳市金蝶中间件有限公司 一种元素出队序列设置方法及装置
CN107423120A (zh) * 2017-04-13 2017-12-01 阿里巴巴集团控股有限公司 任务调度方法及装置
CN115242726A (zh) * 2022-07-27 2022-10-25 阿里巴巴(中国)有限公司 队列的调度方法和装置及电子设备
CN115348218A (zh) * 2022-10-18 2022-11-15 井芯微电子技术(天津)有限公司 一种队列调度方法及装置
CN115809132A (zh) * 2022-12-06 2023-03-17 北京计算机技术及应用研究所 一种轻量级可扩展的多核嵌入式操作系统调度器设计方法
CN116055397A (zh) * 2023-03-27 2023-05-02 井芯微电子技术(天津)有限公司 队列表项维护方法与装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016019554A1 (zh) * 2014-08-07 2016-02-11 华为技术有限公司 一种队列管理的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4358829A (en) * 1980-04-14 1982-11-09 Sperry Corporation Dynamic rank ordered scheduling mechanism
CN102402416A (zh) * 2010-09-10 2012-04-04 深圳市金蝶中间件有限公司 一种元素出队序列设置方法及装置
CN107423120A (zh) * 2017-04-13 2017-12-01 阿里巴巴集团控股有限公司 任务调度方法及装置
CN115242726A (zh) * 2022-07-27 2022-10-25 阿里巴巴(中国)有限公司 队列的调度方法和装置及电子设备
CN115348218A (zh) * 2022-10-18 2022-11-15 井芯微电子技术(天津)有限公司 一种队列调度方法及装置
CN115809132A (zh) * 2022-12-06 2023-03-17 北京计算机技术及应用研究所 一种轻量级可扩展的多核嵌入式操作系统调度器设计方法
CN116055397A (zh) * 2023-03-27 2023-05-02 井芯微电子技术(天津)有限公司 队列表项维护方法与装置

Also Published As

Publication number Publication date
CN116225665A (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
CN110096353B (zh) 任务调度方法及装置
EP1271314B1 (en) Sleep queue management for operating systems
US8239873B2 (en) Speedy event processing
US8463967B2 (en) Method and device for scheduling queues based on chained list
CN103309738A (zh) 用户作业调度方法及装置
US20220066699A1 (en) Data read/write method and apparatus, and exchange chip and storage medium
EP3631624A1 (en) Multifunction vector processor circuits
WO2023124370A1 (zh) 指令同步装置、芯片和计算机设备,数据处理方法
CN107977232B (zh) 一种数据处理方法、数据处理电路和网络设备
CN116225665B (zh) 一种队列调度方法及装置
CN112433839B (zh) 实现网络芯片高速调度的方法、设备及存储介质
CN109905331B (zh) 队列调度方法及装置、通信设备、存储介质
CN116661703B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN115348218B (zh) 一种队列调度方法及装置
CN111190541B (zh) 存储系统的流控方法以及计算机可读存储介质
US10656967B1 (en) Actor and thread message dispatching
US9298505B2 (en) Time and space-deterministic task scheduling apparatus and method using multi-dimensional scheme
CN115809126A (zh) 混合部署场景下的作业调度方法、装置及电子设备
CN114035924A (zh) 一种分布式限速队列实现方法及装置
US9116739B2 (en) Fast and scalable concurrent queuing system
CN110069221B (zh) 数据释放方法及装置
CN107562527B (zh) 一种rtos上的smp的实时任务调度方法
CN111143065B (zh) 一种数据处理方法、装置、设备及介质
CN116800692B (zh) 活动队列的调度方法、装置及存储介质
CN114265694A (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