CN114579812A - 链表队列的管理方法及装置、任务管理方法和存储介质 - Google Patents

链表队列的管理方法及装置、任务管理方法和存储介质 Download PDF

Info

Publication number
CN114579812A
CN114579812A CN202210245388.6A CN202210245388A CN114579812A CN 114579812 A CN114579812 A CN 114579812A CN 202210245388 A CN202210245388 A CN 202210245388A CN 114579812 A CN114579812 A CN 114579812A
Authority
CN
China
Prior art keywords
queue
node
linked list
list
state management
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.)
Granted
Application number
CN202210245388.6A
Other languages
English (en)
Other versions
CN114579812B (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.)
Shanghai Bi Ren Technology Co ltd
Original Assignee
Shanghai Biren Intelligent Technology 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 Shanghai Biren Intelligent Technology Co Ltd filed Critical Shanghai Biren Intelligent Technology Co Ltd
Priority to CN202210245388.6A priority Critical patent/CN114579812B/zh
Publication of CN114579812A publication Critical patent/CN114579812A/zh
Application granted granted Critical
Publication of CN114579812B publication Critical patent/CN114579812B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种链表队列的管理方法、任务管理方法、链表队列的管理装置和非瞬时可读存储介质。链表队列的管理方法包括:对于链表队列提供队列状态管理列表,链表队列包括至少一个节点,队列状态管理列表包括分别对应于至少一个节点的至少一个表项,至少一个表项中的每个记录对应节点的节点状态信息,节点状态信息包括对应节点的有效标志和目标索引,以及使用队列状态管理列表操作链表队列。在链表队列的管理方法中,通过对链表队列提供队列状态管理列表,可以快速地完成对链表队列的节点检索、增加、删除、清除等操作,提高链表队列的操作效率以及提高链表队列的管理效率,从而有效节省了时间开销。

Description

链表队列的管理方法及装置、任务管理方法和存储介质
技术领域
本公开的实施例涉及一种链表队列的管理方法、任务管理方法、链表队列的管理装置和非瞬时可读存储介质。
背景技术
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。数组、链表、堆栈和队列是最基本的数据结构,任何程序都会涉及其中一种或多种。队列是线性表的一种,使用队列存取数据元素时,数据元素只能从表的一端进入队列,另一端出队列。队列的实现方式包括顺序存储和链式存储。队列的链式存储,也称为链表队列或者链式队列,是在链表的基础上,按照先进先出的原则操作数据元素。
发明内容
本公开至少一个实施例提供一种链表队列的管理方法,包括:对于所述链表队列提供队列状态管理列表,所述链表队列包括至少一个节点,所述队列状态管理列表包括分别对应于所述至少一个节点的至少一个表项,所述至少一个表项中的每个记录对应节点的节点状态信息,所述节点状态信息包括所述对应节点的有效标志和目标索引;使用所述队列状态管理列表操作所述链表队列。
例如,在本公开一实施例提供的方法中,使用所述队列状态管理列表操作所述链表队列,包括:基于所述队列状态管理列表中所述至少一个表项的目标索引,检索在所述链表队列中对应于所述至少一个表项的至少一个节点。
例如,在本公开一实施例提供的方法中,使用所述队列状态管理列表操作所述链表队列,包括:使用所述队列状态管理列表向所述链表队列增加第一节点;或者使用所述队列状态管理列表从所述链表队列删除第二节点。
例如,本公开一实施例提供的方法还包括:对于所述链表队列提供可用地址管理列表,其中,所述可用地址管理列表配置为可容纳多个可用节点地址,所述多个可用节点地址每个备用于构建所述链表队列的新节点。
例如,在本公开一实施例提供的方法中,所述可用地址管理列表用于包括所述链表队列的多个链表队列。
例如,在本公开一实施例提供的方法中,使用所述队列状态管理列表向所述链表队列增加所述第一节点,包括:响应于向所述链表队列增加所述第一节点,在所述队列状态管理列表中增加第一表项,其中,所述第一表项对应于所述第一节点;将所述第一表项的有效标志设置为有效;将所述第一表项的目标索引设置为所述第一节点的存储地址。
例如,在本公开一实施例提供的方法中,使用所述队列状态管理列表向所述链表队列增加所述第一节点,还包括:响应于所述可用地址管理列表非空,从所述可用地址管理列表取出第一可用节点地址,使用所述第一可用节点地址在所述链表队列中增加所述第一节点,其中,所述第一可用节点地址对应于所述第一节点的存储地址。
例如,在本公开一实施例提供的方法中,使用所述队列状态管理列表向所述链表队列增加所述第一节点,还包括:将所述链表队列中的第一节点的上一节点的后指针修改为指向所述第一节点,将所述第一节点的下一节点的前指针修改为指向所述第一节点。
例如,在本公开一实施例提供的方法中,使用所述队列状态管理列表从所述链表队列删除所述第二节点,包括:响应于从所述链表队列删除所述第二节点,将所述队列状态管理列表中的第二表项中的有效标志设置为无效,其中,所述第二表项对应于所述第二节点;或者从所述队列状态管理列表删除所述第二表项。
例如,在本公开一实施例提供的方法中,所述节点状态信息还包括序号。使用所述队列状态管理列表从所述链表队列删除所述第二节点,还包括:响应于从所述队列状态管理列表删除所述第二表项,修改除所述第二表项之外的至少一项表项的序号。
例如,在本公开一实施例提供的方法中,使用所述队列状态管理列表从所述链表队列删除所述第二节点,还包括:响应于从所述链表队列删除所述第二节点,向所述可用地址管理列表加入第二可用节点地址,其中,所述第二可用节点地址对应于所述第二节点的存储地址。
例如,在本公开一实施例提供的方法中,使用所述队列状态管理列表从所述链表队列删除所述第二节点,还包括:将所述链表队列中的第二节点的上一节点的后指针修改为指向所述第二节点的下一节点,将所述第二节点的下一节点的前指针修改为指向所述第二节点的上一节点。
例如,在本公开一实施例提供的方法中,所述可用地址管理列表被初始化为非空以包括多个初始的可用节点地址,所述多个初始的可用节点地址用于创建所述链表队列。
例如,在本公开一实施例提供的方法中,所述可用地址管理列表为先进先出队列或先进后出队列。
例如,在本公开一实施例提供的方法中,使用所述队列状态管理列表操作所述链表队列,包括:将所述队列状态管理列表中有效标志为有效的所有表项的有效标志设置为无效,以清除所述链表队列。
例如,在本公开一实施例提供的方法中,所述节点状态信息还包括所述对应节点的优先级,所述对应节点的目标索引包括所述对应节点的存储地址。
本公开至少一个实施例还提供一种任务管理方法,包括:使用以上任一实施例所述管理方法来管理链表队列,基于所述链表队列来管理至少一个任务。
本公开至少一个实施例还提供一种链表队列的管理装置,包括状态管理单元和操作单元。状态管理单元被配置为对于所述链表队列提供队列状态管理列表,其中,所述链表队列包括至少一个节点,所述队列状态管理列表包括分别对应于所述至少一个节点的至少一个表项,所述至少一个表项中的每个记录对应节点的节点状态信息,所述节点状态信息包括所述对应节点的有效标志和目标索引。操作单元被配置为使用所述队列状态管理列表操作所述链表队列。
本公开至少一个实施例还提供一种链表队列的管理装置,包括处理器和存储器。该存储器包括一个或多个计算机程序模块。所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于执行以上任一实施例所述的链表队列的管理方法的指令。
本公开至少一个实施例还提供一种非瞬时可读存储介质,其上存储有计算机指令。所述计算机指令被处理器执行时执行以上任一实施例所述的链表队列的管理方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1是根据本公开至少一个实施例提供的一种链表队列的存储示意图;
图2为本公开至少一个实施例提供的一种链表队列的管理方法的流程图;
图3是根据本公开至少一个实施例提供的一种链表队列的示意图;
图4是根据本公开至少一个实施例提供的一种队列状态管理列表的示意图;
图5是根据本公开至少一个实施例提供的另一种链表队列管理方法的流程图;
图6是根据本公开至少一个实施例提供的一种可用地址管理列表的示意图;
图7是根据本公开至少一个实施例提供的一种任务管理方法的流程图;
图8是根据本公开至少一个实施例提供的一种链表队列的管理装置的示意框图;
图9是根据本公开至少一个实施例的另一种链表队列的管理装置的示意框图;
图10是根据本公开至少一个实施例提供的又一种链表队列的管理装置的示意框图;
图11是根据本公开至少一个实施例提供的一种非瞬时可读存储介质的示意框图;和
图12是根据本公开至少一个实施例提供的一种电子设备的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开中使用了流程图来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,根据需要,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
通常,链表队列在删除节点时,需要从头指针开始逐个查找,一直查找到待删除的节点才结束,整个过程速度较慢,效率较低。另外,在清除整个链表队列时,也要逐个读出链表指针,用于地址回收,存在速度慢,效率低的问题。
在数字集成电路设计中普遍地应用队列管理技术,例如,用于管理在系统中各种任务。通常,对于多任务处理、并行任务处理等,需要进行任务队列管理。在任务队列管理中,需要对各个队列的任务进行存储以准备调度。为了节省队列存储硬件开销,往往采用链表的方式对队列的任务进行存储。在实施过程中,一般会让所有队列链式存储在内存(例如静态随机存取存储器(Static Random Access Memory,SRAM))中,这样可以实现碎片化存储,共享存储资源,减少资源开销。
图1为一种链表队列的存储示意图。例如,如图1所示,多个任务队列Q0、Q1和Q2中的任务描述符(即任务内容)都存储在一个SRAM中,Q0队列中的连续节点Q0_0、Q0_1、Q0_2在SRAM中的存储地址并不一定是连续的,这些节点通过每个节点自身记录的在前节点的存储地址的指针pre_ptr以及在后节点的存储地址的指针next_ptr来串联起来。
然而,采用链表队列来存储任务,不可避免会遇到以下问题。第一,当队列的某个节点调度出去以后,需要从该队列的头指针开始索引,一步一步通过每个节点的指针next_ptr查找匹配的描述符任务,这样非常耗时,对于存储任务较多的队列,时间线性增加。第二,当需要清除一个队列时,需要从队列头指针head_ptr开始,一直遍历到尾指针tail_ptr,把链表节点上的所有任务清除,进行地址回收,这样也同样非常耗时,处理时间随着队列任务数量呈线性增长。
至少为了克服上述技术问题,本公开至少一个实施例提供了一种链表队列的管理方法。该链表队列的管理方法包括:对于链表队列提供队列状态管理列表以及使用队列状态管理列表操作链表队列,该链表队列包括至少一个节点,该队列状态管理列表包括分别对应于至少一个节点的至少一个表项,至少一个表项中的每个记录对应节点的节点状态信息,节点状态信息包括对应节点的有效标志和目标索引。
相应地,本公开至少一个实施例还提供了一种对应于上述链表队列管理方法的装置、任务管理方法和非瞬时可读存储介质。
本公开至少一个实施例提供的链表队列的管理方法,通过提供队列状态管理列表来操作链表队列,可以快速地完成对链表队列的节点检索、增加、删除、清除等操作,提高链表队列的操作效率以及提高链表队列的管理效率,从而有效节省了时间开销。
下面通过多个实施例及其示例对根据本公开提供的链表队列管理方法进行非限制性的说明,如下面所描述的,在不相互抵触的情况下这些具体示例或实施例中不同特征可以相互组合,从而得到新的示例或实施例,这些新的示例或实施例也都属于本公开保护的范围。
图2为本公开至少一个实施例提供的一种链表队列的管理方法的流程图。图3为本公开至少一个实施例提供的一种链表队列的示意图。图4为本公开至少一个实施例提供的一种队列状态管理列表的示意图。
例如,在本公开至少一个实施例中,如图2所示的链表队列的管理方法10可以应用于任何需要链表队列的场景,例如,集成电路设计中的各种任务存储管理、计算机操作系统中的各种任务存储管理,还可以应用于其他方面,本公开的实施例对此不作限制。该链表队列的管理方法10包括步骤S101和S102。
步骤S101:对于链表队列提供队列状态管理列表。
该链表队列包括至少一个节点,该队列状态管理列表包括分别对应于至少一个节点的至少一个表项,至少一个表项中的每个记录对应节点的节点状态信息,节点状态信息包括对应节点的有效标志和目标索引。
步骤S102:使用队列状态管理列表操作链表队列。
例如,在本公开至少一个实施例中,以图3所示的链表队列20为链表队列的示例。图3所示的链表队列20当前包括256个节点,即深度为256,该深度可以根据操作(增加或删除节点)改变,即链表队列的深度是可变的。基于链表队列的特性,每个节点具有前指针pre_ptr和后指针next_ptr。在本公开的实施例,当前节点的前指针pre_ptr指向当前节点的上一个节点,当前节点的后指针next_ptr指向当前节点的下一个节点。需要说明的是,虽然图3所示的链表队列20的深度为256,本公开的实施例对链表队列的大小不作限制,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,以图4所示的队列状态管理列表A0为队列状态管理列表的示例。图4中所示的队列状态管理列表A0包括64个表项。例如,64个表项中的每一个对应于图3所示的链表队列20中的节点,每个表项记录对应节点的节点状态信息。该节点状态信息可以包括对应节点的有效标志(VALID)和目标索引(INDEX)。
例如,在本公开至少一个实施例中,可以为每个链表队列提供一个队列状态管理列表。例如,在一个示例中,如果存在16个链表队列,则提供16个队列状态管理列表。需要说明的是,本公开的实施例对链表队列和队列状态管理列表的数目不作限制,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,当链表队列管理方法10应用于任务存储管理时,可以针对多任务处理提供多个队列,例如,每个队列存储不同类型的任务。例如,对于操作系统,一个队列存储视频播放的任务,另一个队列存储拨打和接听电话的任务,又一个队列存储网页浏览的任务等,本公开对此不作限制,可以根据实际需求来设置。例如,为每个队列均提供一个对应的队列状态管理列表。例如,如图4所示,在一个示例中,存在16个任务队列,则提供了16个队列状态管理列表A0至A15,然后将16个任务队列的任务描述符存储在一个存储装置中,例如,存储在一个SRAM中,又例如,存储在一个动态随机存取存储器(Dynamic Random Access Memory,DRAM)中。
若某一链表队列20的某一节点并未存储任务,则相应的队列状态管理列表中对应该节点的表项所记录的有效标志为无效,即VALID为0。若某一链表队列20中某一节点接收并存储了任务,则相应的队列状态管理列表中对应该节点的表项所记录的有效标志为有效,即VALID为1,并且对应该节点的目标索引INDEX为该节点的存储地址。例如,该节点在存储装置(例如SRAM或DRAM)中的存储地址。需要说明的是,本公开的实施例对存储各个链表队列的存储装置不作限制,可以根据实际需求来设置。
需要说明的是,在本公开至少一个实施例中,有效标志为无效意味着VALID置0,有效标志为有效意味着VALID置1,反之亦然,本公开的实施例对此不作限制。
还需要说明的是,表项中记录的节点状态信息除了包括有效标志和目标索引以外,还可以包括序号、优先级信息等,本公开的实施例对此不做限制。例如,图4所示的队列状态管理列表A0中每一个表项包括对应节点的有效标志VALID、目标索引INDEX、序号0至63和优先级PRIORITY。
还需要说明的是,在本公开的实施例中,队列状态管理列表可以包括更多或更少的表项,本公开的实施例对队列状态管理列表的大小不作限制,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,对于步骤S102,通过如图4所示的队列状态管理列表来操作如图3所示的链表队列,例如,检索链表队列中的目标节点、向链表队列增加新的节点、从链表队列删除节点、清除链表队列中所有节点等。
在本公开至少一个实施例提供的链表队列管理方法10中,通过利用对应于链表队列的队列状态管理列表来操作链表队列,可以快速地完成对链表队列的节点检索、增加、删除、清除等操作,提高链表队列的操作效率以及提高链表队列的管理效率,从而有效节省了时间开销。
例如,在本公开至少一个实施例中,对于步骤S102,使用队列状态管理列表操作链表队列,包括:基于队列状态管理列表中至少一个表项的目标索引,检索在链表队列中对应于至少一个表项的至少一个节点。
由于队列状态管理列表中的表项存储有对应节点的目标索引,该目标索引包括对应节点的存储地址,因此,通过队列状态管理列表可以快速地定位或检索链表队列中的节点。
例如,在本公开至少一个实施例中,对于步骤S102,使用队列状态管理列表操作链表队列,包括:使用队列状态管理列表向链表队列增加第一节点,或者使用队列状态管理列表从链表队列删除第二节点。
需要说明的是,在本公开的实施例中,“第一节点”和“第二节点”分别用于指代链表队列的待增加的节点和待删除的节点,并不受限于某一个特定的节点,或某种特定的顺序。
例如,在本公开至少一个实施例中,在链表队列管理方法10应用于任务存储管理的情况下,当接受到一个新任务时,需要向链表队列增加一个节点以存储新任务的描述符(即,任务的具体内容),当调度出一个任务时,需要从链表队列读出相应节点的节点信息,如果需要,将删除一个节点
例如,在本公开至少一个实施例中,使用队列状态管理列表向链表队列增加第一节点,包括:响应于向链表队列增加第一节点,在队列状态管理列表中增加第一表项,该第一表项对应于第一节点;将第一表项的有效标志设置为有效;将第一表项的目标索引设置为第一节点的存储地址。
需要说明的是,在本公开的实施例中,“第一表项”用于指代队列状态管理列表中与链表队列的待增加节点相对应的表项,“第二表项”用于指代队列状态管理列表中与链表队列的待删除节点相对应的表项。“第一表项”和“第二表项”并不受限于某一个特定的表项,或某种特定的顺序。例如,在一个实施例中,在链表队列管理方法10应用于任务存储管理的情况下,响应于接收到一个新任务,也就是响应于增加一个节点,根据接收到的新任务的任务信息确定该任务应该存储在哪个任务队列的哪个节点上,在相应的队列状态管理列表中增加对应该节点的新表项,将新表项的有效标志设为有效,即将VALID设置为1,将新表项的目标索引更新为对应节点的存储地址。例如,在一个实施例中,还可以基于接收到的新任务的任务信息,在对应的新表项中记录优先级等信息,这些信息被发送到后续的仲裁模块进行仲裁,仲裁模块可以根据特定的规则以及接收到的这些信息仲裁出下一个要调度的节点任务。本公开的实施例对仲裁规则等不作限制,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,使用队列状态管理列表向链表队列增加(在链表中插入)第一节点可以包括:将链表队列中的第一节点的上一节点的后指针修改为指向第一节点,将第一节点的下一节点的前指针修改为指向第一节点。例如,在一个示例中,如图3所示,在链表队列中新增加的节点为节点5,该节点的上一个节点为节点10,下一个节点为节点2的情况下,则增加该节点5之后,将节点10的后指针修改为指向节点5,将节点2的前指针指向节点5,从而完成链表队列的节点增加操作。
例如,在本公开至少一个实施例中,使用队列状态管理列表从链表队列删除(在链表中取出)第二节点,包括:响应于从链表队列删除第二节点,将队列状态管理列表中的第二表项中的有效标志设置为无效,第二表项对应于第二节点;或者从队列状态管理列表删除第二表项。例如,在一个实施例中,在链表队列管理方法10应用于任务存储管理的情况下,响应于从任务队列中调度出一个任务,即从任务队列中删除一个节点,则将对应的队列状态管理列表中的对应该节点的表项中的有效标志设置为无效,即VALID置0。例如,在一个示例中,任务队列中调度出去的任务对应于队列状态管理列表Q1的序号为10的表项,则将该表项(Q1,10)中的有效标志VALID设置为无效,即VALID=0,并读出该表项中(Q1,10)中的目标索引INDEX,根据该目标索引INDEX读取对应该节点的任务描述符。
又例如,在本公开至少一个实施例中,响应于从链表队列中删除某一节点,则从相应的队列状态管理列表中删除对应节点的表项,从而减少队列状态管理列表的空间开销。例如,在一个示例中,响应于从链表队列中删除某一节点,该节点对应于队列状态管理列表Q1的序号为10的表项,则从队列状态管理列表Q1中删除序号为10的表项,然后可适应性地调整该列表中其他表项的序号。例如,在一个示例中,队列状态管理列表Q1中当前有12个表项,序号分别为0至11。删除了序号为10的表项后,原先序号为11的表项的序号修改为10。又例如,在另一个示例中,队列状态管理列表Q1中当前有12个表项,序号分别为0至11。删除了序号为11的表项后,也可以不用调整其他表项的序号。
需要说明的是,在本公开的实施例中,当删除链表队列中的一个节点时,也可以不删除对应该节点的表项,而是将该表项中的有效标志设置为无效即可,本公开的实施例对此不作限制,可以根据实际需求来设置。
在本公开至少一个实施例中,使用队列状态管理列表从链表队列删除第二节点,可以包括:将链表队列中的第二节点的上一节点的后指针修改为指向第二节点的下一节点,将第二节点的下一节点的前指针修改为指向第二节点的上一节点。
例如,在一个实施例中,如图3所示,当链表队列中要删除的节点为节点5,节点5的上一个节点为节点10,下一个节点为节点2,则从链表队列中删除节点5以后,将节点10的后指针修改为指向节点2,将节点2的前指针指向节点10,从而完成链表队列的节点删除操作。
图5为本公开至少一个实施例提供的另一种链表队列管理方法的流程图。如图5所示,例如,链表队列管理方法50包括以下步骤S501-S503。
步骤S501:对于链表队列提供队列状态管理列表。
该链表队列包括至少一个节点,该队列状态管理列表包括分别对应于至少一个节点的至少一个表项,至少一个表项中的每个记录对应节点的节点状态信息,节点状态信息包括对应节点的有效标志和目标索引。
步骤S502:使用队列状态管理列表操作链表队列。
步骤S503:对于链表队列提供可用地址管理列表。
可用地址管理列表配置为可容纳多个可用节点地址,多个可用节点地址每个备用于构建链表队列的新节点。
图5所示的链表队列的管理方法50的步骤S501与图2所示链表队列的管理方法10的步骤S101基本一致,对步骤S501的描述可以参考以上对步骤S101的描述,为了简洁在此不再赘述。链表队列的管理方法50的步骤S502与图2所示链表队列的管理方法10的步骤S102基本一致,对步骤S502的描述可以参考以上对步骤S101的描述,为了简洁在此不再赘述。
图6为本公开至少一个实施例提供的一种可用地址管理列表的示意图。
例如,在本公开至少一个实施例中,对于步骤S503,可用地址管理列表可以是一种先进先出(FIFO)队列,也可以是一种先进后出(FILO)队列,本公开的实施例对此不作限制。例如,在一个实施例中,如图6所示,可用地址管理列表60是一个深度为256的FIFO队列,当然也可以是其他大小的队列,本公开的实施例对此不作限制。
例如,在本公开至少一个实施例中,可用地址管理列表中存储的每个可用节点地址对应于可用于链表队列中一个节点的存储地址。例如,在本公开至少一个实施例中,可用地址管理列表可以用于一个链表队列,也可以用于多个链表队列。例如,在一个示例中,当存在多个链表队列时,可用地址管理列表中的每个可用节点地址对应于可用于多个链表队列中任一个中的一个节点的存储地址,即每个可用节点地址备用于构建多个链表队列中任一个的新节点。
例如,在本公开至少一个实施例中,可用地址管理列表被初始化为非空以包括多个初始的可用节点地址,多个初始的可用节点地址用于创建链表队列。例如,在一个示例中,可用地址管理列表中的多个初始的可用节点地址可以是可用地址管理列表中各个可用节点地址对应的索引值。例如,在一个示例中,如图6所示,可用地址管理列表60被初始化为Index_0存储相应的索引值0,Index_1存储相应的索引值1,Index_2存储相应的索引值2,……,依次类推。需要说明的是,在本公开的实施例中,可用地址管理列表的初始化方式不限于此,也可以采用其他的方式进行初始化。
例如,在本公开至少一个实施例中,在链表队列的管理方法50中,使用队列状态管理列表向链表队列增加第一节点,可以包括:响应于可用地址管理列表非空,从可用地址管理列表取出第一可用节点地址,使用第一可用节点地址在链表队列中增加第一节点,第一可用节点地址对应于第一节点的存储地址。
需要说明的是,在本公开的实施例中,“第一可用节点地址”用于指代可用地址管理列表中的任一个可用节点地址,备用于向链表队列增加一个新节点,“第二可用节点地址”用于指代可用地址管理列表的与链表队列的待删除节点相对应的可用节点地址。“第一可用节点地址”和“第二可用节点地址”并不受限于某一个特定的可用节点地址,或某种特定的顺序。
例如,在一个实施例中,在链表队列管理方法50应用于任务存储管理的情况下,当接收到一个新任务时,需要向链表队列增加一个新的节点,则从可用地址管理列表60取出一个可用节点地址,例如Index_0,用于存储该新任务的任务描述符,并且该新增节点对应的表项所记录的目标索引是该可用节点地址(即Index_0)。
例如,在本公开至少一个实施例中,在链表队列的管理方法50中,使用队列状态管理列表从链表队列删除第二节点,还包括:响应于从链表队列删除第二节点,向可用地址管理列表加入第二可用节点地址,该第二可用节点地址对应于第二节点的存储地址。例如,在一个实施例中,在链表队列管理方法50应用于任务存储管理的情况下,当调度出一个任务时,从链表队列中读出相应的节点信息(即任务描述符),并删掉该节点。响应于从链表队列删除一个节点,则向可用地址管理列表60加入一个可用节点地址,该可用节点地址是链表队列中被删除节点的存储地址,由此可以用于构建某一链表队列的新节点。
例如,在本公开至少一个实施例中,对于步骤S102或者S502,使用队列状态管理列表操作链表队列可以包括:将队列状态管理列表中有效标志为有效的所有表项的有效标志设置为无效,以清除链表队列。
例如,在本公开至少一个实施例中,清除链表队列的操作不需要从头指针逐个读取节点,而是将队列状态管理列表中所有VALID为有效的表项的VALID修改为无效。
例如,在本公开至少一个实施例中,对于清除链表队列,除了将队列状态管理列表中所有VALID为有效的表项的VALID修改为无效以外,还可以将所有VALID为有效的表项对应的目标索引INDEX写入到可用地址管理列表中,完成所有可用地址的回收。
因此,在本公开至少一个实施例提供的链表队列管理方法50中,通过对链表队列提供队列状态管理列表和可用地址管理列表,可以快速的完成对链表队列的节点检索、增加、删除等操作,提高链表队列的管理效率,有效节省了时间开销。
需要说明的是,本公开的各个实施例中,链表队列管理方法10/50的各个步骤的执行顺序不受限制,虽然上文以特定顺序描述了各个步骤的执行过程,但这并不构成对本公开实施例的限制。链表队列管理方法10/50中的各个步骤可以串行执行或并行执行,这可以根据实际需求而定。例如,链表队列管理方法10/50还可以包括更多或更少的步骤,本公开的实施例对此不作限制。
图7为本公开至少一个实施例提供的任务管理方法的流程图。
例如,本公开至少一个实施例还提供了一种任务管理方法70。任务管理方法70包括如下步骤S701和S702。
S701:使用以上描述的链表队列管理方法10/50来管理链表队列。
S702:基于链表队列来管理至少一个任务。
例如,在本公开至少一个实施例中,可以提供多个链表队列来进行任务管理,并使用上述任一实施例中提供的链表队列管理方法10/50来管理链表队列。任务管理方法70的各个操作基本类似上述链表队列管理方法10/50,任务管理方法70的具体操作可以参考以上对链表队列管理方法10/50的相关描述,为了简洁在此不再赘述。
应当理解的是,本公开至少一个实施例提供的任务管理方法70可以实施前述链表队列管理方法10/50,也可以实现与前述链表队列管理方法10/50相似的技术效果。例如,在本公开至少一个实施例提供的任务管理方法70中,通过对链表队列提供队列状态管理列表,可以快速地完成对任务队列的节点检索、增加、删除、清除等操作,提高链表队列的操作效率以及提高链表队列的管理效率,从而有效节省了时间开销。
需要说明的是,本公开的各个实施例中,任务管理方法70的各个步骤的执行顺序不受限制,虽然上文以特定顺序描述了各个步骤的执行过程,但这并不构成对本公开实施例的限制。任务管理方法70中的各个步骤可以串行执行或并行执行,这可以根据实际需求而定。例如,任务管理方法70还可以包括更多或更少的步骤,本公开的实施例对此不作限制。
图8为本公开至少一个实施例提供的一种链表队列的管理装置的示意框图。
如图8所示,链表队列的管理装置80包括状态管理单元801和操作单元802。
例如,在一个实施例中,状态管理单元801被配置为对于链表队列提供队列状态管理列表,链表队列包括至少一个节点,队列状态管理列表包括分别对应于至少一个节点的至少一个表项,至少一个表项中的每个记录对应节点的节点状态信息,节点状态信息包括对应节点的有效标志和目标索引。例如,该状态管理单元801可以实现步骤S101,其具体实现方法可以参考步骤S101的相关描述,在此不再赘述。
操作单元802被配置为使用队列状态管理列表操作链表队列。例如,该操作单元802可以实现步骤S102,其具体实现方法可以参考步骤S102的相关描述,在此不再赘述。
例如,上述状态管理单元801和操作单元802被配置执行的具体操作均可以参见上文中本公开的至少一个实施例提供的链表队列管理方法10和50的相关描述,在此不再赘述。
需要说明的是,上述状态管理单元801和操作单元802可以通过软件、硬件、固件或它们的任意组合实现,例如,上述状态管理单元801和操作单元802可以分别实现为上述状态管理电路801和操作电路802,本公开的实施例对它们的具体实施方式不作限制。
例如,在本公开至少一个实施例中,操作单元802可以包括检索单元。例如,该检索单元可以配置为基于队列状态管理列表中至少一个表项的目标索引,检索在链表队列中对应于至少一个表项的至少一个节点。例如,该检索单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,在本公开至少一个实施例中,操作单元802可以包括增加单元和/或删除单元。例如,该增加单元被配置为使用队列状态管理列表向链表队列增加第一节点,例如,该删除单元被配置为使用队列状态管理列表从链表队列删除第二节点。例如,该增加单元和/或删除单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,在本公开至少一个实施例中,链表队列的管理装置80除了状态管理单元801和操作单元802以外,还可以包括可用地址管理单元。该可用地址管理单元被配置为对于链表队列提供可用地址管理列表,可用地址管理列表配置为可容纳多个可用节点地址,多个可用节点地址每个备用于构建链表队列的新节点。例如,该可用地址管理单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,在一些实施例中,可用地址管理列表用于包括链表队列的多个链表队列。
例如,在本公开至少一个实施例中,增加单元还包括设置单元。该设置单元配置为:响应于向链表队列增加第一节点,在队列状态管理列表中增加第一表项,第一表项对应于第一节点,将第一表项的有效标志设置为有效,以及将第一表项的目标索引设置为第一节点的存储地址。例如,该设置单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,在本公开至少一个实施例中,增加单元还包括地址取出单元。该地址取出单元被配置为响应于可用地址管理列表非空,从可用地址管理列表取出第一可用节点地址,使用第一可用节点地址在链表队列中增加第一节点,第一可用节点地址对应于第一节点的存储地址。例如,该地址取出单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,在本公开至少一个实施例中,增加单元还包括指针修改单元。该指针修改单元被配置为将链表队列中的第一节点的上一节点的后指针修改为指向第一节点,将第一节点的下一节点的前指针修改为指向第一节点。例如,该指针修改单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,在本公开至少一个实施例中,删除单元包括设置子单元。该设置子单元被配置为响应于从链表队列删除第二节点,将队列状态管理列表中的第二表项中的有效标志设置为无效,第二表项对应于第二节点;或者从队列状态管理列表删除第二表项。
例如,在本公开至少一个实施例中,节点状态信息还包括序号,删除单元还包括删除子单元,该删除子单元被配置为:响应于从队列状态管理列表删除第二表项,修改除第二表项之外的至少一项表项的序号。例如,该删除子单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,在本公开至少一个实施例中,删除单元还包括地址回收单元。该地址回收单元被配置为:响应于从链表队列删除第二节点,向可用地址管理列表加入第二可用节点地址,第二可用节点地址对应于第二节点的存储地址。例如,该地址回收单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,在本公开至少一个实施例中,删除单元还包括指针修改子单元。该指针修改子单元被配置为将链表队列中的第二节点的上一节点的后指针修改为指向第二节点的下一节点,将第二节点的下一节点的前指针修改为指向第二节点的上一节点。例如,该指针修改子单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,在一些实施例中,可用地址管理列表被初始化为非空以包括多个初始的可用节点地址,多个初始的可用节点地址用于创建链表队列。
例如,在一些实施例中,可用地址管理列表为先进先出队列或先进后出队列。
例如,在本公开至少一个实施例中,操作单元802还包括清除单元。例如,该清除单元配置为将队列状态管理列表中有效标志为有效的所有表项的有效标志设置为无效,以清除链表队列。例如,该清除单元可以实现的操作可以参考前述链表队列管理方法10和50的相关描述,在此不再赘述。
例如,上述检索单元、增加单元、删除单元、删除子单元、可用地址管理单元、设置单元、设置子单元、地址取出单元、地址回收单元、指针修改单元、指针修改子单元和清除单元被配置执行的具体操作均可以参见上文中本公开的至少一个实施例提供的链表队列管理方法10和50的相关描述,在此不再赘述。
需要说明的是,上述检索单元、增加单元、删除单元、删除子单元、可用地址管理单元、设置单元、设置子单元、地址取出单元、地址回收单元、指针修改单元、指针修改子单元和清除单元等可以通过软件、硬件、固件或它们的任意组合实现。例如,上述检索单元、增加单元、删除单元、删除子单元、可用地址管理单元、设置单元、设置子单元、地址取出单元、地址回收单元、指针修改单元、指针修改子单元和清除单元可以分别实现为检索电路、增加电路、删除电路、删除子电路、可用地址管理电路、设置电路、设置子电路、地址取出电路、地址回收电路、指针修改电路、指针修改子电路和清除电路,本公开的实施例对它们的具体实施方式不作限制。
应当理解的是,本公开至少一个实施例提供的链表队列的管理装置80可以实施前述链表队列的管理方法10和50,也可以实现与前述链表队列的管理方法10和50相似的技术效果。例如,通过本公开至少一个实施例提供的链表队列的管理装置80,对链表队列提供队列状态管理列表,可以快速地完成对链表队列的节点检索、增加、删除、清除等操作,提高链表队列的操作效率以及提高链表队列的管理效率,从而有效节省了时间开销。
需要注意的是,在本公开的实施例中,该用于链表队列的管理装置80可以包括更多或更少的电路或单元,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。
图9是根据本公开至少一个实施例的另一种链表队列的管理装置的示意框图。
本公开至少一个实施例还提供了一种链表队列的管理装置90。如图9所示,链表队列的管理装置90包括处理器910和存储器920。存储器920包括一个或多个计算机程序模块921。一个或多个计算机程序模块921被存储在存储器920中并被配置为由处理器910执行,该一个或多个计算机程序模块921包括用于执行本公开的至少一个实施例提供的链表队列的管理方法10和50的指令,其被处理器910执行时,可以执行本公开的至少一个实施例提供的链表队列的管理方法10和50中的一个或多个步骤。存储器920和处理器910可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器910可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器910可以为通用处理器或专用处理器,可以控制链表队列管理装置90中的其它组件以执行期望的功能。
例如,存储器920可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。
在计算机可读存储介质上可以存储一个或多个计算机程序模块921,处理器910可以运行一个或多个计算机程序模块921,以实现链表队列的管理装置90的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。链表队列的管理装置90的具体功能和技术效果可以参考上文中关于链表队列的管理方法10/50的描述,此处不再赘述。
图10为本公开至少一个实施例提供的又一种链表队列的管理装置300的示意框图。
本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图10示出的链表队列管理装置300仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
例如,如图10所示,在一些示例中,链表队列管理装置300包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储装置308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM303中,还存储有计算机系统操作所需的各种程序和数据。处理装置301、ROM 302以及RAM303通过总线304被此相连。输入/输出(I/O)接口305也连接至总线304。
例如,以下部件可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括诸如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信装置309。通信装置309可以允许链表队列管理装置300与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储装置308。虽然图10示出了包括各种装置的链表队列管理装置300,但是应理解的是,并不要求实施或包括所有示出的装置。可以替代地实施或包括更多或更少的装置。
例如,该链表队列管理装置300还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置309可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。
例如,链表队列的管理装置300可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪等任何设备,也可以为任意的数据处理装置及硬件的组合,本公开的实施例对此不作限制。
例如,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置308被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例所公开的链表队列管理方法10/50。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述链表队列管理装置300中所包含的;也可以是单独存在,而未装配入该链表队列管理装置300中。
图11为本公开至少一个实施例提供的一种非瞬时可读存储介质的示意框图。
本公开的实施例还提供一种非瞬时可读存储介质。图11是根据本公开至少一个实施例的一种非瞬时可读存储介质的示意框图。如图11所示,非瞬时可读存储介质100上存储有计算机指令111,该计算机指令111被处理器执行时执行如上所述的链表队列的管理方法10/50中的一个或多个步骤。
例如,该非瞬时可读存储介质100可以是一个或多个计算机可读存储介质的任意组合,例如,一个计算机可读存储介质包含用于对于链表队列提供队列状态管理列表的计算机可读的程序代码,另一个计算机可读存储介质包含用于使用队列状态管理列表操作链表队列的计算机可读的程序代码。当然,上述各个程序代码也可以存储在同一个计算机可读介质中,本公开的实施例对此不作限制。
例如,当该程序代码由计算机读取时,计算机可以执行该计算机存储介质中存储的程序代码,执行例如本公开任一个实施例提供的链表队列的管理方法10/50。
例如,存储介质可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、闪存、或者上述存储介质的任意组合,也可以为其他适用的存储介质。例如,该可读存储介质也可以为图9中的存储器920,相关描述可以参考前述内容,此处不再赘述。
本公开的实施例还提供一种电子设备。图12是根据本公开至少一个实施例的一种电子设备的示意框图。如图12所示,该电子设备120可以包括如上所述的链表队列的管理装置80/90/300。例如,该电子设备120可以实施本公开任一个实施例提供的链表队列的管理方法10/50。
在本公开中,术语“多个”指两个或两个以上,除非另有明确的限定。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (20)

1.一种链表队列的管理方法,包括:
对于所述链表队列提供队列状态管理列表,其中,所述链表队列包括至少一个节点,所述队列状态管理列表包括分别对应于所述至少一个节点的至少一个表项,所述至少一个表项中的每个记录对应节点的节点状态信息,所述节点状态信息包括所述对应节点的有效标志和目标索引;以及
使用所述队列状态管理列表操作所述链表队列。
2.根据权利要求1所述的方法,其中,使用所述队列状态管理列表操作所述链表队列,包括:
基于所述队列状态管理列表中所述至少一个表项的目标索引,检索在所述链表队列中对应于所述至少一个表项的至少一个节点。
3.根据权利要求1所述的方法,其中,使用所述队列状态管理列表操作所述链表队列,包括:
使用所述队列状态管理列表向所述链表队列增加第一节点;或者
使用所述队列状态管理列表从所述链表队列删除第二节点。
4.根据权利要求3所述的方法,还包括:
对于所述链表队列提供可用地址管理列表,其中,所述可用地址管理列表配置为可容纳多个可用节点地址,所述多个可用节点地址每个备用于构建所述链表队列的新节点。
5.根据权利要求4所述的方法,其中,所述可用地址管理列表用于包括所述链表队列的多个链表队列。
6.根据权利要求4所述的方法,其中,使用所述队列状态管理列表向所述链表队列增加所述第一节点,包括:
响应于向所述链表队列增加所述第一节点,在所述队列状态管理列表中增加第一表项,其中,所述第一表项对应于所述第一节点;
将所述第一表项的有效标志设置为有效;
将所述第一表项的目标索引设置为所述第一节点的存储地址。
7.根据权利要求6所述的方法,其中,使用所述队列状态管理列表向所述链表队列增加所述第一节点,还包括:
响应于所述可用地址管理列表非空,从所述可用地址管理列表取出第一可用节点地址,使用所述第一可用节点地址在所述链表队列中增加所述第一节点,其中,所述第一可用节点地址对应于所述第一节点的存储地址。
8.根据权利要求6或7所述的方法,其中,使用所述队列状态管理列表向所述链表队列增加所述第一节点,还包括:
将所述链表队列中的第一节点的上一节点的后指针修改为指向所述第一节点,将所述第一节点的下一节点的前指针修改为指向所述第一节点。
9.根据权利要求4所述的方法,其中,使用所述队列状态管理列表从所述链表队列删除所述第二节点,包括:
响应于从所述链表队列删除所述第二节点,将所述队列状态管理列表中的第二表项中的有效标志设置为无效,其中,所述第二表项对应于所述第二节点;或者
从所述队列状态管理列表删除所述第二表项。
10.根据权利要求9所述的方法,其中,所述节点状态信息还包括序号,
使用所述队列状态管理列表从所述链表队列删除所述第二节点,还包括:
响应于从所述队列状态管理列表删除所述第二表项,修改除所述第二表项之外的至少一项表项的序号。
11.根据权利要求9所述的方法,其中,使用所述队列状态管理列表从所述链表队列删除所述第二节点,还包括:
响应于从所述链表队列删除所述第二节点,向所述可用地址管理列表加入第二可用节点地址,其中,所述第二可用节点地址对应于所述第二节点的存储地址。
12.根据权利要求9-11中任一项所述的方法,其中,使用所述队列状态管理列表从所述链表队列删除所述第二节点,还包括:
将所述链表队列中的第二节点的上一节点的后指针修改为指向所述第二节点的下一节点,将所述第二节点的下一节点的前指针修改为指向所述第二节点的上一节点。
13.根据权利要求4所述的方法,其中,所述可用地址管理列表被初始化为非空以包括多个初始的可用节点地址,所述多个初始的可用节点地址用于创建所述链表队列。
14.根据权利要求4所述的方法,其中,所述可用地址管理列表为先进先出队列或先进后出队列。
15.根据权利要求1所述的方法,其中,使用所述队列状态管理列表操作所述链表队列,包括:
将所述队列状态管理列表中有效标志为有效的所有表项的有效标志设置为无效,以清除所述链表队列。
16.根据权利要求1所述的方法,其中,所述节点状态信息还包括所述对应节点的优先级,所述对应节点的目标索引包括所述对应节点的存储地址。
17.一种任务管理方法,包括:
使用权利要求1-16中任一项所述的管理方法来管理链表队列,
基于所述链表队列来管理至少一个任务。
18.一种链表队列的管理装置,包括:
状态管理单元,被配置为对于所述链表队列提供队列状态管理列表,其中,所述链表队列包括至少一个节点,所述队列状态管理列表包括分别对应于所述至少一个节点的至少一个表项,所述至少一个表项中的每个记录对应节点的节点状态信息,所述节点状态信息包括所述对应节点的有效标志和目标索引;
操作单元,被配置为使用所述队列状态管理列表操作所述链表队列。
19.一种链表队列的管理装置,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于执行如权利要求1-16中任一项所述的链表队列的管理方法的指令。
20.一种非瞬时可读存储介质,其上存储有计算机指令,其中,所述计算机指令被处理器执行时执行如权利要求1-16中任一项所述的链表队列的管理方法。
CN202210245388.6A 2022-03-14 2022-03-14 链表队列的管理方法及装置、任务管理方法和存储介质 Active CN114579812B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210245388.6A CN114579812B (zh) 2022-03-14 2022-03-14 链表队列的管理方法及装置、任务管理方法和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210245388.6A CN114579812B (zh) 2022-03-14 2022-03-14 链表队列的管理方法及装置、任务管理方法和存储介质

Publications (2)

Publication Number Publication Date
CN114579812A true CN114579812A (zh) 2022-06-03
CN114579812B CN114579812B (zh) 2023-09-15

Family

ID=81774700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210245388.6A Active CN114579812B (zh) 2022-03-14 2022-03-14 链表队列的管理方法及装置、任务管理方法和存储介质

Country Status (1)

Country Link
CN (1) CN114579812B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080010308A1 (en) * 2006-06-23 2008-01-10 Microsoft Corporation Concurrent read and write access to a linked list
CN102130833A (zh) * 2011-03-11 2011-07-20 中兴通讯股份有限公司 一种高速路由器流量管理芯片链表存储管理方法及系统
WO2012094862A1 (zh) * 2011-01-10 2012-07-19 中兴通讯股份有限公司 操作系统的任务调度方法、装置及计算机
KR20160121717A (ko) * 2015-04-10 2016-10-20 충남대학교산학협력단 임의 접근 및 상태 접근이 가능한 자료구조 운용장치 및 그 운용 방법
US20170091245A1 (en) * 2015-09-28 2017-03-30 International Business Machines Corporation Index management
US20180181647A1 (en) * 2016-12-28 2018-06-28 Cerner Innovation, Inc. System and Method for Editing a Linked List
CN111767436A (zh) * 2020-06-23 2020-10-13 北京思特奇信息技术股份有限公司 一种hash索引数据的存储、读取方法与系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080010308A1 (en) * 2006-06-23 2008-01-10 Microsoft Corporation Concurrent read and write access to a linked list
WO2012094862A1 (zh) * 2011-01-10 2012-07-19 中兴通讯股份有限公司 操作系统的任务调度方法、装置及计算机
CN102130833A (zh) * 2011-03-11 2011-07-20 中兴通讯股份有限公司 一种高速路由器流量管理芯片链表存储管理方法及系统
KR20160121717A (ko) * 2015-04-10 2016-10-20 충남대학교산학협력단 임의 접근 및 상태 접근이 가능한 자료구조 운용장치 및 그 운용 방법
US20170091245A1 (en) * 2015-09-28 2017-03-30 International Business Machines Corporation Index management
US20180181647A1 (en) * 2016-12-28 2018-06-28 Cerner Innovation, Inc. System and Method for Editing a Linked List
CN111767436A (zh) * 2020-06-23 2020-10-13 北京思特奇信息技术股份有限公司 一种hash索引数据的存储、读取方法与系统

Also Published As

Publication number Publication date
CN114579812B (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
US7903476B2 (en) Systems and techniques for non-volatile memory buffering
JP5216845B2 (ja) アプリケーション・プログラム間で情報を共有するための技術
US8938603B2 (en) Cache system optimized for cache miss detection
EP2898430B1 (en) Mail indexing and searching using hierarchical caches
CN102541538A (zh) 一种基于移动终端的图片显示方法及装置
US8965909B2 (en) Type-ahead search optimization
CN111198856B (zh) 文件管理方法、装置、计算机设备和存储介质
CN112035529B (zh) 缓存方法、装置、电子设备及计算机可读存储介质
CN113553300B (zh) 文件的处理方法、装置、可读介质和电子设备
CN116841623A (zh) 访存指令的调度方法、装置、电子设备和存储介质
CN114579812B (zh) 链表队列的管理方法及装置、任务管理方法和存储介质
CN110908996A (zh) 一种数据处理的方法和装置
CN116841624A (zh) 访存指令的调度方法、装置、电子设备和存储介质
CN116820579A (zh) 访存指令的调度方法、装置、电子设备和存储介质
CN114448890B (zh) 寻址方法、装置、电子设备及存储介质
CN115712388A (zh) 固态盘的数据存储方法、装置、设备及存储介质
CN114817090A (zh) 低ram消耗mcu通信管理方法及系统
CN113342270A (zh) 卷卸载方法、装置和电子设备
CN108804625A (zh) 一种lsm树的优化方法、装置及计算机设备
CN108446144A (zh) 一种应用程序启动方法、装置、终端及存储介质
CN102867060A (zh) 一种数据快速搜索方法、装置及系统
EP3588319A2 (en) Memory module
CN113867681B (zh) 数据处理方法及装置、数据处理设备和存储介质
CN112134805B (zh) 基于硬件实现的快速路由更新电路结构及更新方法
CN116540951B (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
CP03 Change of name, title or address

Address after: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai

Patentee after: Shanghai Bi Ren Technology Co.,Ltd.

Country or region after: China

Address before: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai

Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd.

Country or region before: China

CP03 Change of name, title or address