System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种内存分配的方法及装置制造方法及图纸_技高网

一种内存分配的方法及装置制造方法及图纸

技术编号:40648154 阅读:7 留言:0更新日期:2024-03-13 21:27
本申请公开了一种内存分配的方法及装置,其中的方法可应用于电子设备,所述电子设备包括内存,所述内存包括目标内存区域和最近最少使用LRU缓存,所述方法包括:当所述内存中的目标页发生状态更新后,判断所述目标页是否属于所述目标内存区域,所述目标内存区域包括连续物理内存;若所述目标页属于所述目标内存区域,则禁止将所述目标页添加到所述LRU缓存。本申请实施例可以提升内存分配的效率。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种内存分配的方法及装置


技术介绍

1、内存分配是计算机系统中的一个核心概念,它涉及到操作系统和编程语言等层面的设计。在内存分配管理中,操作系统使用一种称为分页的技术来管理内存,可以动态地将物理内存划分为大小固定的块,每一块称为一个页面。

2、lru列表在内存中维持一个链表,该列表按照页面的使用顺序来组织页面:最近被使用过的页面被移动到上述列表的前端,而最久未被使用的页面则位于该列表的末尾。当需要分配新的页面且物理内存已满的时候,内存管理器会从该列表的末尾(即最久未使用的页面)开始,将页面移出物理内存,以释放空间来分配新的页面。

3、上述lru缓存需要创建一个绑核(即与某个处理器核绑定)的工作队列,该工作队列需要在对应处理器核上才能执行,例如,在分配物理内存时,系统上可能会有许多并发任务需要分配大块连续内存,内核调度器可能需要花费较长时间才能为特定任务分配所需的连续内存,并将其绑定到指定的处理器核上,导致会有比较大的概率需要等待十几毫秒以上的调度延迟,因此,如何提供一种有效的连续内存分配方法,降低内存分配的耗时、提升内存分配的效率是亟待解决的问题。


技术实现思路

1、本申请实施例所要解决的技术问题在于,提供一种内存分配的方法及装置,提升了内存分配的效率。

2、第一方面,本申请实施例一种内存分配的方法,可包括:

3、所述电子设备包括内存,所述内存包括目标内存区域和最近最少使用lru缓存,当所述内存中的目标页发生状态更新后,判断所述目标页是否属于所述目标内存区域,所述目标内存区域包括连续物理内存;若所述目标页属于所述目标内存区域,则禁止将所述目标页添加到所述lru缓存。

4、本申请实施例中,当目标页发生状态更新(例如在被访问或修改后),先确定该目标页是否属于目标内存区域,如果目标页属于该目标内存区域,则禁止将目标页添加到lru缓存中。也即是当目标内存区域中的目标页发生状态更新后,禁止将其添加到lru缓存中,以使得目标内存区域在后续的内存分配中与处理器核解绑,无需再等待由于绑核(例如等待任务被调度的延迟等情况)所导致延长的时间,因此可以减少内存分配耗时。例如,在具体的应用场景中,目标内存区域可以为内存中的一块特定区域,在内存初始化时系统为该特定区域预留了一块或多块连续物理内存,当该特定区域有空闲内存页时(例如没有接收到专门针对于该特定区域的内存分配请求时)可以满足系统中其他内存分配请求,并禁止将对应内存页添加到lru缓存中,从而简化后续的内存分配流程。综上,上述操作通过判断目标页是否属于目标内存区域,并在属于目标内存区域的情况下禁止将其添加到lru缓存,使得后续的内存分配无需再进行例如将lru缓存的页刷新到lru链表中的操作,减少了等待任务被调度所带来的延迟,从而减少了内存分配的耗时,以此来提升了内存分配的效率。

5、在一种可能的实现方式中,所述方法还包括;接收第一内存分配请求,所述第一内存分配请求用于向所述目标内存区域请求申请第一数量的连续物理内存页,所述第一数量的连续物理内存页用于第一对象使用;判断所述目标内存区域中的空闲连续物理内存页的数量是否大于或等于所述第一数量;若大于或等于所述第一数量,将所述目标内存区域中的所述第一数量的空闲连续物理内存页分配给所述第一对象使用。本申请实施例中,当系统中的第一对象需要申请一定数量的连续物理内存页时,可以通过系统下发第一内存分配请求(例如为除专门针对于该特定区域的内存分配请求以外的请求),该请求用于向目标内存区域申请第一数量的连续物理内存页,当目标内存区域中的空闲连续物理内存页的数量满足上述第一数量的要求,则将对应的内存页分配给第一对象使用。本申请实施例通过精确判断目标内存区域中的空闲连续物理内存页数量是否满足第一对象的申请需求,避免出现内存碎片化或不连续的内存分配情况,以此提高内存资源的利用效率,确保了资源分配的合理性,最终提升了内存分配的利用率。

6、在一种可能的实现方式中,所述目标内存区域包括位图;所述判断所述目标内存区域中的空闲连续物理内存页的数量是否大于或等于所述第一数量,包括;根据所述位图查询所述目标内存区域中页的已分配情况,判断所述目标内存区域中的空闲连续物理内存页的数目是否大于或等于所述第一数量。本申请实施例,具体通过位图查询内存页的分配情况,可以快速地确定目标内存区域中已分配和空闲的连续物理内存页。其中,位图是一种数据结构,通过将每一页表示为一个位,可以节省内存并加快查询速度。本申请实施例中,当目标内存区域接收第一内存分配请求时,会先检测目标内存区域中空闲页的数量,通过位图查询并统计目标内存区域中的空闲连续物理内存页,并借助位图中的位状态,可以实时监测内存页的分配情况,避免判断错误,以确保对空闲页数目进行准确判断,最终确定空闲内存页数量是否满足内存分配请求。

7、在一种可能的实现方式中,在将所述目标内存区域中的所述第一数量的空闲连续物理内存页分配给所述第一对象使用之后,所述方法还包括;将所述目标内存区域中所述位图的所述目标页的位图信息标记为空闲状态。本申请实施例中,当目标内存区域有空闲内存页时,将内存页分配给系统中其他内存分配请求,且在满足分配请求后,将已经分配出去的页的位图信息标记为空闲状态,通过标记位图中目标页的信息为空闲状态,系统可以维护内存管理数据的一致性,提高系统的稳定性和可靠性,防止因为数据不一致造成的内存错误和异常情况。本申请实施例方便了设备驱动程序等在后续请求使用目标内存区域时,快速找到空闲的页面以满足内存分配请求。

8、在一种可能的实现方式中,所述内存中的目标页发生状态更新,包括:所述内存中的目标页被首次添加到第一链表中,或者,所述目标页从第二链表移动到第三链表中或所述目标页从第三链表移动到第二链表中。本申请实施例中,目标页发生状态更新具体可以包括从一个页首次被添加到第一链表(例如lru链表)中管理,或者从第二链表(例如activelru链表)移动到第三链表(例如inactivelru链表),亦或是从该第三链表移动到该第二链表中。系统因此能准确的找到发生状态更新的页,从而判断这些发生状态更新的页是否属于目标内存区域,进而进行后续的禁止添加到lru缓存的操作。

9、在一种可能的实现方式中,所述目标页中包含结构体信息;包括;通过所述目标页的结构体信息,查找所述目标页的类型;基于所述目标页的类型,判断所述目标页是否属于所述目标内存区域。本申请实施例中,目标内存区域将空闲内存页分配给第一对象后,若系统判断出目标页已发生状态更新,则在目标页中的结构体信息来查找该目标页的类型,若该目标页的类型属于目标内存区域(例如migrate-cma类型属于cma内存区域),则判断该页属于目标内存区域,以此来决定是否禁止该内存页添加至lru缓存,以保证本申请实施例中的内存分配方法实现的准确性。

10、在一种可能的实现方式中,所述方法还包括;接收第二内存分配请求,所述第一内存分配请求用于向所述目标内存区本文档来自技高网...

【技术保护点】

1.一种内存分配的方法,应用于电子设备,其特征在于,所述电子设备包括内存,所述内存包括目标内存区域和最近最少使用LRU缓存,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述目标内存区域包括位图;所述判断所述目标内存区域中的空闲连续物理内存页的数量是否大于或等于所述第一数量,包括:

4.根据权利要求2或3所述的方法,其特征在于,在所述将所述目标内存区域中的所述第一数量的空闲连续物理内存页分配给所述第一对象使用之后,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述内存中的目标页发生状态更新,包括:

6.根据权利要求1或5所述的方法,其特征在于,所述目标页中包含结构体信息;包括:

7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述目标内存区域还包括待迁移列表;所述对属于所述目标内存区域中的所述目标页进行页迁移包括:

9.根据权利要求8所述的方法,其特征在于,所述对所述待迁移列表中的页进行迁移操作,包括:

10.一种内存分配的装置,应用于电子设备,其特征在于,所述电子设备包括内存,所述内存包括目标内存区域和最近最少使用LRU缓存,所述装置包括:

11.根据权利要求10所述的装置,其特征在于,所述装置还包括:

12.根据权利要求11所述的装置,其特征在于,所述目标内存区域包括位图;

13.根据权利要求11或12所述的装置,其特征在于,所述第一分配单元,具体用于:

14.根据权利要求10所述的装置,其特征在于,所述第一判断单元,具体用于:

15.根据权利要求10或14所述的装置,其特征在于,所述目标页中包含结构体信息;

16.根据权利要求10-15中任一项所述的装置,其特征在于,所述装置还包括:

17.根据权利要求16所述的装置,其特征在于,目标内存区域还包括待迁移列表;

18.根据权利要求17所述的装置,其特征在于,所述迁移单元,用于:

19.一种电子设备,其特征在于,所述电子设备包括处理器、内存;所述内存中包括目标内存区域和最近最少使用LRU缓存;

20.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述权利要求1-9任意一项所述的方法。

21.一种计算机程序,其特征在于,所述计算机程序包括指令,当所述计算机程序被计算机执行时,使得所述计算机执行如权利要求1-9中任意一项所述的方法。

...

【技术特征摘要】

1.一种内存分配的方法,应用于电子设备,其特征在于,所述电子设备包括内存,所述内存包括目标内存区域和最近最少使用lru缓存,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述目标内存区域包括位图;所述判断所述目标内存区域中的空闲连续物理内存页的数量是否大于或等于所述第一数量,包括:

4.根据权利要求2或3所述的方法,其特征在于,在所述将所述目标内存区域中的所述第一数量的空闲连续物理内存页分配给所述第一对象使用之后,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述内存中的目标页发生状态更新,包括:

6.根据权利要求1或5所述的方法,其特征在于,所述目标页中包含结构体信息;包括:

7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述目标内存区域还包括待迁移列表;所述对属于所述目标内存区域中的所述目标页进行页迁移包括:

9.根据权利要求8所述的方法,其特征在于,所述对所述待迁移列表中的页进行迁移操作,包括:

10.一种内存分配的装置,应用于电子设备,其特征在于,所述电子设备包括内存,所述内存包括目标内存区域和最...

【专利技术属性】
技术研发人员:钟锦基高旭
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1