首页> 中国专利> 内核对象的管理方法、装置、存储介质及电子设备

内核对象的管理方法、装置、存储介质及电子设备

摘要

本发明实施例公开了一种内核对象的管理方法、装置、存储介质及电子设备,所述方法包括:分别为每种类型的内核对象分配对应的主对象索引表;其中,主对象索引表为包含第一预设数量个表项的地址资源;当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,第一目标次对象索引表为包含空闲对象节点的次对象索引表;第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;从第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点;基于第一目标对象节点记录待创建内核对象。通过本发明实施例提供的技术方案,可有效提升空闲地址资源的使用效率及内核对象创建的实时性。

著录项

  • 公开/公告号CN113312522A

    专利类型发明专利

  • 公开/公告日2021-08-27

    原文格式PDF

  • 申请/专利权人 科东(广州)软件科技有限公司;

    申请/专利号CN202110732401.6

  • 发明设计人 李燕;

    申请日2021-06-30

  • 分类号G06F16/901(20190101);G06F16/903(20190101);

  • 代理机构11332 北京品源专利代理有限公司;

  • 代理人孟金喆

  • 地址 510530 广东省广州市黄埔区连云路2号601房

  • 入库时间 2023-06-19 12:22:51

说明书

技术领域

本发明实施例涉及计算机技术领域,尤其涉及一种内核对象的管理方法、装置、存储介质及电子设备。

背景技术

目前,内核堆创建以后,会在内核堆中创建多种类型的内核对象,如任务对象、管道对象、定时器对象、消息队列对象、进程对象等,其中,同一类型的内核对象具有相同的数据结构。实际应用中,内核堆中的内核对象会随着系统的运行而不断地发生变化,因此需要对内核对象进行管理,下面以嵌入式操作系统为例,对相关技术中的内核对象的管理方法进行介绍。

当前,对嵌入式操作系统的内核对象的管理方式分为两种,一种是将内核对象的ID作为内核对象的管理结构,即通过内核对象的ID对内核对象信息创建、获取及删除等相关管理操作,这种方式可保证创建、获取、删除内核对象的实时性,但是,由于用户可通过内核对象ID可直接访问内核对象的所有数据成员用户,容易对内核对象的数据结构进行修改,不安全。还有一种是用于存储内核对象的地址资源的ID作为内核对象的索引,当每次创建一批内核对象时,需要将之前已经创建好的内核对象的数据结构重新拷贝到用于存储新创建的内核对象的地址资源中,导致内核对象创建时间长,影响系统的实时性。

发明内容

本发明实施例提供一种内核对象的管理方法、装置、存储介质及电子设备,可有效提升空闲地址资源的使用效率及内核对象创建的实时性。

第一方面,本发明实施例提供了一种内核对象的管理方法,包括:

分别为每种类型的内核对象分配对应的主对象索引表;其中,所述主对象索引表为包含第一预设数量个表项的地址资源;

当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,所述第一目标次对象索引表为包含空闲对象节点的次对象索引表;所述第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;所述对象节点为所述第一目标次对象索引表中的子地址资源;从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点;

基于所述第一目标对象节点记录所述待创建内核对象。

第二方面,本发明实施例还提供了一种内核对象的管理装置,包括:

主对象索引表分配模块,用于分别为每种类型的内核对象分配对应的主对象索引表;其中,所述主对象索引表为包含第一预设数量个表项的地址资源;

第一次对象索引表获取模块,用于当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,所述第一目标次对象索引表为包含空闲对象节点的次对象索引表;所述第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;所述对象节点为所述第一目标次对象索引表中的子地址资源;

第一对象节点确定模块,用于从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点;

内核对象记录模块,用于基于所述第一目标对象节点记录所述待创建内核对象。

第三方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的内核对象的管理方法。

第四方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的内核对象的管理方法。

本发明实施例提供的内核对象的管理方案,分别为每种类型的内核对象分配对应的主对象索引表;其中,所述主对象索引表为包含第一预设数量个表项的地址资源;当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,所述第一目标次对象索引表为包含空闲对象节点的次对象索引表;所述第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;所述对象节点为所述第一目标次对象索引表中的子地址资源;从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点;基于所述第一目标对象节点记录所述待创建内核对象。通过本发明实施例提供的技术方案,分别为各类内核对象创建主对象索引表,当创建内核对象时,直接获取与待创建内核对象对应的包含空闲对象节点的次对象索引表,其中,该次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源,然后,基于该次对象索引表中的一个空闲对象节点对内核对象进行创建,不仅可有效提升空闲地址资源的使用效率及内核对象创建的实时性,避免每次新创建内核对象时,需将之前创建的内核对象的数据结构重新拷贝到新的地址资源中,导致内核对象创建时间长、实时性差的情况发生。另外,由于每类内核对象专用一个主对象索引表,通过主对象索引表中的任一空闲表项指向次对象索引表,且次对象索引表中包含与待创建内核对象的数据结构大小相同的内核对象,可有效避免内核堆中内存碎片的产生。

附图说明

图1是本发明一实施例提供的一种内核对象的管理方法的流程图;

图2是本发明另一实施例中的一种内核对象的管理方法的流程图;

图3是本发明一实施例提供的主对象索引表指向次对象索引表的示意图;

图4是本发明另一实施例中的一种内核对象的管理装置的结构示意图;

图5是本发明另一实施例中的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。

应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

图1为本发明一实施例提供的一种内核对象的管理方法的流程图,本发明实施例可适用于对内核对象进行管理的情况,该方法可以由内核对象的管理装置来执行,该装置可由硬件和/或软件组成,并一般可集成在电子设备中。如图1所示,该方法具体包括如下步骤:

步骤110,分别为每种类型的内核对象分配对应的主对象索引表;其中,所述主对象索引表为包含第一预设数量个表项的地址资源。

其中,内核对象可以包括多种类型,如可以包括存取符号对象、事件对象、文件对象、文件映射对象、I/O完成端口对象、作业对象、信箱对象、互斥对象、管道对象、进程对象、信标对象、线程对象和等待计时器对象等,其中,同一类型的内核对象具有相同的数据结构。在本发明实施例中,当对内核对象进行初始化时,可通过内核对象初始化接口为每种类型的内核对象分配一个指定大小的主对象索引表,其中,主对象索引表中包含第一预设数量个表项。可以理解的是,对内核对象初始化后,每种类型的内核对象对应一个主对象索引表,每种类型的内核对象对应的主对象索引表为用于记录该类内核对象的大的地址资源,而主对象索引表中的每个表项为该主对象索引表中的子地址资源。

步骤120,当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,所述第一目标次对象索引表为包含空闲对象节点的次对象索引表;所述第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;所述对象节点为所述第一目标次对象索引表中的子地址资源。

在本发明实施例中,接收内核对象创建指令,其中,内核对象创建指令中包含待创建内核对象的所属类型。具体的,当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表,其中,第一目标次对象索引表为包含空闲对象节点的次对象索引表,第一目标次对象索引表记录于与待创建内核对象对应的主对象索引表中的空闲表项中。可以理解的是,第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的某个空闲表项指向的地址资源,而空闲对象节点为第一目标次对象索引表中的空闲地址资源。示例性的,第一目标次对象索引表可以为当接收到内核对象创建指令时,为待创建内核对象实时创建的包含第二预设数量个对象节点的地址资源,其中,第二预设数量个对象节点为所述第一目标次对象索引表中的子地址资源,每个对象节点可用于记录与待创建内核对象所属类型的内核对象的数据结构。又示例性的,第一目标次对象索引表为当接收到内核对象创建指令时,已经创建好的与待创建内核对象对应的次对象索引表,其中,该第一目标次对象索引表中包含空闲对象节点。可以理解的是,当接收到内核对象创建指令时,已经包含与待创建内核对象对应的次对象索引表,且次对此索引表中包含空闲对象节点,因此,可将该次对象索引表作为第一目标次对象索引表。

步骤130,从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点。

示例性的,可从第一目标次对象索引表中的所有空闲对象节点中,随机选择一个空闲对象节点作为第一目标对象节点,还可将第一目标次对象索引表中的所有空闲对象节点中,编号最小的一个空闲对象节点作为第一目标对象节点。可选的,当第一目标次对象索引表为多个时,可将主对象索引表中用于指向第一目标次对象索引表的最小表项编号,对应的次对象索引表中的任一空闲对象节点或编号最小的空闲对象节点作为第一目标对象节点。需要说明的是,本发明实施例对从第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点的方式不做限定。

步骤140,基于所述第一目标对象节点记录所述待创建内核对象。

在本发明实施例中,基于第一目标对象节点记录待创建内核对象,具体的,基于第一目标对象节点记录待创建内核对象的数据结构,即基于第一目标对象节点存放待创建内核对象,以在与第一目标对象节点对应的内核空间中完成内核对象的创建。其中,第一目标对象节点为用于记录待创建内核对象的地址资源。

本发明实施例提供的内核对象的管理方法,分别为每种类型的内核对象分配对应的主对象索引表;其中,所述主对象索引表为包含第一预设数量个表项的地址资源;当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,所述第一目标次对象索引表为包含空闲对象节点的次对象索引表;所述第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;所述对象节点为所述第一目标次对象索引表中的子地址资源;从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点;基于所述第一目标对象节点记录所述待创建内核对象。通过本发明实施例提供的技术方案,分别为各类内核对象创建主对象索引表,当创建内核对象时,直接获取与待创建内核对象对应的包含空闲对象节点的次对象索引表,其中,该次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源,然后,基于该次对象索引表中的一个空闲对象节点对内核对象进行创建,不仅可有效提升空闲地址资源的使用效率及内核对象创建的实时性,避免每次新创建内核对象时,需将之前创建的内核对象的数据结构重新拷贝到新的地址资源中,导致内核对象创建时间长、实时性差的情况发生。另外,由于每类内核对象专用一个主对象索引表,通过主对象索引表中的任一空闲表项指向次对象索引表,且次对象索引表中包含与待创建内核对象的数据结构大小相同的内核对象,可有效避免内核堆中内存碎片的产生。

在一些实施例中,获取与待创建内核对象对应的第一目标次对象索引表,包括:当所述待创建内核对象为首次创建时,或者,当所述待创建内核对象非首次创建,且确定与所述待创建内核对象对应的空闲对象节点链表中不存在空闲对象节点时,创建与待创建内核对象对应的第一目标次对象索引表,并将与待创建内核对象对应的主对象索引表中的任一空闲表项指向所述第一目标次对象索引表;其中,所述第一目标次对象索引表中包含第二预设数量个空闲对象节点;所述空闲对象节点链表存放有用于记录与所述待创建内核对象所属类型相同的内核对象的空闲对象节点。

示例性的,当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表,包括:当接收到内核对象创建指令时,判断所述待创建内核对象是否是首次创建;当确定所述待创建内核对象是首次创建时,创建与待创建内核对象对应的第一目标次对象索引表,并将与待创建内核对象对应的主对象索引表中的任一空闲表项指向所述第一目标次对象索引表;其中,所述第一目标次对象索引表中包含第二预设数量个空闲对象节点。具体的,当接收到内核对象创建指令时,确定待创建内核对象的类型,根据待创建内核对象的类型判断待创建内核对象是否为首次创建,也即,判断是否是第一次创建目标类型的内核对象,其中,目标类型为待创建内核对象所属类型。当确定待创建内核对象是第一次创建时,说明不存在用于记录待创建内核对象的地址资源,因此,创建与待创建内核对象对应的第一目标次对象索引表,其中,该第一目标次对象索引表中包含第二预设数量个对象节点,该第二预设数量个对象节点均为空闲对象节点,也即第一目标次对象索引表中的空闲子地址资源。需要说明的是,第一目标次对象索引表中包含的各个对象节点均可用于记录待创建内核对象,也可用于记录与待创建内核对象所属类型的其他内核对象。其中,第一目标次对象索引表中包含的各个对象节点均为与待创建内核对象的数据结构大小相同的地址资源。然后,将与待创建内核对象对应的主对象索引表中的任一空闲表项指向该第一目标次对象索引表。这样设置的好处在于,当待创建内核对象为首次创建时,可创建与待创建内核对象对应次对象索引表,并将与待创建内核对象对应的主对象索引表中的任一空闲表项指向该次对象索引表,然后,基于次对象索引表中的空闲对象节点实现内核对象的创建,可通过次对象索引表的弹性创建实现内核对象创建的强实时性。

可选的,当确定所述待创建内核对象不是首次创建时,判断与所述待创建内核对象对应的空闲对象节点链表中是否存在空闲对象节点;其中,所述空闲对象节点链表存放有用于记录与所述待创建内核对象所属类型相同的内核对象的空闲对象节点;当确定与所述待创建内核对象对应的空闲对象节点链表中不存在空闲对象节点时,创建与待创建内核对象对应的第一目标次对象索引表,并将与待创建内核对象对应的主对象索引表中的任一空闲表项指向所述第一目标次对象索引表;其中,所述第一目标次对象索引表中包含第二预设数量个空闲对象节点。具体的,当第一次创建某类型内核对象时,可创建与该类型内核对象对应的次对象索引表。其中,由于在内核对象初始化时,为各类内核对象一次性分配指定大小(包含第一预设数量个表项的)的主对象索引表,因此,在第一次创建各类内核对象时,可为各类内核对象一次性分配对应的主对象索引表表项数(也即第一预设数量个)的次对象索引表,而每个次对象索引表中包含第二预设数量个对象节点。然后将主对象索引表中的各个表项分别指向对应的次对象索引表,其中,主对象索引表中的各个表项与次对象索引表一一对应。可选的,也可为各类内核对象一次性分配第三预设数量个次对象索引表,其中,第三预设数量小于第一预设数量。需要说明的是,本发明实施例对各类内核对象对应的主对象索引表分配的次对象索引表的数量不做限定。各类内核对象专用一个空闲对象节点链表,该空闲对象节点链表用于存储该类内核对象对应的主对象索引表指向的各个次对象索引表中的空闲节点。因此,当确定待创建内核对象不是首次创建时,判断与待创建内核对象对应的空闲对象节点链表中是否存在空闲对象节点。其中,空闲对象节点链表存储有用于记录与待创建内核对象所属类型相同的内核对象的空闲对象节点,可以理解的是,空闲对象节点链表中可以存储有与所述待创建内核对象所属类型相同,且已被删除的内核对象所释放的空闲对象节点,和/或与待创建内核对象对应的主对象索引表指向的各个次对象索引表中,从未曾记录任何内核对象的空闲对象节点。当确定待创建内核对象不是首次创建,且与待创建内核对象对应的空闲对象节点链表中不存在空闲对象节点时,说明待创建内核对象对应的主对象索引表当前指向的次对象索引表中不包含空闲对象节点,无法对待创建内核对象的数据结构进行记录。因此,当确定待创建内核对象不是首次创建,且与待创建内核对象对应的空闲对象节点链表中不存在空闲对象节点时,新创建一个次对象索引表,并将新创建的次对象索引表作为与待创建内核对象对应的第一目标次对象索引表,然后将与待创建内核对象对应的主对象索引表中的任一空闲表项指向第一目标次对象索引表。其中,新创建的第一目标次对象索引表中可以包含第二预设数量个空闲对象节点,可基于第一目标次对象索引表中的任一空闲对象节点记录待创建内核对象。

可选的,当确定与所述待创建内核对象对应的空闲对象节点链表中存在空闲对象节点时,从所述空闲对象节点链表中的空闲对象节点中确定第一目标对象节点。具体的,当确定待创建内核对象为首次创建,且与待创建内核对象对应的空闲对象节点链表中存在空闲对象节点时,说明待创建内核对象对应的主对象索引表当前指向的次对象索引表中包含空闲对象节点,因此,从空闲对象节点链表中的空闲对象节点中确定第一目标对象节点,其中,第一目标对象节点为待创建内核对象对应的主对象索引表当前指向的次对象索引表中的空闲对象节点。然后,基于第一目标对象节点对待创建内核对象的数据结构进行记录。

在一些实施例中,在从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点之后,还包括:根据所述第一目标对象节点在所述第一目标次对象索引表中的索引号、所述第一目标次对象索引表在所述主对象索引表中的索引号及所述待创建内核对象所属类型,生成所述待创建内核对象对应的索引标识,并将所述索引标识提供给用户。具体的,在从第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点后,确定第一目标对象节点在第一目标次对象索引表中的索引号和第一目标次对象索引表在主对象索引表中的索引号。其中,第一目标对象节点在第一目标次对象索引表中的索引号为第一目标对象节点在第一目标次对象索引表中的编号,也即将第一次对象索引表中的哪个空闲对象节点作为第一目标对象节点。第一目标次对象索引表在主对象索引表中的索引号为第一目标次对象索引表为主对象索引表中的哪个表项指向的次对象索引表,也即将主对象索引表中的哪个表项指向的次对象索引表作为第一目标次对象索引表,可以理解的是,第一目标次对象索引表在主对象索引表中的索引号为主对象索引表中指向该第一目标次对象索引表的表项号。然后,基于根据第一目标对象节点在第一目标次对象索引表中的索引号、第一目标次对象索引表在主对象索引表中的索引号及待创建内核对象所属类型,生成待创建内核对象对应的索引标识,其中,索引标识可以为ID(Identification,身份标识)。示例性的,待创建内核对象对应的索引标识可以为32位的ID,该ID中的0-15位为索引号(包括第一目标对象节点在第一目标次对象索引表中的索引号及第一目标次对象索引表在主对象索引表中的索引号)和待创建内核对象所属类型号。然后将待创建内核对象对应的索引标识提供给用户,用户可以通过此索引标识索引并获取待创建内核对象,以对待创建内核对象进行一系列操作。可以理解的是,待创建内核对象对应的索引标识为用于记录该待创建内核对象的对象节点的索引标识,也即用于记录待创建内核对象的地址资源的索引标识,而非待创建内核对象自身的索引标识,因此,即使将待创建内核对象对应的索引表标识提供给用户,也可以保证内核对象的安全性,可有效避免用户直接对内核对象的数据结构进行修改,而且还可以保证用户通过该索引标识对内核对象进行实时操作。

在一些实施例中,在基于所述第一目标对象节点记录待创建内核对象之后,还包括:响应于内核对象获取事件被触发,根据标识信息确定对应的第二目标对象节点;基于所述第二目标对象节点获取对应的目标内核对象,以对所述目标内核对象进行预设操作。这样设置的好处在于,可以快速获取内核对象,实现对内核对象的管理。具体的,当接收到内核对象获取指令时,可以表征内核对象获取事件被触发,此时,内核对象操作接口可以根据用户输入的标识信息确定对应的第二目标对象节点,然后再基于第二目标对象节点获取对应的目标内核对象,从而可实现对目标内核对象的管理操作。可以理解的是,标识信息为目标内核对象对应的标识信息,也即用于记录目标内核对象的对象节点的标识信息,因此,可通过该标识信息确定第二目标对象节点,从而进一步基于第二目标对象节点获取目标内核对象。需要说明的是,针对不同类型的目标内核对象,对目标内核对象的预设操作不同。

可选的,所述标识信息中包含对象类型信息及索引号信息,其中,所述索引号信息包括主对象索引号信息和次对象索引信息;响应于内核对象获取事件被触发,根据标识信息确定对应的第二目标对象节点,包括:响应于内核对象获取事件被触发,根据所述对象类型信息确定对应的目标主对象索引表;根据所述主对象索引号信息,从所述目标主对象索引表中确定对应的第二目标次对象索引表;根据所述次对象索引号信息,从所述第二目标次对象索引表中确定与所述标识信息对应的第二目标对象节点。具体的,标识信息中包含对象类型信息及索引号信息,其中,对象类型信息为待获取的内核对象的类型信息,索引号信息包括主对象索引号信息和次对象索引号信息,次对象索引号信息为用于记录待获取的内核对象的对象节点在次对象索引表中的编号,主对象索引号信息为待获取的内核对象对应的主对象索引表中指向该次对象索引表的表项编号。由于不同类型的内核对象对应一个主对象索引表,因此,响应于内核对象获取事件被触发,根据标识信息中的对象类型信息确定对应的目标主对象索引表。然后,根据标识信息中的主对象索引号,从目标主对象索引表中确定与主对象索引号对应的目标表项编号,从而确定目标表项编号指向的第二目标次对象索引表。最后,根据标识信息中的次对象索引号信息,从第二目标次对象索引表中确定对应的第二目标对象节点。其中,第二目标对象节点即为用户记录待获取的内核对象的对象节点,从而可基于第二目标对象节点获取目标内核对象,其中,目标内核对象即为待获取的内核对象。

在一些实施例中,在基于所述第二目标对象节点获取对应的目标内核对象之后,还包括:当接收到对所述目标内核对象的删除指令时,从所述第二目标对象节点中删除所述目标内核对象,并将所述第二目标对象节点添加入与所述目标内核对象对应的空闲对象节点链表中。具体的,当接收到对目标内核对象的删除指令时,删除内核对象操作接口可将目标内核对象从第二目标对象节点中删除,使得第二目标对象节点得以释放。可以理解的是,当将目标对象节点删除时,第二目标对象节点变为空闲对象节点,此时将第二目标内核对象添加入与目标内核对象对应的空闲对象节点链表中。这样设置的好处在于,当下次创建与目标内核对象相同类型的内核对象时,可直接从与目标内核对象对应的空闲对象节点链表中获取空闲对象节点,以记录待创建的内核对象(此内核对象为与目标内核对象相同类型的内核对象)。

图2是本发明另一实施例中的一种内核对象的管理方法的流程图,如图2所示,该方法包括如下步骤:

步骤210,当接收到内核对象创建指令时,确定待创建内核对象所属类型。

步骤220,根据待创建内核对象所属类型,判断待创建内核对象是否是首次创建,若是,执行步骤240,否则,执行步骤230。

步骤230,判断与待创建内核对象对应的空闲对象节点链表中是否存在空闲对象节点,若是,执行步骤260,否则,执行步骤240。

其中,空闲对象节点链表存放有用于记录与待创建内核对象所属类型相同的内核对象的空闲对象节点。

步骤240,创建与待创建内核对象对应的第一目标次对象索引表,并将与待创建内核对象对应的主对象索引表中的任一空闲表项指向第一目标次对象索引表;其中,第一目标次对象索引表中包含第二预设数量个空闲对象节点。

其中,主对象索引表为内核对象初始化时,为待创建内核对象所属类型的内核对象创建的包含第一预设数量个表项的地址资源,第一预设数量个表项分别为主对象索引表中的子地址资源。

示例性的,图3是本发明一实施例提供的主对象索引表中的表项指向次对象索引表的示意图。

步骤250,从第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点。

步骤260,从空闲对象节点链表中的空闲对象节点中确定第一目标对象节点,并将第一目标对象节点所属的次对象索引表作为第一目标次对象索引表。

步骤270,根据第一目标对象节点在第一目标次对象索引表中的索引号、第一目标次对象索引表在主对象索引表中的索引号及待创建内核对象所属类型,生成待创建内核对象对应的索引标识,并将索引标识提供给用户。

步骤280,基于第一目标对象节点记录待创建内核对象;其中,第一目标对象节点为用于记录待创建内核对象的地址资源。

步骤290,响应于内核对象获取事件被触发,根据标识信息确定对应的第二目标对象节点。

步骤2100,基于第二目标对象节点获取对应的目标内核对象,以对目标内核对象进行预设操作。

步骤2110,当接收到对目标内核对象的删除指令时,从第二目标对象节点中删除目标内核对象,并将第二目标对象节点添加入与目标内核对象对应的空闲对象节点链表中。

本发明实施例提供的内核对象的管理方法,当待创建内核对象为首次创建或者待内核对象不是首次创建且待创建内核对象对应的空闲对象节点链表中不存在空闲对象节点时,可创建与待创建内核对象对应次对象索引表,并将与待创建内核对象对应的主对象索引表中的任一空闲表项指向该次对象索引表,然后,基于次对象索引表中的空闲对象节点实现内核对象的创建,可通过次对象索引表的弹性创建实现内核对象创建的强实时性;而当待内核对象不是首次创建且待创建内核对象对应的空闲对象节点链表中存在空闲对象节点时,则可基于空闲对象节点链表中的空闲对象节点实现内核对象的创建,不仅可有效提升空闲地址资源的使用效率及内核对象创建的实时性,避免每次新创建内核对象时,需将之前创建的内核对象的数据结构重新拷贝到新的地址资源中,导致内核对象创建时间长、实时性差的情况发生。另外,由于每类内核对象专用一个主对象索引表,通过主对象索引表中的任一空闲表项指向次对象索引表,且次对象索引表中包含与待创建内核对象的数据结构大小相同的内核对象,可有效避免内核堆中内存碎片的产生。再者,将用于记录该待创建内核对象的对象节点的索引标识作为内核对象的索引标识,不仅可保证内核对象的安全性,有效避免用户直接对内核对象的数据结构进行修改,而且还可以保证用户通过该索引标识对内核对象进行实时操作。

图4为本发明另一实施例提供的一种内核对象的管理装置的结构示意图。如图4所示,该装置包括:主对象索引表分配模块410,第一次对象索引表获取模块420,第一对象节点确定模块430和内核对象记录模块440。其中,

主对象索引表分配模块410,用于分别为每种类型的内核对象分配对应的主对象索引表;其中,所述主对象索引表为包含第一预设数量个表项的地址资源;

第一次对象索引表获取模块420,用于当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,所述第一目标次对象索引表为包含空闲对象节点的次对象索引表;所述第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;所述对象节点为所述第一目标次对象索引表中的子地址资源;

第一对象节点确定模块430,用于从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点;

内核对象记录模块440,用于基于所述第一目标对象节点记录所述待创建内核对象;其中,所述第一目标对象节点为用于记录所述待创建内核对象的地址资源。

本发明实施例提供的内核对象的管理装置,分别为每种类型的内核对象分配对应的主对象索引表;其中,所述主对象索引表为包含第一预设数量个表项的地址资源;当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,所述第一目标次对象索引表为包含空闲对象节点的次对象索引表;所述第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;所述对象节点为所述第一目标次对象索引表中的子地址资源;从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点;基于所述第一目标对象节点记录所述待创建内核对象;其中,所述第一目标对象节点为用于记录所述待创建内核对象的地址资源。通过本发明实施例提供的技术方案,分别为各类内核对象创建主对象索引表,当创建内核对象时,直接获取与待创建内核对象对应的包含空闲对象节点的次对象索引表,其中,该次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源,然后,基于该次对象索引表中的一个空闲对象节点对内核对象进行创建,不仅可有效提升空闲地址资源的使用效率及内核对象创建的实时性,避免每次新创建内核对象时,需将之前创建的内核对象的数据结构重新拷贝到新的地址资源中,导致内核对象创建时间长、实时性差的情况发生。另外,由于每类内核对象专用一个主对象索引表,通过主对象索引表中的任一空闲表项指向次对象索引表,且次对象索引表中包含与待创建内核对象的数据结构大小相同的内核对象,可有效避免内核堆中内存碎片的产生。

可选的,第一次对象索引表获取模块,用于:

当所述待创建内核对象为首次创建时,或者,当所述待创建内核对象非首次创建,且确定与所述待创建内核对象对应的空闲对象节点链表中不存在空闲对象节点时,创建与待创建内核对象对应的第一目标次对象索引表,并将与待创建内核对象对应的主对象索引表中的任一空闲表项指向所述第一目标次对象索引表;

其中,所述第一目标次对象索引表中包含第二预设数量个空闲对象节点;所述空闲对象节点链表存放有用于记录与所述待创建内核对象所属类型相同的内核对象的空闲对象节点。

可选的,所述装置还包括:

第一目标对象节点确定单元,用于当确定与所述待创建内核对象对应的空闲对象节点链表中存在空闲对象节点时,从所述空闲对象节点链表中的空闲对象节点中确定第一目标对象节点。

可选的,还包括:

索引标识生成模块,用于在从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点之后,根据所述第一目标对象节点在所述第一目标次对象索引表中的索引号、所述第一目标次对象索引表在所述主对象索引表中的索引号及所述待创建内核对象所属类型,生成所述待创建内核对象对应的索引标识,并将所述索引标识提供给用户。

可选的,所述装置还包括:

第二对象节点确定模块,用于在基于所述目标对象节点记录待创建内核对象之后,响应于内核对象获取事件被触发,根据标识信息确定对应的第二目标对象节点;

内核对象获取模块,用于基于所述第二目标对象节点获取对应的目标内核对象,以对所述目标内核对象进行预设操作。

可选的,所述标识信息中包含对象类型信息及索引号信息,其中,所述索引号信息包括主对象索引号信息和次对象索引信息;

相应的,所述第二对象节点确定模块,用于:

响应于内核对象获取事件被触发,根据所述对象类型信息确定对应的目标主对象索引表;

根据所述主对象索引号信息,从所述目标主对象索引表中确定对应的第二目标次对象索引表;

根据所述次对象索引号信息,从所述第二目标次对象索引表中确定与所述标识信息对应的第二目标对象节点。

可选的,还包括:

删除模块,用于在基于所述第二目标对象节点获取对应的目标内核对象之后,当接收到对所述目标内核对象的删除指令时,从所述第二目标对象节点中删除所述目标内核对象,并将所述第二目标对象节点添加入与所述目标内核对象对应的空闲对象节点链表中。

上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本发明实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。

本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行内核对象的管理方法,该方法包括:

分别为每种类型的内核对象分配对应的主对象索引表;其中,所述主对象索引表为包含第一预设数量个表项的地址资源;

当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,所述第一目标次对象索引表为包含空闲对象节点的次对象索引表;所述第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;所述对象节点为所述第一目标次对象索引表中的子地址资源;

从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点;

基于所述第一目标对象节点记录所述待创建内核对象。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的内核对象的管理操作,还可以执行本发明任意实施例所提供的内核对象的管理方法中的相关操作。

本发明实施例提供了一种电子设备,该电子设备中可集成本发明实施例提供的内核对象的管理装置。图5为本发明实施例提供的一种电子设备的结构框图。电子设备500可以包括:存储器501,处理器502及存储在存储器501上并可在处理器运行的计算机程序,所述处理器502执行所述计算机程序时实现如本发明实施例所述的内核对象的管理方法。

本发明实施例中提供的电子设备,分别为每种类型的内核对象分配对应的主对象索引表;其中,所述主对象索引表为包含第一预设数量个表项的地址资源;当接收到内核对象创建指令时,获取与待创建内核对象对应的第一目标次对象索引表;其中,所述第一目标次对象索引表为包含空闲对象节点的次对象索引表;所述第一目标次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源;所述对象节点为所述第一目标次对象索引表中的子地址资源;从所述第一目标次对象索引表中的空闲对象节点中确定第一目标对象节点;基于所述第一目标对象节点记录所述待创建内核对象。通过本发明实施例提供的技术方案,分别为各类内核对象创建主对象索引表,当创建内核对象时,直接获取与待创建内核对象对应的包含空闲对象节点的次对象索引表,其中,该次对象索引表为与待创建内核对象对应的主对象索引表中的任一空闲表项指向的地址资源,然后,基于该次对象索引表中的一个空闲对象节点对内核对象进行创建,不仅可有效提升空闲地址资源的使用效率及内核对象创建的实时性,避免每次新创建内核对象时,需将之前创建的内核对象的数据结构重新拷贝到新的地址资源中,导致内核对象创建时间长、实时性差的情况发生。另外,由于每类内核对象专用一个主对象索引表,通过主对象索引表中的任一空闲表项指向次对象索引表,且次对象索引表中包含与待创建内核对象的数据结构大小相同的内核对象,可有效避免内核堆中内存碎片的产生。

上述实施例中提供的内核对象的管理装置、存储介质及电子设备可执行本发明任意实施例所提供的内核对象的管理方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的内核对象的管理方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号