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

技术编号:12807088 阅读:77 留言:0更新日期:2016-02-03 21:13
本发明专利技术实施例公开了一种内存分配方法及装置。一种内存分配方法,包括以下步骤:接收目标任务的内存申请;根据所述申请内存大小,确定分配内存大小;确定第一内存池中是否存在满足所述分配内存大小的空闲内存块;如果存在,在所述第一内存池中为所述目标任务分配所述分配内存大小的内存块;否则,在所述目标任务的优先级高于预设的优先级阈值的情况下,在预先保留的第二内存池中为所述目标任务分配所述分配内存大小的内存块。应用本发明专利技术实施例所提供的技术方案,当第一内存池中内存耗尽时,系统可以将预先保留的内存分配给优先级较高的关键任务,保证系统的基本管理能力以及诊断能力,提高系统的安全性和可靠性。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种内存分配方法及装置
技术介绍
在实时操作系统中,如在vxWorks操作系统中,通常采用动态内存管理机制,操作系统将内存分配给有内存需求的任务,任务完成后,再将内存释放,以供操作系统继续将内存分配给有内存需求的其他任务。现有技术中,所有任务的内存申请都是平等的,操作系统维护一个内存资源池,只要接收到内存申请,即将内存资源池中与申请的大小一致的内存块分配给相应的任务。这种方法存在一定的问题,如果某个任务存在不正常的内存申请导致内存耗尽时,操作系统无法再给有内存需求的其他任务分配内存,也就是说,在这种情况下,所有有内存需求的任务都将受到波及,进而导致操作系统崩溃,影响操作系统的安全性和可靠性。
技术实现思路
本专利技术实施例的目的在于提供一种内存分配方法及装置,以提高操作系统的安全性和可靠性。技术方案如下:—种内存分配方法,包括:接收目标任务的内存申请,其中,所述内存申请中携带所述目标任务的申请内存大小的信息;根据所述申请内存大小,确定分配内存大小;确定第一内存池中是否存在满足所述分配内存大小的空闲内存块;如果存在,则在所述第一内存池中为所述目标任务分配所述分配内存大小的内存块;否则,在所述目标任务的优先级高于预设的优先级阈值的情况下,在预先保留的第二内存池中为所述目标任务分配所述分配内存大小的内存块。在本专利技术的一种【具体实施方式】中,所述在所述第一内存池中为所述目标任务分配所述分配内存大小的内存块,包括:在所述第一内存池中包含多个满足所述分配内存大小的空闲内存块的情况下,确定满足所述分配内存大小的每个空闲内存块的大小与所述分配内存大小的差值;识别差值最小的空闲内存块;在识别出的空闲内存块中,将所述分配内存大小的内存块分配给所述目标任务。在本专利技术的一种【具体实施方式】中,所述在预先保留的第二内存池中为所述目标任务分配所述分配内存大小的内存块,包括:在预先保留的第二内存池中包含多个满足所述分配内存大小的内存块的情况下,确定满足所述分配内存大小的每个空闲内存块的大小与所述分配内存大小的差值;识别差值最小的空闲内存块;在识别出的空闲内存块中,将所述分配内存大小的内存块分配给所述目标任务。在本专利技术的一种【具体实施方式】中,在所述为所述目标任务分配所述分配内存大小的内存块之后,所述方法还包括: 记录分配给所述目标任务的内存块的地址信息及所述目标任务的标识信息。在本专利技术的一种【具体实施方式】中,所述地址信息包含地址边界标识信息,所述方法还包括:在检测到有内存释放时,识别释放的内存块的地址边界标识信息及释放内存的目标任务的标识信息;判断释放的内存块的地址边界标识信息与记录的所述目标任务的地址边界标识信息是否一致;如果不一致,则确定所述目标任务被分配的内存被改写。—种内存分配装置,包括:内存申请接收模块,用于接收目标任务的内存申请,其中,所述内存申请中携带所述目标任务的申请内存大小的信息;分配内存大小确定模块,用于根据所述申请内存大小,确定分配内存大小;空闲内存块确定模块,用于确定第一内存池中是否存在满足所述分配内存大小的空闲内存块,如果存在,则触发第一分配模块,否则,触发第二分配模块;所述第一分配模块,用于在所述第一内存池中为所述目标任务分配所述分配内存大小的内存块;所述第二分配模块,用于在所述目标任务的优先级高于预设的优先级阈值的情况下,在预先保留的第二内存池中为所述目标任务分配所述分配内存大小的内存块。在本专利技术的一种【具体实施方式】中,所述第一分配模块,具体用于:在所述第一内存池中包含多个满足所述分配内存大小的空闲内存块的情况下,确定满足所述分配内存大小的每个空闲内存块的大小与所述分配内存大小的差值;识别差值最小的空闲内存块;在识别出的空闲内存块中,将所述分配内存大小的内存块分配给所述目标任务。在本专利技术的一种【具体实施方式】中,所述第二分配模块,具体用于:在预先保留的第二内存池中包含多个满足所述分配内存大小的内存块的情况下,确定满足所述分配内存大小的每个空闲内存块的大小与所述分配内存大小的差值;识别差值最小的空闲内存块;在识别出的空闲内存块中,将所述分配内存大小的内存块分配给所述目标任务。在本专利技术的一种【具体实施方式】中,所述装置还包括:记录模块,用于在所述为所述目标任务分配所述分配内存大小的内存块之后,记录分配给所述目标任务的内存块的地址信息及所述目标任务的标识信息。在本专利技术的一种【具体实施方式】中,所述地址信息包含地址边界标识信息,所述装置还包括内存改写确定模块,用于:在检测到有内存释放时,识别释放的内存块的地址边界标识信息及释放内存的目标任务的标识信息;判断释放的内存块的地址边界标识信息与记录的所述目标任务的地址边界标识信息是否一致;如果不一致,则确定所述目标任务被分配的内存被改写。应用本专利技术实施例所提供的技术方案,系统接收到目标任务的内存申请后,可以根据申请内存大小,确定分配内存大小,然后确定第一内存池中是否存在满足分配内存大小的内存块,如果存在,则在第一内存池中进行内存分配,如果不存在,则在目标任务的优先级大于预设优先级阈值时,在预先保留的第二内存池中进行内存分配。这样,当第一内存池中内存耗尽时,系统可以将预先保留的内存分配给优先级较高的关键任务,保证系统的基本管理能力以及诊断能力,提高系统的安全性和可靠性。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中一种内存分配方法的实施流程图;图2为本专利技术实施例中一种内存分配装置的结构示意图。【具体实施方式】为了使本领域技术人员更好地理解本专利技术实施例中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例所提供的一种内存分配方法可以应用于实时操作系统中。在本专利技术实施例的描述中,将实时操作系统称为系统。当某个任务有内存需求时,可以向系统发出内存申请,系统通过本专利技术实施例所提供的技术方案为该任务分配与其申请内存大小对应的分配内存大小的内存块。参见图1所示,为本专利技术实施例所提供的一种内存分配方当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种内存分配方法,其特征在于,包括:接收目标任务的内存申请,其中,所述内存申请中携带所述目标任务的申请内存大小的信息;根据所述申请内存大小,确定分配内存大小;确定第一内存池中是否存在满足所述分配内存大小的空闲内存块;如果存在,则在所述第一内存池中为所述目标任务分配所述分配内存大小的内存块;否则,在所述目标任务的优先级高于预设的优先级阈值的情况下,在预先保留的第二内存池中为所述目标任务分配所述分配内存大小的内存块。

【技术特征摘要】

【专利技术属性】
技术研发人员:汤渊清肖剑朱严峰
申请(专利权)人:北京东土科技股份有限公司
类型:发明
国别省市:北京;11

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

1