内核对象分配方法、装置、电子设备及存储介质与流程

文档序号:37457073发布日期:2024-03-28 18:40阅读:13来源:国知局
内核对象分配方法、装置、电子设备及存储介质与流程

本技术涉及计算机,尤其涉及一种内核对象分配方法、装置、电子设备及存储介质。


背景技术:

1、相关技术中,内核对象的分配是按照内核对象的大小在内存中进行对齐的,也即当分配的前一个内核对象的数据量小于后一个内核对象的数据量时,需要在两个内核对象之间分配填充内存,当前一个内核对象的数据量与填充内存的总量为后一个内核对象的数据量的整数倍时,后一个内核对象才能够被分配至内存中。

2、因此,在两个内核对象之间存在的填充内存由于无法被使用而造成了内存的浪费。


技术实现思路

1、有鉴于此,本技术的目的在于提出一种内核对象分配方法、装置、电子设备及存储介质。

2、基于所述目的,在第一方面,本技术提供了一种内核对象分配方法,包括:

3、按照接收到的配置文件将与内核对应的空闲内存划分为多个内存池;其中,所述配置文件包括:所述内核对象的类型数量,所述内存池的数量与所述内核对象的类型数量对应,所述内存池与各类型的所述内核对象相对应;

4、将所述目标内核对象分配至与所述目标内核对象对应的目标内存池。

5、在一种可能的实现方式中,每个内存池,包括:多个内存块;所述配置文件,还包括:每个类型的所述内核对象的数量以及每个类型的所述内核对象的数据量;

6、所述按照接收到的配置文件将空闲内存划分为多个内存池,包括:

7、按照接收到的配置文件确定每个类型的所述内核对象的数量以及每个类型的所述内核对象的数据量,并按照每个类型的所述内核对象的数量和每个类型的所述内核对象的数据量确定每个内核对象的数据量;

8、按照所述内核对象的类型数量将所述空闲内存划分为多个所述内存池;

9、对于每个内存池以及与所述内存池对应的所述内核对象,

10、按照所述内核对象的数量将所述内存池划分为多个内存块,其中,所述内存块的数量与所述内核对象的数量对应,每个内存块的内存容量与每个内核对象的数据量相对应,内存池的内存容量为与所述内存池对应的全部内核对象的数据量的整数倍。

11、在一种可能的实现方式中,所述按照与所述内存池对应的全部所述内核对象的数据量将所述内存池划分为多个内存块之后,还包括:

12、获取位图;

13、按照全部内存块的数量将所述位图划分为多个比特位;其中,所述比特位与所述内存块各自相对应。

14、在一种可能的实现方式中,所述配置文件,还包括:所述内核对象的类型;

15、所述将所述目标内核对象分配至与所述目标内核对象对应的所述目标内存池,包括:

16、按照所述配置文件确定所述目标内核对象的类型;

17、按照所述目标内核对象的类型确定与所述目标内核对象对应的目标内存池;

18、确定所述位图中是否存在至少一个与所述目标内存池中的目标内存块对应的目标比特位处于空闲状态;

19、响应于所述位图中存在至少一个与所述目标内存池中的目标内存块对应的目标比特位处于空闲状态,将所述目标内核对象分配至所述目标内存块中。

20、在一种可能的实现方式中,每个比特位,包括:索引,所述索引用于指示与所述比特位对应的内存块所对应的内核对象的类型;

21、所述响应于所述位图中存在至少一个与所述目标内存池中的目标内存块对应的目标比特位处于空闲状态,将所述目标内核对象分配至所述目标内存块中,包括:

22、确定所述位图中是否存在与所述目标内核对象的类型相同的目标索引;

23、响应于所述位图中存在与所述目标内核对象的类型相同的目标索引,确定是否存在至少一个与所述目标索引对应的目标比特位处于空闲状态;

24、响应于存在至少一个与所述目标索引对应的目标比特位处于空闲状态,将所述目标内核对象分配至与所述目标比特位对应的所述目标内存块中。

25、在一种可能的实现方式中,所述将所述目标内核对象分配至所述目标内存块中,之后还包括:

26、将与所述目标内存块对应的目标比特位置于满载状态。

27、在一种可能的实现方式中,所述确定所述位图中是否存在至少一个与所述目标内存池中的目标内存块对应的目标比特位处于空闲状态,之后还包括:

28、响应于所述位图中不存在任意一个与所述目标内存池中的目标内存块对应的目标比特位处于空闲状态,确定是否存在存储冗余数据的内存空间;

29、响应于存在存储冗余数据的内存空间,确定所述内存空间的容量是否大于或等于根据所述配置文件确定的目标内核对象的数据量;

30、响应于所述内存空间的容量大于或等于所述目标内核对象的数据量,释放所述内存空间中的冗余数据;

31、将所述内存空间添加至所述目标内存池中,并将所述目标内核对象分配至所述内存空间中。

32、在一种可能的实现方式中,所述按照全部内存块的数量将所述位图划分为多个比特位之后,还包括:

33、响应于接收到目标内核对象的释放请求,将存储所述目标内核对象的目标内存块中的所述目标内核对象释放,并将于所述目标内存块对应的目标比特位置于空闲状态。

34、在一种可能的实现方式中,所述按照所述内核对象的类型数量将所述空闲内存划分为多个所述内存池,包括:

35、按照所述配置文件确定每个类型的所述内核对象的数据量;

36、按照每个类型的所述内核对象的数据量从大到小的顺序依次将所述空闲内存划分为多个所述内存池。

37、在第二方面,本技术提供了一种内核对象分配装置,包括:

38、划分模块,被配置为按照接收到的配置文件将与内核对应的空闲内存划分为多个内存池;其中,所述配置文件包括:所述内核对象的类型数量,所述内存池的数量与所述内核对象的类型数量对应,所述内存池与各类型的所述内核对象相对应;

39、分配模块,被配置为将所述目标内核对象分配至与所述目标内核对象对应的目标内存池。

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

41、在第四方面,本技术提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如第一方面所述的内核对象分配方法。

42、从上面所述可以看出,本技术提供的一种内核对象分配方法、装置、电子设备及存储介质,按照接收到的配置文件将与内核对应的空闲内存划分为多个内存池,其中配置文件包括:所述内核对象的类型数量,内存池的数量与内核对象的类型数量相对应,并且内存池也与各类型的内核对象各自相对应,进一步地,可以将目标内核对象分配至与目标内核对象对应的目标内存池中。通过将空闲内存划分为多个内存池,使得不同的内核对象在被分配时,会先匹配对应的目标内存池,不同的内核对象在被分配时相互独立,在两个内核对象被分配时,无需在两个内核对象之间分配填充内存,而是将两个内核对象分别分配至与其对应的内存池中,通过合理的规划,不仅能够支持对不同内核对象的分配,而且能够有效地节省内存空间,提高内核对象的分配效率以及内存使用率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1