内存管理方法及装置制造方法

文档序号:6488584阅读:231来源:国知局
内存管理方法及装置制造方法
【专利摘要】本发明公开了一种内存管理方法及装置,大大提高了内存管理的效率,该方法包括:所述内存单元包括动态存储内存和静态存储内存,其中,所述静态存储内存中每种容量未被占用的二级指针存储单元的数量都介于其最大阈值和最小阈值之间;当某种容量未被占用的二级指针存储单元的数量大于其最大阈值时,将所述静态存储内存上该种容量二级指针存储单元放回到动态存储内存中,作为一级指针存储单元;当某种容量未被占用的二级指针存储单元的数量小于其最小阈值时,所述动态存储内存上取出该种容量的一级指针存储单元到静态存储内存中,作为二级指针存储单元。该装置包括:设置单元和分配单元。
【专利说明】内存管理方法及装置
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种内存管理方法及装置。
【背景技术】
[0002]现有的内存管理方法是通过在动态内存上分配不同的内存单元,然后给每一个内存单元分配一个管理该内存单元的指针,外部系统需要内存时,查询满足外部系统需要的条件的内存单元的空闲的指针,如果有满足外部系统条件的空闲指针,外部系统占用该空闲指针对应的内存单元,如果没有满足条件的空闲指针,外部系统则不能用该内存。
[0003]现有技术的不足之处在于:外部系统通过动态内存上的指针查询内存单元的效率低。

【发明内容】

[0004]鉴于上述的分析,本发明旨在提供一种内存管理方法及装置,用以解决现有技术中外部系统通过动态内存上的指针查询内存单元的效率低的问题。
[0005]本发明的目的主要是通过以下技术方案实现的:
[0006]一种内存管理方法,该方法包括以下步骤:
[0007]内存包括动态存储内存和静态存储内存,其中,所述静态存储内存中每种容量未被占用的二级指针存储单元的数量都介于其最大阈值和最小阈值之间;
[0008]当某种容量未被占用的二级指针存储单元的数量大于其最大阈值时,将所述静态存储内存上该种容量二级指针存储单元放回到动态存储内存中,作为一级指针存储单元;当某种容量未被占用的二级指针存储单元的数量小于其最小阈值时,从所述动态存储内存上取出该种容量的一级指针存储单元到静态存储内存中,作为二级指针存储单元。
[0009]优选地,当收到缓冲申请时,判断所述静态存储内存中二级指针存储单元的数量是否满足所述缓冲申请所要占用的内存单元的数量,如果是,则占用该内存单元;如果否,再重新发起缓冲申请,直到将查找到满足要求的二级指针存储单元;其中,所述静态存储内存中二级指针存储单元的容量大于等于所述缓冲申请所要占用的内存单元的容量。
[0010]优选地,判断满足要求的所述二级指针存储单元的步骤具体包括:
[0011]根据所述缓冲申请中的内存单元容量,在静态存储内存中查找对应容量的二级指针存储单元,判断未被占用的该容量的二级指针存储单元的数量是否满足所述内存单元的数量,如果是,占用该内存单元,如果否,则判断大一级容量的所述二级指针存储单元的数量是否满足所述内存单元的数量,逐级判断,直到所有所述二级指针存储单元都遍历完。
[0012]优选地,当接收到外部系统发来的指针释放申请,如果经过判断确定要释放的二级指针是在合法地址范围、低位地址是O且不是重复释放,则释放对应的二级指针,否则结束。
[0013]优选地,所述最大阈值为104,所述最小阈值为24。
[0014]本发明还提供了一种内存管理装置,该装置包括:[0015]设置单元,用于在静态存储内存中为每种容量未被占用的二级指针存储单元设置最大阈值和最小阈值;
[0016]分配单元,用于当某种容量未被占用的二级指针存储单元的数量大于其最大阈值时,将所述静态存储内存上该种容量二级指针存储单元放回到动态存储内存中,作为一级指针存储单元;当某种容量未被占用的二级指针存储单元的数量小于其最小阈值时,从所述动态存储内存上取出该种容量的一级指针存储单元到静态存储内存中,作为二级指针存储单元;使该容量未被占用的二级指针存储单元的数量介于其最大阈值和最小阈值之间。
[0017]优选地,该装置还包括,
[0018]判断单元,用于判断所述静态存储内存中二级指针存储单元的数量是否满足所述缓冲申请所要占用的内存单元的数量,如果是,占用该内存单元;如果否,触发外部系统重新发起缓冲申请,直到将查找到满足要求的所述二级指针存储单元;其中,所述静态存储内存中二级指针存储单元的容量大于等于所述缓冲申请所要占用的内存单元的容量。
[0019]优选地,所述判断单元具体用于,根据所述缓存申请中的内存单元容量,在静态存储内存中查找对应容量的二级指针存储单元,判断未被占用的该容量的二级指针存储单元的数量是否满足所述内存单元的数量,如果是,占用该内存单元,如果否,则判断大一级容量的所述二级指针存储单元的数量是否满足所述内存单元的数量,逐级判断,直到所有所述二级指针存储单元都遍历完,如果都没有满足的,触发外部系统重新发起缓冲申请,直到将查找到满足要求的所述二级指针存储单元。
[0020]优选地,该装置还包括,
[0021]释放单元,用于在接收到外部系统发来的指针释放申请时,判断要释放的二级指针是在合法地址范围、低位地址是O且不是重复释放,则释放对应的二级指针,否则结束。
[0022]优选地,所述设置单元进一步设有最大阈值为104,最小阈值为24。
[0023]本发明有益效果如下:
[0024]本发明提供的一种内存管理方法,在动态存储内存中,按内存单元容量分别取预定数量的一级指针存储单元,移到静态存储内存上,成为二级指针存储单元,并且各个容量的二级指针存储单元均设有最大阈值和最小阈值,如果不满足上述阈值范围,可通过移动一级指针存储单元或二级指针存储单元使所述二级指针存储单元各个容量均在阈值范围内,外部系统通过二级指针存储单元查询内存单元,大大提高了访问速度,进而提高了内存管理的效率。
[0025]本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
【专利附图】

【附图说明】
[0026]图1为本发明实施例1的一种内存管理方法的流程图;
[0027]图2为本发明实施例2的一种内存管理方法的流程图;
[0028]图3为本发明实施例3的一种内存管理装置示意图;
[0029]图4为本发明实施例4的一种内存管理装置示意图。【具体实施方式】
[0030]下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理。为了清楚和简化目的,当其可能使本发明的主题模糊不清时,将省略本文所描述的器件中已知功能和结构的详细具体说明。
[0031]实施例1
[0032]本发明实施例提供的一种内存管理方法,参见图1,该方法包括:
[0033]S101、在动态存储内存中,按内存单元容量分别取预定数量的一级指针存储单元,移到静态存储内存上,成为二级指针存储单元;
[0034]S102、所述静态存储内存中每种容量未被占用的二级指针存储单元的数量都介于其最大阈值和最小阈值之间;
[0035]当某种容量未被占用的二级指针存储单元的数量大于其最大阈值时,将所述静态存储内存上该种容量二级指针存储单元放回到动态存储内存中,作为一级指针存储单元;当某种容量未被占用的二级指针存储单元的数量小于其最小阈值时,从所述动态存储内存上取出该种容量的一级指针存储单元到静态存储内存中,作为二级指针存储单元;
[0036]S103、当接收到外部系统发送来的缓冲申请时,根据所述缓冲申请中的内存单元容量和数量到所述静态存储内存中查找满足要求的所述二级指针存储单元,如果是,进入S104 ;否则,进入S105 ;
[0037]S104、反馈对应的二级指针给所述外部系统;
[0038]S105 ;所述外部系统再重新发起申请。
[0039]本发明实施例提供的一种内存管理方法,在动态存储内存中,按内存单元容量分别取预定数量的一级指针存储单元,移到静态存储内存上,成为二级指针存储单元,且各个容量的二级指针存储单元均设有最大阈值和最小阈值,如果不满足上述阈值范围,可通过移动一级指针存储单元或二级指针存储单元使所述二级指针存储单元各个容量均在阈值范围内,外部系统通过二级指针存储单元查询内存单元,大大提高了访问速度,进而提高了内存管理的效率。
[0040]实施例2
[0041]本发明实施例提供了一种内存管理方法,参见图2,该方法包括:
[0042]S201、在动态存储内存中,按内存单元容量分别取预定数量的一级指针存储单元,移到静态存储内存上,成为二级指针存储单元;
[0043]S202、所述静态存储内存中每种容量未被占用的二级指针存储单元的数量都介于其最大阈值和最小阈值之间;
[0044]本发明实施例设定初始的所述二级指针存储单元的数量为64,设定的最小阈值为24,最大阈值为104 ;
[0045]S203、当外部系统发起缓冲申请时,根据缓冲申请中的内存单元容量到静态存储内存中查找对应的二级指针存储单元,判断未被占用的该容量的二级指针存储单元的数量是否满足,如果是,进入S204,否则进入S205 ;
[0046]S204、将对应的所述二级指针返回给所述外部系统;
[0047]S205、判断大一级容量的未被占用的所述二级指针存储单元的数量是否满足,如果是,进入S204 ;如果不是,进入S206 ;[0048]S206、继续向上搜索,直到所有所述二级指针存储单元都遍历完,都没有满足的,则触发外部系统重新发起申请;
[0049]所述二级指针存储单元的数量设有最大阈值和最小阈值,当某种容量未被占用的二级指针存储单元的数量大于其最大阈值时,将所述静态存储内存上该种容量二级指针存储单元放回到动态存储内存中,作为一级指针存储单元;当某种容量未被占用的二级指针存储单元的数量小于其最小阈值时,所述动态存储内存上取出该种容量的一级指针存储单元到静态存储内存中,作为二级指针存储单元;因为系统能够自动调整二级指针存储单元的数量,使所有容量的二级指针存储单元都在最大阈值和最小阈值之间时,所以当该次查找不到满足要求的二级指针存储单元时,当外部系统再次发起申请的时候,就会有满足要求的二级指针存储单元。
[0050]其中,本发明实施例的二级指针存储单元采用先进先出原则。
[0051]S207、当接收到外部系统发来的指针释放申请,判断要释放的一级或二级指针是否满足在合法地址范围、低位地址是O且不是重复释放,如果是进入S208,否则进入S209 ;
[0052]S208、释放对应的一级或二级指针;
[0053]S209、结束程序。
[0054]其中,具体判断过程是:
[0055]判断所述释放的指针是否在合法地址范围,如果不是,则结束程序,如果是,
[0056]进一步判断其低位地址是否是0,如果不是,则结束程序,如果是,
[0057]进一步判断是否是重复释放,如果是,则结束程序,如果不是,则将所述释放的指针存入所述二级指针存储单元。
[0058]本发明实施例提供的一种内存管理方法,在动态存储内存中,按内存单元容量分别取预定数量的一级指针存储单元,移到静态存储内存上,成为二级指针存储单元,外部系统通过二级指针存储单元查询内存单元,大大提高了访问速度,进而提高了内存管理的效率;
[0059]而且本发明实施例提供的内存管理方法中的二级指针存储单元设有最大阈值和最小阈值,当某种容量的二级指针存储单元的数量不在最大阈值和最小阈值之间时,系统自动调整该容量的二级指针存储单元的数量,保证外部系统发来的请求都能得到满足。
[0060]本发明实施例提供的内存管理方法还要对外部系统释放的指针进行判断,将符合判断条件的指针收回,不符合的指针予以放弃,提高了系统的可靠性。
[0061]实施例3
[0062]本发明实施例提供了一种内存管理装置,该装置包括:
[0063]设置单元31,用于在静态存储内存中为每种容量未被占用的二级指针存储单元设置最大阈值和最小阈值;
[0064]分配单元32,用于当某种容量未被占用的二级指针存储单元的数量大于其最大阈值时,将所述静态存储内存上该种容量二级指针存储单元放回到动态存储内存中,作为一级指针存储单元;当某种容量未被占用的二级指针存储单元的数量小于其最小阈值时,从所述动态存储内存上取出该种容量的一级指针存储单元到静态存储内存中,作为二级指针存储单元;使该容量未被占用的二级指针存储单元的数量介于其最大阈值和最小阈值之间。[0065]动态存储内存33,存放不同容量和数量的内存单元和剩余的一级指针存储单元;
[0066]静态存储内存34,存放不同容量和数量的所述二级指针存储单元。
[0067]本发明实施例提供的一种内存管理装置,在动态存储内存中,按内存单元容量分别取预定数量的一级指针存储单元,移到静态存储内存上,成为二级指针存储单元,并且各个容量的二级指针存储单元均设有最大阈值和最小阈值,如果不满足上述阈值范围,可通过移动一级指针存储单元或二级指针存储单元使所述二级指针存储单元各个容量均在阈值范围内,外部系统通过二级指针存储单元查询内存单元,大大提高了访问速度,进而提高了内存管理的效率。
[0068]实施例4
[0069]本发明实施例还提供了一种内存管理装置,参见图4,该装置包括:设置单元41、分配单元42、判断单元43、释放单元44和动态存储内存单元45和静态存储内存46,其中,
[0070]设置单元41,用于在静态存储内存中为每种容量未被占用的二级指针存储单元设置最大阈值和最小阈值;其中,所述最大阈值为104,所述最小阈值为24。
[0071]分配单元42,用于当某种容量未被占用的二级指针存储单元的数量大于其最大阈值时,将所述静态存储内存上该种容量二级指针存储单元放回到动态存储内存中,作为一级指针存储单元;当某种容量未被占用的二级指针存储单元的数量小于其最小阈值时,从所述动态存储内存上取出该种容量的一级指针存储单元到静态存储内存中,作为二级指针存储单元;使该容量未被占用的二级指针存储单元的数量介于其最大阈值和最小阈值之间;
[0072]判断单元43,用于判断所述静态存储内存中二级指针存储单元的数量是否满足所述缓冲申请所要占用的内存单元的数量,如果是,占用该内存单元;如果否,触发外部系统重新发起缓冲申请,直到将查找到满足要求的所述二级指针存储单元;其中,所述静态存储内存中二级指针存储单元的容量大于等于所述缓冲申请所要占用的内存单元的容量。
[0073]所述判断单元43具体用于,根据所述缓存申请中的内存单元容量,在静态存储内存中查找对应容量的二级指针存储单元,判断未被占用的该容量的二级指针存储单元的数量是否满足所述内存单元的数量,如果是,占用该内存单元,如果否,则判断大一级容量的所述二级指针存储单元的数量是否满足所述内存单元的数量,逐级判断,直到所有所述二级指针存储单元都遍历完,如果都没有满足的,触发外部系统重新发起缓冲申请,直到将查找到满足要求的所述二级指针存储单元。
[0074]释放单元44,用于在接收到外部系统发来的指针释放申请时,判断要释放的二级指针是在合法地址范围、低位地址是O且不是重复释放,则释放对应的二级指针,否则结束。
[0075]动态存储内存45,存放不同容量和数量的内存单元和剩余的一级指针存储单元;
[0076]静态存储内存46,存放不同容量和数量的所述二级指针存储单元。
[0077]综上所述,本发明实施例提供了一种内存管理系统及系统,至少能带来一种以下有益效果:
[0078]1、本发明实施例提供的一种内存管理方法,在动态存储内存中,按内存单元容量分别取预定数量的一级指针存储单元,移到静态存储内存上,成为二级指针存储单元,并且各个容量的二级指针存储单元均设有最大阈值和最小阈值,如果不满足上述阈值范围,可通过移动一级指针存储单元或二级指针存储单元使所述二级指针存储单元各个容量均在最大阈值和最小阈值范围内,外部系统通过二级指针存储单元查询内存单元,大大提高了访问速度,进而提高了内存管理的效率。
[0079]2、本发明实施例提供的内存管理方法还对外部系统释放的指针进行判断,将符合判断条件的指针收回,不符合的指针予以放弃,提高了系统的可靠性。
[0080]以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
【权利要求】
1.一种内存管理方法,其特征在于,该方法包括以下步骤: 内存包括动态存储内存和静态存储内存,其中,所述静态存储内存中每种容量未被占用的二级指针存储单元的数量都介于其最大阈值和最小阈值之间; 当某种容量未被占用的二级指针存储单元的数量大于其最大阈值时,将所述静态存储内存上该种容量二级指针存储单元放回到动态存储内存中,作为一级指针存储单元;当某种容量未被占用的二级指针存储单元的数量小于其最小阈值时,从所述动态存储内存上取出该种容量的一级指针存储单元到静态存储内存中,作为二级指针存储单元。
2.根据权利要求1所述的方法,其特征在于,当收到缓冲申请时,判断所述静态存储内存中二级指针存储单元的数量是否满足所述缓冲申请所要占用的内存单元的数量,如果是,则占用该内存单元;如果否,再重新发起缓冲申请,直到将查找到满足要求的二级指针存储单元;其中,所述静态存储内存中二级指针存储单元的容量大于等于所述缓冲申请所要占用的内存单元的容量。
3.根据权利要求2所述的方法,其特征在于,判断满足要求的所述二级指针存储单元的步骤具体包括: 根据所述缓冲申请中的内存单元容量,在静态存储内存中查找对应容量的二级指针存储单元,判断未被占用的该容量的二级指针存储单元的数量是否满足所述内存单元的数量,如果是,占用该内存单元,如果否,则判断大一级容量的所述二级指针存储单元的数量是否满足所述内存单元的数量,逐级判断,直到所有所述二级指针存储单元都遍历完。
4.根据权利要求1-3任意一项所述的方法,其特征在于,当接收到外部系统发来的指针释放申请,如果经过判断确定要释放的二级指针是在合法地址范围、低位地址是O且不是重复释放,则释放对应的二级指针,否则结束。`
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述最大阈值为104,所述最小阈值为24。
6.一种内存管理装置,其特征在于,该装置包括: 设置单元,用于在静态存储内存中为每种容量未被占用的二级指针存储单元设置最大阈值和最小阈值; 分配单元,用于当某种容量未被占用的二级指针存储单元的数量大于其最大阈值时,将所述静态存储内存上该种容量二级指针存储单元放回到动态存储内存中,作为一级指针存储单元;当某种容量未被占用的二级指针存储单元的数量小于其最小阈值时,从所述动态存储内存上取出该种容量的一级指针存储单元到静态存储内存中,作为二级指针存储单元;使该容量未被占用的二级指针存储单元的数量介于其最大阈值和最小阈值之间。
7.根据权利要求6所述的装置,其特征在于,还包括, 判断单元,用于判断所述静态存储内存中二级指针存储单元的数量是否满足所述缓冲申请所要占用的内存单元的数量,如果是,占用该内存单元;如果否,触发外部系统重新发起缓冲申请,直到将查找到满足要求的所述二级指针存储单元;其中,所述静态存储内存中二级指针存储单元的容量大于等于所述缓冲申请所要占用的内存单元的容量。
8.根据权利要求7所述的装置,其特征在于, 所述判断单元具体用于,根据所述缓存申请中的内存单元容量,在静态存储内存中查找对应容量的二级指针存储单元,判断未被占用的该容量的二级指针存储单元的数量是否满足所述内存单元的数量,如果是,占用该内存单元,如果否,则判断大一级容量的所述二级指针存储单元的数量是否满足所述内存单元的数量,逐级判断,直到所有所述二级指针存储单元都遍历完,如果都没有满足的,触发外部系统重新发起缓冲申请,直到将查找到满足要求的所述二级指针存储单元。
9.根据权利要求6-8任意一项所述的装置,其特征在于,还包括, 释放单元,用于在接收到外部系统发来的指针释放申请时,判断要释放的二级指针是在合法地址范围、低位地址是O且不是重复释放,则释放对应的二级指针,否则结束。
10.根据权利要求6-8任意一项所述的装置,其特征在于, 所述设置单元进一步设有最大阈值为104,最小阈值为24。
【文档编号】G06F12/08GK103678161SQ201210325439
【公开日】2014年3月26日 申请日期:2012年9月6日 优先权日:2012年9月6日
【发明者】朱剑平, 郑学进, 鞠海英 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1