一种数据通信设备中的内存管理方法

文档序号:9616073阅读:310来源:国知局
一种数据通信设备中的内存管理方法
【技术领域】
[0001]本发明涉及一种数据通信设备中的内存管理方法。
【背景技术】
[0002]在各种数据通信设备中,内存空间按不同字节数分成多种分片,各种分片的长度即字节数包括32字节、64字节、128字节、256字节、512字节、1024字节、2048字节、4096字节等类型。设备运行中对各种类型的内存的需求不断变化。为了高速地进行内存的申请、释放等操作,对于同一种内存的申请通常采取成批申请的方式,即在系统的编译时决定各种分片的数目,进入运行过程后,这种数目将无法根据实际需要进行动态调整。例如,我们凭经验估计某种设备通常情况下对于32字节的内存分片大约需要5万片即可,于是在系统初始化时,一次性申请能够存放5万片32字节的内存区用于存取。在系统运行过程中,当需要申请32字节的内存时,便从此内存区中取一片空闲的32字节内存分片来使用,如果内存区中已没有空闲的内存分片,则系统将返回申请失败提示,即使此时其它种类的内存区中还有很多空闲的内存空间。这种固定分配的内存管理方法虽然容易实现,但在使用中,对空闲的内存资源无法充分利用,造成浪费。

【发明内容】

[0003]为解决上述现有的缺点,本发明的主要目的在于提供一种实用的数据通信设备中的内存管理方法,对各种分片类型的内存,在运行过程中根据实际需要动态分配,使内存资源充分利用。
[0004]为达成以上所述的目的,本发明的一种数据通信设备中的内存管理方法采取如下技术方案:
一种数据通信设备中的内存管理方法,其特征在于,对内存空间依各种分片的字节数划分不同种类型的页面簇,以页面簇为单位从占整个内存空间一定比例的空闲内存区中分配以供申请,每个页面簇中至少包含一个页面,每个页面的长度能容纳一个字节数最大的分片,在同一种类型的页面簇中,所有页面中的分片的字节数相同,当申请某种字节数的内存时,包括下述步骤:
A、检查该种字节数分片类型的页面簇中是否有空闲分片,如果有,转步骤E;如果无,继续步骤B
B、判断空闲内存区占整个内存空间的比例是否小于等于设定值,如果是,转步骤D;如果否,执行步骤C;
C、从空闲内存区中划分出一个相应类型的页面簇,转步骤E;
D、从其他类型的页面簇中找出所有分片均处于空闲的页面簇,将其改变为所需类型的页面簇;继续步骤E;
E、从页面簇中分配分片。
[0005]所述页面簇中包含的页面数为2、3或4个,将所述空闲内存区占整个内存空间最小比例的设定值设为大于10%x小于15%的任一数值,对属于同一页面簇的分片予以标识,用于在分片被释放时,将其归入所属的页面簇,对每个页面簇设置用于指向本页面簇中第一个分片的头指针和用于指向本页面簇中最后一个分片的尾指针,
当分片被释放时,若此分片所在的页面簇己经有空闲分片,则将该分片加入所述尾指针之后,然后再调整尾指计指向刚释放的分片,若分片所在页面簇中无空闲分片,则将所在页面簇的头指针和尾指针都指向此分片,再将此分片加入由头指针所指向的该种长度的空闲分片链的链首。
[0006]采用如上技术方案的本发明,具有如下有益效果:
本发明对各种分片类型的内存,在运行过程中根据实际需要动态分配,使内存资源充分利用。
【具体实施方式】
[0007]为了进一步说明本发明,下面结合实施例进一步进行说明:
本发明技术方案的核心就是对内存空间作出新的划分,使用户对内存的申请和释放在划分后的区间进行,而这种新的划分使不同类型的区间可以相互转换,这样一来,对各种类型的内存就不必预留固定的数量,在运行中按照申请动态分配。
[0008]当申请某种字节数的内存时包括下述步骤:
A、检查该种字节数分片类型的页面簇中是否有空闲分片,如果有,转步骤E;如果无,继续步骤B ;
B、判断空闲内存区占整个内存空间的比例是否小于等于设定值,如果是,转步骤D;如果否,执行步骤E;
C、从空闲内存区中划分出一个相应类型的页面簇,转步骤E.D、从其他类型的页面簇中找出所有分片均处于空闲的页面簇,将其改变为所需类型的页面簇;继续步骤E;
E、从页面簇中分配分片。
[0009]从空闲内存区中取待用内存是以页面簇为单位,而申请内存是以分片为单位,步骤A的作用就是每次申请时检查是否有同类型的分片在相应页面簇中尚未被申请。如果有,直接分配分片;如果无,就需要再取一个这种类型的页面簇。
[0010]取一个新的页面簇有两种途径,第一种是从空闲内存区中划分出一个相应类型的页面簇,第二种是从其他类型的页面簇中找出空闲面簇,再将其改变为所需类型的页面簇,所谓改变页面簇的类型,就是改变页面簇中分片的类型,如可将一个包含24个512字节分片的页面簇转换成一个包含6个2048字节分片的页面簇,亦可将其转换成一个包含96个128字节分片的页面簇。为了减少页面簇类型转换可能引起的震荡,在步骤B中规定了一个条件,作为选择上述两种途径的依据,即判断空闲内存区占整个内存空间的比例是否已小于等于设定的最小值,如果是,选择第二种;如果否,选择第一种。此比例如果太高,系统进行页面簇类型转换的操作会增多,而比例太低了,则不利于处理对于某种类型分片的大量需求。根据比较,空闲内存区占整个内存空间比例的最小值可设定为大于10%小于15%的任一数值。
[0011]本发明引入页面簇作为划分内存空间的单位,每个页面簇中至少包含一个页面,每个页面的长度能容纳一个字节数最大的分片,在同一种类型的页面簇中,所有页面中的分片的字节数相同。每个页面簇中的页面数量可任意设定,实际应用中,以2至4个为宜。假设实际应用中最大的分片长度为4096字节,每个页面簇中的页面数量为3个,那末页面簇就可以是包含6个2048字节分片的类型或包含12个1024字节分片的类型等,依此类推。
[0012]在使用中,可以链表的形式对页面簇进行管理,给每个页面簇设置一个页面簇头记录以下信息:
(1)页面簇类型一页面簇包含的分片类型,如32字节、64字节、128字节等;
(2)页面数一本页面簇包含的页面数量;
(3)空闲指针一在本页面簇空闲时,指向同一类型的下一个空闲页面簇的页面簇头。
[0013]页面簇头中还可以携带其他用于算法控制的信息。在本发明的实施中,也可以对相同类型的空闲分片采用链表方式管理,设置空闲分片头指针用于指向此空闲分片链的链首。链中的空闲分片分属于多个不同的页面簇,为了便于对空闲页面簇进行回收转换处理,我们需要对空闲分片的连接顺序作一定的限制,即要使位于同一个页面簇中的空闲分片被连在以上链表中相连的区段,于是可对属于同一页面簇的分片予以标识,用于在分片被释放时,将其归入所属的页面簇。再对每个页面簇设置用于指向本页面簇中第一个分片的头指针和用于指向本页面簇中最后一个分片的尾指针,用于在分片被释放时,若此分片所在的页面簇已经有空闲分片,则将该分片加入尾指针之后,然后再调整尾指针指向刚释放的分片;若分片所在页面簇中无空闲分片,则将所在页面簇的头指针和尾指计都指向此分片,再将此分片加入由头指针所指向的该种长度的空闲分片链的链首。若一个分片经过释放后,此分片所在的页面簇中所有分片都变为空闲分片,则此页面簇变为空闲页面簇。
[0014]当从某一类型的页面簇中进行分片申请时,若空闲分片头指针不为空,则将其所指向的分片分配给该申请,并将空闲分片头指针指向下一个空闲分片;若空闲分片头指针为空,表示此类型的页面簇已经被全部使用,则先分配一个同类型的页面簇,然后再从此新的页面簇中进行分片的分配。
[0015]系统亦可预留一部分不使用本发明方法的内存空间,用于对大于最大分片的内存申请进行分配。
【主权项】
1.一种数据通信设备中的内存管理方法,其特征在于,对内存空间依各种分片的字节数划分不同种类型的页面簇,以页面簇为单位从占整个内存空间一定比例的空闲内存区中分配以供申请,每个页面簇中至少包含一个页面,每个页面的长度能容纳一个字节数最大的分片,在同一种类型的页面簇中,所有页面中的分片的字节数相同,当申请某种字节数的内存时,包括下述步骤: A、检查该种字节数分片类型的页面簇中是否有空闲分片,如果有,转步骤E;如果无,继续步骤B B、判断空闲内存区占整个内存空间的比例是否小于等于设定值,如果是,转步骤D;如果否,执行步骤C; C、从空闲内存区中划分出一个相应类型的页面簇,转步骤E; D、从其他类型的页面簇中找出所有分片均处于空闲的页面簇,将其改变为所需类型的页面簇;继续步骤E; E、从页面簇中分配分片。2.如权利要求1所述的一种数据通信设备中的内存管理方法,其特征在于,所述页面簇中包含的页面数为2、3或4个,将所述空闲内存区占整个内存空间最小比例的设定值设为大于10%X小于15%的任一数值,对属于同一页面簇的分片予以标识,用于在分片被释放时,将其归入所属的页面簇,对每个页面簇设置用于指向本页面簇中第一个分片的头指针和用于指向本页面簇中最后一个分片的尾指针。3.根据权利要求2所述的一种数据通信设备中的内存管理方法,其特征在于,当分片被释放时,若此分片所在的页面簇己经有空闲分片,则将该分片加入所述尾指针之后,然后再调整尾指计指向刚释放的分片,若分片所在页面簇中无空闲分片,则将所在页面簇的头指针和尾指针都指向此分片,再将此分片加入由头指针所指向的该种长度的空闲分片链的链首。
【专利摘要】本发明公开一种数据通信设备中的内存管理方法,其特征在于,对内存空间依各种分片的字节数划分不同种类型的页面簇,以页面簇为单位从占整个内存空间一定比例的空闲内存区中分配以供申请,每个页面簇中至少包含一个页面,每个页面的长度能容纳一个字节数最大的分片,在同一种类型的页面簇中,所有页面中的分片的字节数相同。本发明对各种分片类型的内存,在运行过程中根据实际需要动态分配,使内存资源充分利用。
【IPC分类】G06F3/06, G06F12/02
【公开号】CN105373337
【申请号】CN201410409311
【发明人】何阳, 米奇
【申请人】西安慧泽知识产权运营管理有限公司
【公开日】2016年3月2日
【申请日】2014年8月20日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1