终端的内存分配方法及装置制造方法及图纸

技术编号:15541252 阅读:34 留言:0更新日期:2017-06-05 10:44
本发明专利技术公开了一种终端的内存分配方法,终端的内存包括占用空间和空闲空间,空闲空间包括节点空间和分配空间,空闲空间的节点空间包括下一空闲空间开始位置的地址,该方法包括:接收外部设备发送的内存申请指令;根据所述内存申请指令和节点空间中的信息对各空闲空间进行查找;若查找到满足内存申请需求的空闲空间,则进行内存分配,并根据分配后分配空间的变化情况修改对应的空闲空间的下一空闲空间开始位置的地址。本发明专利技术还公开了一种终端的内存分配装置。本发明专利技术能够提高内存利用率,提高空间查找效率和内存分配效率。

Method and device for allocating memory of terminal

The invention discloses a memory allocation method for terminal, terminal including memory space and free space, free space including node space and space allocation, a free space at the beginning of the address space including the node free space, the method comprises: sending and receiving external device memory to find according to the application instructions; the free space of the memory for instructions and information in the node space; if find free space to meet the demand for memory, then the memory allocation location address to the next free space and free space corresponding to the change according to the changes in the distribution of spatial distribution. The invention also discloses a memory distribution device of the terminal. The invention can improve memory utilization, improve spatial search efficiency and memory allocation efficiency.

【技术实现步骤摘要】
终端的内存分配方法及装置
本专利技术涉及计算机
,尤其涉及一种终端的内存分配方法及装置。
技术介绍
目前,终端一般会与平台发生交互,因此终端数据的处理也需要与平台的数据发生交互,但是平台与终端发生数据交互时,交互的数据没有定长,终端数据和平台数据的范围相差很大。在终端上预设空间的时候,该预设的空间需要被设置得很大,会加大内存的需求。现有的内存管理技术为了降低内存的需求,大多以位标记表示内存的存储情况。如果单个位标记表示的内存太少时,则需要用到的标记位太多,这会造成空间的浪费,而单个位标记表示的内存太大时,单次申请的内存空间利用率则会比较低,同时,在内存申请和内存释放过程中需要进行多次位移计算和多次位与运算,需要消耗较长的时间,因此采用位标记表示内存的存储情况时,内存空间的利用率会比较低,同时数据的处理速率也会较慢。此外,在进行内存申请时,需按内存的物理地址顺序对内存进行检索,以查找到满足分配需求的空闲空间进行内存分配,但在实际内存中,占用空间和空闲空间是间隔分布的,因此除了检索空闲空间之外,还会检索无法再分配的占用空间,这种检索方式对内存中不必要的部分进行检索,花费了不必要的时间,降低了内存分配效率。此外现有公开技术在检索中很难找到合适的空间,往往会将较大的空间进行切割分配,这种方式容易导致没有必要的逻辑碎片,甚至会导致后续的内存申请空间较大时,由于找不大合适的空间而导致失败。上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
本专利技术的主要目的在于提出一种终端的内存分配方法及装置,旨在实现提高内存的利用率,同时减少空间查找花费的时间,提高查找效率和内存分配效率。为实现上述目的,本专利技术提供的一种终端的内存分配方法,所述终端的内存包括占用空间和空闲空间,所述空闲空间包括节点空间和分配空间,所述空闲空间的节点空间包括下一空闲空间开始位置的地址,所述终端的内存分配方法包括以下步骤:接收外部设备发送的内存申请指令;根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找;若在所述内存中查找到分配空间满足内存申请需求的空闲空间,则根据所述内存申请指令分配所述空闲空间中对应的分配空间,并在分配完成时修改对应的空闲空间的下一空闲空间开始位置的地址。优选的,所述终端的内存中设置有快速切入口,所述快速切入口设置在一空闲空间的开始位置,所述根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找的步骤包括:根据所述内存申请指令和节点空间中的信息从所述快速切入口所在的空闲空间开始对所述空闲空间进行查找;所述若在所述内存中查找到分配空间满足内存申请需求的空闲空间,则根据所述内存申请指令分配所述空闲空间中对应的分配空间,并在分配完成时修改对应的空闲空间的下一空闲空间开始位置的地址的步骤包括:在分配完成时,将所述快速切入口调整到另一空闲空间中节点空间的开始位置。优选的,所述快速切入口设置在分配空间最小的空闲空间,所述根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找的步骤之前还包括:根据各空闲空间分配空间的大小进行排序,并根据排序结果修改所述内存中各空闲空间中的下一空闲空间开始位置的地址,以使得各空闲空间按分配空间大小依次进行关联;所述根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址从所述快速切入口所在的空闲空间开始对所述空闲空间进行查找的步骤包括:根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址从所述快速切入口所在的分配空间最小的空闲空间开始对所述空闲空间进行查找。优选的,所述在分配完成时修改对应的空闲空间的下一空闲空间开始位置的地址的步骤还包括:在分配完成时,根据各空闲空间当前的分配空间大小,更新所述内存中各空闲空间中的下一空闲空间开始位置的地址,以使得各空闲空间按当前的分配空间大小依次进行关联;所述在分配完成时,将所述快速切入口调整到另一空闲空间中节点空间的开始位置的步骤包括:在分配完成时,将所述快速切入口调整到当前分配空间最小的空闲空间中节点空间的开始位置。优选的,所述接收外部设备发送的内存申请指令的步骤之后还包括:根据所述内存申请指令获取内存申请的需求;若未获取到所述内存申请的需求,则根据所述内存申请指令在分配空间最大的空闲空间中进行预分配;若获取到所述内存申请的需求,则执行步骤:根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找。优选的,所述终端的内存分配方法还包括:在接收到所述占用空间的中数据已被使用或继续使用的空间大小时,释放所述占用空间中对应的空间;修改所述占用空间的下一空闲空间开始位置的地址和其它对应的空闲空间的下一空闲空间开始位置的地址,或者根据所述占用空间释放的空间大小新建为空闲空间。优选的,所述空闲空间的预设空间还包括上一空间开始位置的地址和下一空间开始位置的地址,将释放的占用空间定义为释放空间,所述终端的内存分配方法还包括:根据所述释放空间的下一空间开始位置的地址判断与所述释放空间相邻的下一空间是否包括下一空闲空间开始位置的地址;若与所述释放空间相邻的下一空间包括下一空闲空间开始位置的地址,则将所述释放空间和所述释放空间相邻的下一空间合并,并在合并完成时修改对应的空闲空间的上一空间开始位置的地址、下一空间开始位置的地址和下一空闲空间开始位置的地址;根据所述释放空间的上一空间开始位置的地址判断与所述释放空间相邻的上一空间是否包括下一空闲空间开始位置的地址;若与所述释放空间相邻的上一空间包括下一空闲空间开始位置的地址,则将所述释放空间和所述释放空间相邻的上一空间合并,并在合并完成时修改对应的空闲空间的上一空间开始位置的地址、下一空间开始位置的地址和下一空闲空间开始位置的地址。此外,为实现上述目的,本专利技术还提供一种终端的内存分配装置,所述终端的内存包括占用空间和空闲空间,所述空闲空间包括节点空间和分配空间,所述空闲空间的节点空间包括下一空闲空间开始位置的地址,所述内存分配装置包括:指令接收模块,用于接收外部设备发送的内存申请指令;空间查找模块,用于根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找;空间分配模块,用于若在所述内存中查找到分配空间满足内存申请需求的空闲空间,则根据所述内存申请指令分配所述空闲空间中对应的分配空间,并在分配完成时修改对应的空闲空间的下一空闲空间开始位置的地址。优选的,所述终端的内存中设置有快速切入口,所述快速切入口设置在一空闲空间的开始位置,所述空间查找模块还用于根据所述内存申请指令和节点空间中的信息从所述快速切入口所在的空闲空间开始对所述空闲空间进行查找;所述空间分配模块还用于在分配完成时,将所述快速切入口调整到另一空闲空间中节点空间的开始位置。优选的,所述快速切入口设置在分配空间最小的空闲空间,所述内存分配装置还包括:关联模块,用于根据各空闲空间分配空间的大小进行排序,并根据排序结果修改所述内存中各空闲空间中的下一空闲空间开始位置的地址,以使得各空闲空间按分配空间大小依次进行关联;所述空间查找模块还用于根据所述内存申请指令本文档来自技高网...
终端的内存分配方法及装置

【技术保护点】
一种终端的内存分配方法,其特征在于,所述终端的内存包括占用空间和空闲空间,所述空闲空间包括节点空间和分配空间,所述空闲空间的节点空间包括下一空闲空间开始位置的地址,所述终端的内存分配方法包括以下步骤:接收外部设备发送的内存申请指令;根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找;若在所述内存中查找到分配空间满足内存申请需求的空闲空间,则根据所述内存申请指令分配所述空闲空间中对应的分配空间,并在分配完成时修改对应的空闲空间的下一空闲空间开始位置的地址。

【技术特征摘要】
1.一种终端的内存分配方法,其特征在于,所述终端的内存包括占用空间和空闲空间,所述空闲空间包括节点空间和分配空间,所述空闲空间的节点空间包括下一空闲空间开始位置的地址,所述终端的内存分配方法包括以下步骤:接收外部设备发送的内存申请指令;根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找;若在所述内存中查找到分配空间满足内存申请需求的空闲空间,则根据所述内存申请指令分配所述空闲空间中对应的分配空间,并在分配完成时修改对应的空闲空间的下一空闲空间开始位置的地址。2.如权利要求1所述的内存分配方法,其特征在于,所述终端的内存中设置有快速切入口,所述快速切入口设置在一空闲空间的开始位置,所述根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找的步骤包括:根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址从所述快速切入口所在的空闲空间开始对所述空闲空间进行查找;所述若在所述内存中查找到分配空间满足内存申请需求的空闲空间,则根据所述内存申请指令分配所述空闲空间中对应的分配空间,并在分配完成时修改对应的空闲空间的下一空闲空间开始位置的地址的步骤包括:在分配完成时,将所述快速切入口调整到另一空闲空间中节点空间的开始位置。3.如权利要求2所述的内存分配方法,其特征在于,所述快速切入口设置在分配空间最小的空闲空间,所述根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找的步骤之前还包括:根据各空闲空间分配空间的大小进行排序,并根据排序结果修改所述内存中各空闲空间中的下一空闲空间开始位置的地址,以使得各空闲空间按分配空间大小依次进行关联;所述根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址从所述快速切入口所在的空闲空间开始对所述空闲空间进行查找的步骤包括:根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址从所述快速切入口所在的分配空间最小的空闲空间开始对所述空闲空间进行查找。4.如权利要求3所述的内存分配方法,其特征在于,所述在分配完成时修改对应的空闲空间的下一空闲空间开始位置的地址的步骤还包括:在分配完成时,根据各空闲空间当前的分配空间大小,更新所述内存中各空闲空间中的下一空闲空间开始位置的地址,以使得各空闲空间按当前的分配空间大小依次进行关联;所述在分配完成时,将所述快速切入口调整到另一空闲空间中节点空间的开始位置的步骤包括:在分配完成时,将所述快速切入口调整到当前分配空间最小的空闲空间中节点空间的开始位置。5.如权利要求3所述的内存分配方法,其特征在于,所述接收外部设备发送的内存申请指令的步骤之后还包括:根据所述内存申请指令获取内存申请的需求;若未获取到所述内存申请的需求,则根据所述内存申请指令在分配空间最大的空闲空间中进行预分配;若获取到所述内存申请的需求,则执行步骤:根据所述内存申请指令和节点空间中的下一空闲空间开始位置的地址对所述内存中的空闲空间进行查找。6.如权利要求1所述的内存分配方法,其特征在于,所述终端的内存分配方法还包括:在接收到所述占用空间的中数据已被使用或继续使用的空间大小时,释放所述占用空间中对应的空间;修改所述占用空间的下一空闲空间开始位置的地址和其它对应的空闲空间的下一空闲空间开始位置的地址,或者根据所述占用空间释放的空间大小新建为空闲空间。7.如权利要求6所述的内存分配方法,其特征在于,所述空闲空间的节点空间还包括上一空间开始位置的地址和下一空间开始位置的地址,将释放的占用空间定义为释放空间,所述终端的内存分配方法还包括:根据所述释放空间的下一空间开始位置的地址判断与所述释放空间相邻的下一空间是否包括下一空闲空间开始位置的地址;若与所述释放空间相邻的下一空间包括下一空闲空间开始位置的地址,则将所述释放空间和所述释放空间相邻的下一空间合并,并在合并完成时修改对应的空闲空间的上一空间开始位置的地址、下一空间开始位置的地址和下一空闲空间开始位置的地址;根据所述释放空间的上一空间开始位置的地址判断与所述释放空间相邻的上一空间是否包括下一空闲空间开始位置的地址;若与...

【专利技术属性】
技术研发人员:邓国祖
申请(专利权)人:深圳市证通金信科技有限公司
类型:发明
国别省市:广东,44

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

1