[发明专利]一种内存管理方法及装置在审
申请号: | 201610430335.6 | 申请日: | 2016-06-16 |
公开(公告)号: | CN107515785A | 公开(公告)日: | 2017-12-26 |
发明(设计)人: | 笪禹 | 申请(专利权)人: | 大唐移动通信设备有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京同达信恒知识产权代理有限公司11291 | 代理人: | 刘醒晗 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 装置 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种内存管理方法及装置。
背景技术
随着多核处理器的快速发展,基于对称多处理(Symmetric Multi-Processing,SMP)的软件并行处理架构已经逐步推广应用。在SMP系统中,并发执行性能直接影响系统整体性能,而频繁的内存申请和释放以及基于内存的消息通信是大型软件中影响性能的关键因素,因此,如何有效提升SMP系统下的内存管理效率成为重要问题。
已有的内存资源管理方案中,内存块是以链表方式管理的,如果多个任务同时操作一个链表,则需要进行互斥操作,以避免资源冲突。其中,一个任务可视为一个进程或线程。
对于单CPU,其内存资源需要在该CPU上运行的多任务之间互斥;对于SMP系统,其多CPU之间的共享内存池需要在多CPU上的任务之间互斥。但是,互斥操作会导致得不到内存互斥锁的任务进入阻塞状态,因而会影响系统的并发处理效率。
发明内容
本发明实施例提供一种内存管理方法及装置,用以在内存资源管理时减少内存互斥锁的使用。
本发明实施例提供的内存管理方法,包括:
接收第一任务发送的内存资源分配请求;
判断所述第一任务的私有内存资源池中的空闲内存资源容量是否大于或等于所述内存资源分配请求所请求分配的内存资源大小;
若是,则从所述第一任务的私有内存资源池中获取内存资源进行分配;否则,从共享内存资源池中获取内存资源进行分配。
本发明实施例提供的内存管理装置,包括:
接收单元,用于接收第一任务发送的内存资源分配请求;
判断单元,用于判断所述第一任务的私有内存资源池中的空闲内存资源容量是否大于或等于所述内存资源分配请求所请求分配的内存资源大小;
分配单元,用于在所述判断单元判定为是时,从所述第一任务的私有内存资源池中获取内存资源进行分配;在所述判断单元判定为否时,从共享内存资源池中获取内存资源进行分配。
本发明的上述实施例中,接收第一任务发送的内存资源分配请求后,判断所述第一任务的私有内存资源池中的空闲内存资源容量是否大于或等于所述内存资源分配请求所请求分配的内存资源大小,若是,则从所述第一任务的私有内存资源池中获取内存资源进行分配;否则,从共享内存资源池中获取内存资源进行分配。可以看出,由于针对一个任务创建了该任务的私有内存资源池,在内存资源分配时,优先从私有内存资源池中获取内存资源进行分配,在私有内存资源池中的内存资源容量不能满足内置资源分配请求的情况下,才从共享内存资源池中获取内存资源进行分配。由于不同的任务的私有内存资源池之间以及与共享内存资源池之间不会存在资源冲突,所以在分配的资源来自于私有内存资源池的情况下无需使用内存互斥锁也能避免资源冲突,因此与现有技术相比,减少了内存互斥锁的使用。
附图说明
图1为本发明实施例的内存资源管理的整体方案流程示意图之一
图2为本发明实施例中的空闲资源池示意图;
图3为本发明实施例提供的回收资源池的创建流程示意图;
图4为本发明实施例的内存资源管理的整体方案流程示意图之二;
图5为本发明实施例提供的内存资源释放流程示意图;
图6为本发明实施例提供的内存资源回收整理的流程示意图;
图7为本发明实施例提供的内存资源管理装置的结构示意图。
具体实施方式
本发明实施例可适用于单CPU系统,也可适用于多CPU系统。使用本发明实施例,可以减少内存互斥锁的使用,进而提高SMP系统的并发处理效率。
下面结合附图对本发明实施例进行详细描述。
参见图1,为本发明实施例的内存资源管理的整体方案流程示意图,该流程可由用于实现内存资源管理的装置(以下称为内存资源管理装置)来实现。如图所示,该路程可包括如下步骤:
步骤101:接收第一任务发送的内存资源分配请求。
该内存资源分配请求可用于请求分配第一任务使用的内存资源,比如,该内存资源可以是用于缓存第一任务运行过程中的中间数据的内存块;也可用于请求分配第一任务与第二任务交互时所需的内存资源,比如,该内存资源可以是用于缓存第一任务和第二任务之间交互的控制信息和/或数的内存块。
其中,一个任务可以对应于一个应用程序,更具体地,一个任务可以是一个进程,也可以是一个线程。其中,进程或线程是指运行态的应用程序或应用组件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐移动通信设备有限公司,未经大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610430335.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种在分布式系统中计算资源的方法与设备
- 下一篇:锁竞争的分析方法及设备