一种内存管理方法和内存管理系统技术方案

技术编号:2836363 阅读:201 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种内存管理方法,该方法包括预先分配固定大小 的内存空间,该方法还包括:将待存储内容按照其内在逻辑关系划分成至少 一个段;将每一段划分成至少一个页面,并采用双向链表链接每个页面,其 中单页的存储空间是连续的,并且多个链接的页面组合为一个连续的虚拟缓 冲区。本发明专利技术还公开了一种内存管理系统。应用本发明专利技术以后,可以零碎片地 执行动态内存分配和回收,内存能够保持稳定不变,并且方法实现简单,开 发维护代价低。

【技术实现步骤摘要】

本专利技术涉及计算机应用(Application)
,更具体地说,本专利技术涉及一种内存管理方法和内存管理系统
技术介绍
当前的常见的主流操作系统内存管理方法主要包括页式、段式、段页式三种。在页式管理中,将各进程的虚拟空间划分成若干个长度相等的页(page),把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构来解决离散地址变换问题。图1为页式管理的示范性示意图。如图1所示,在页式管理中,主存分成多个固定大小的块,作业按照主存块大小分页,并且连续的页存放在离散的块中。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理,并且可以为内存提供两种方式的保护。一种是地址越界保护,另一种是通过页表控制对内存信息的操作方式以提供保护。地址越界保护可由地址变换机构中的控制寄存器的值和所要访问的虑地址相比较完成,存取控制保护的实现则是在页表中增加相应的保护位即可。段式管理的基本思想是把程序按内容或过程(函数)关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应一个二维线形虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址影射机构把段式虚拟地址转换为实际内存物理地址。图2为段式管理的示范性示意图。段式管理为用户提供了一个二维的虚地址空间,反映了程序的逻辑结构,有利于段的动态增长以及共享和内存保护等,这大大地方便了用户。而分页系统则有效地克服了碎片,提高了存储器的利用率。从存储管理的目的来讲,主要是方便用户的程序设计和提高内存的利用率。分页是信息的物理单位,与源程序的逻辑结构无关,用户不可见。页长由系统确定,页面只能以页大小的整倍数地址开始。在分页方式中,源程序(页号,页内位移)经连结装配后变成了一维结构。分段是信息的逻辑单位,由源程序的逻辑结构所决定,用户可见,段长可根据用户需要来规定,段起始地址可以从任何主存地址开始。在分段方式中,源程序(段号,段内位移)经连结装配后仍保持二维结构。段页式管理方式将段式管理和页式管理结合起来。不过,由于段式管理与页式管理都需要较大的系统开销,可以预计到段页式管理的开销会更大。因此段页式管理方式一般只用在大型机系统中。近年来由于硬件发展很快,段页式管理的开销在工作站等机型上已变得可以容忍了。为了实现段页式管理,系统必须为每个作业或进程建立一张段表以管理内存分配与释放、缺段处理、存储保护相地址变换等。另外,由于一个段又被划分成了若干页,每个段又必须建立一张页表以把段中的虚页变换成内存中的实际页面。显然,与页式管理时相同,页表中也要有相应的实现缺页中断处理和页面保护等功能的表项。另外,由于在段页式管理中,页表不再是属于进程而是属于某个段,因此,段表中应有专项指出该段所对应页表的页表始址和页表长度。总之,因为段页式管理是段式管理的页式管理方案结合而成的,所以具有它们二音的优点。但反过来说,由于管理软件的增加,复杂性和开销也就随之增加了。另外,需要的硬件以及占用的内存也有所增加。更重要的是,如果不采用联想寄存器的方式提高CPU的访内速度,将会使得执行速度大大下降。在段页式管理方式中,用页式方法来分配和管理内存空间,即把内存划分成若干大小相等的页面;用段式方法对用户程序按照其内在的逻辑关系划分成若干段;再按照划分内存页面的大小,把每一段划分成若干大小相等的页面;用户程序的逻辑地址由三部分组成,形式如下段号、页号、页内地址;内存是以页为基本单位分配给每个用户程序的,在逻辑上相邻的页面内存不一定相邻。现有技术的段页式内存管理中存在动态的内存分配与释放。根据操作系统原理,伴随分配次数的增加以及分配大小的不确定性,动态的内存分配与释放中总会有空闲的内存块由于大小不合适而被搁置,因此这种现有的内存管理方式难以消除内存碎片,并在内存管理中始终存在内存碎片。
技术实现思路
有鉴于此,本专利技术实施例的主要目的是提出一种内存管理方法,以消除内存管理中的内存碎片。本专利技术实施例的另一目的是提出一种内存管理系统,以消除内存管理中的内存碎片。本专利技术实施例的再一目的是提出一种内存使用方法,以无碎片地使用内存。为达到上述目的,本专利技术实施例的技术方案是这样实现的一种内存管理方法,该方法包括预先分配固定大小的内存空间,该方法还包括将待存储内容按照其内在逻辑关系划分成至少一个段;将每一段划分成至少一个页面,并采用双向链表链接每个页面,其中单页的存储空间是连续的,并且多个链接的页面组合为一个连续的虚拟缓冲区。所述将待存储内容按照其内在逻辑关系划分成至少一个段为将待存储内容按照其内在逻辑关系划分成4K的整数倍个段。所述将每一段划分成至少一个页面为将每一段划分成4K的整数倍个页面。4K的整数倍包括4K、16K、64K或256K。每一个页面的存储空间取值范围在1字节到1字节的32倍数字节之间。优选地,所述1字节的32倍数字节为4G字节。所述将每一段划分成至少一个页面为将每一段划分成至少一个大小相等的页面。一种内存管理系统,该系统包括内存空间分配单元、段管理单元和页面管理单元,其中内存空间分配单元,用于在内存中分配固定大小的内存空间;段管理单元,用于将待存储内容按照其内在逻辑关系划分成至少一个段;页面管理单元,用于将每一段划分成至少一个页面,并采用双向链表链接每个页面,其中单页的存储空间是连续的,并且多个链接的页面组合为一个连续的虚拟缓冲区。所述段管理单元,用于将待存储内容按照其内在逻辑关系划分成4K的整数倍数目个段。所述页面管理单元,用于将每一段划分成4K的整数倍个页面。所述页面管理单元,用于将每一段划分成至少一个大小相等的页面,并且每一个页面的存储空间取值范围在1字节到1字节的32倍数字节之间。一种内存使用方法,该方法包括预先分配固定大小的内存空间,将待存储内容按照其内在逻辑关系划分成至少一个段;将每一段划分成至少一个页面,并采用双向链表链接每个不同的页面,其中单页的存储空间是连续的,并且多个链接的页面组合为一个连续的虚拟缓冲区;该方法还包括判断第一个空闲段内是否有空闲页面,如果没有,则判断下一个空闲段内是否有空闲页面,直至找到空闲页面并弹出该空闲页面的编号,以得到该空闲页面的物理内存首地址,如果第一个空闲段内有空闲页面,则弹出该空闲页面的编号,以得到该空闲页面的物理内存首地址。该方法进一步包括在得到第一个空闲段的空闲页面的物理内存首地址后,进一步根据指定的页面个数,从该第一个空闲段的空闲页面的物理内存首地址开始,使用所述指定个数的页面。从上述技术方案中可以看出,在本专利技术实施例中,首先预先分配固定大小的内存空间,然后将待存储内容按照其内在逻辑关系划分成至少一个段;并将每一段划分成至少一个页面,采用双向链表链接每个页面,其中单页的存储空间是连续的,并且多个链接的页面组合为一个连续的虚拟缓冲区。应用本专利技术以后,采用堆栈式管理页面,采用双向链表连接每个不同的页,而且由于内存大小已经预先分配,因此可以零碎片地执行动态内存分配和回收,从而内存能够保持稳定不变。另外,本专利技术的方法实现起来简单,开发维护代价也很低。附图说明图1为现有技术中页式管理的示范性示意图;图2为现有技术中段式管理的示范性示意图;图3为根本文档来自技高网
...

【技术保护点】
一种内存管理方法,其特征在于,该方法包括预先分配固定大小的内存空间,该方法还包括:将待存储内容按照其内在逻辑关系划分成至少一个段;将每一段划分成至少一个页面,并采用双向链表链接每个页面,其中单页的存储空间是连续的,并且多个链接的页面组合为一个连续的虚拟缓冲区。

【技术特征摘要】
1.一种内存管理方法,其特征在于,该方法包括预先分配固定大小的内存空间,该方法还包括将待存储内容按照其内在逻辑关系划分成至少一个段;将每一段划分成至少一个页面,并采用双向链表链接每个页面,其中单页的存储空间是连续的,并且多个链接的页面组合为一个连续的虚拟缓冲区。2.根据权利要求1所述的内存管理方法,其特征在于,所述将待存储内容按照其内在逻辑关系划分成至少一个段为将待存储内容按照其内在逻辑关系划分成4K的整数倍个段。3.根据权利要求1或2所述的内存管理方法,其特征在于,所述将每一段划分成至少一个页面为将每一段划分成4K的整数倍个页面。4.根据权利要求3所述的内存管理方法,其特征在于,所述4K的整数倍包括4K、16K、64K或256K。5.根据权利要求1或2所述的内存管理方法,其特征在于,每一个页面的存储空间取值范围在1字节到1字节的32倍数字节之间。6.根据权利要求5所述的内存管理方法,其特征在于,所述1字节的32倍数字节为4G字节。7.根据权利要求1或2所述的内存管理方法,其特征在于,所述将每一段划分成至少一个页面为将每一段划分成至少一个大小相等的页面。8.一种内存管理系统,其特征在于,该系统包括内存空间分配单元、段管理单元和页面管理单元,其中内存空间分配单元,用于在内存中分配固定大小的内存空间;段管理单元,用于将待存储内容按照其内在逻辑关系划分成至少一个段;页面管理单元,用于将每一段划分成至少一个页面,并采用双向...

【专利技术属性】
技术研发人员:华有为
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94

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

1