一种静态内存进行优化管理的方法技术

技术编号:13131160 阅读:43 留言:0更新日期:2016-04-06 16:36
本发明专利技术公开一种静态内存进行优化管理的方法,其特征在于,将内存的某一连续存储区域预先分配给一组程序和/或数据专门使用,该存储区域包含若干大小相等的内存分片,并在内存中保存涉及该存储区域配置和状态的相关信息,当该组内有程序和/或数据欲使用内存时,根据该存储区域的相关信息获取相应数量处于空闲状态的内存分片的地址并将这些内存分片置于使用状态,根据步骤获取的内存分片地址,将对应的存储空间分配给欲使用内存的程序和/或数据。本发明专利技术有利于提高内存管理速度和效率,不会出现内存碎片的问题,避免了内存碎片回收带来的额外开支,简化了内存分配算法,保证了系统的稳定和效率。

【技术实现步骤摘要】

本专利技术涉及一种静态内存进行优化管理的方法
技术介绍
计算机系统由硬件和软件两大部分组成。硬件部分称为裸机,它包括主机和外部设备,而主机由中央处理器(CPU)和内存组成,其中CPU负责运算和对其它部件进行控制;内存用来存储程序和数据。软件部分包括系统软件和应用软件,其中作为系统软件的操作系统对计算机系统的所有资源进行控制和管理,使它们得到合理和充分的利用。内存管理在操作系统中占有关键的地位,其管理功能主要包括内存分配和回收、逻辑地址与物理地址的转换、存储保护以及内存扩充等,其中内存的跟踪、回收、调试和碎片整理等处理一直是内存管理的重点和难点,也是影响整个系统稳定和效率的关键,这就要求使用的操作系统(或虚拟操作系统)能够提供高效、稳定的内存管理方法。在一种已有的内存管理方案中,将内存块分为两类并利用两个链表分别进行管理,其中一个链表为空闲内存链表,用于链接空闲的内存块;另一个为使用链表,用于链接正在使用的内存块。各内存块的大小是不规则的(即大小可能不等),当有内存使用申请时,操作系统根据申请的内存使用量,从空闲链表中选择合适的内存块放入使用链表以分配给申请方使用,当使用结束后,内存块被释放并被放入空闲链表,并判断该内存块是否可与空闲链表中的其它内存块整合成一块更大的内存块,如果可以,则进行碎片整理以整合形成更大的内存块。这种方法的优点是可以统一方式管理内存,缺点是在内存使用过程中容易出现大量的碎片,导致内存浪费,此外,碎片整理算法复杂和效率低下,从而影响系统的整体性能,最后,该方法仍然无法解决内存耗尽的问题(即,当一个任务或线程出现内存泄露时,它可能耗尽系统所有的内存资源,进而影响整个系统,甚至导致崩溃〉。
技术实现思路
为解决上述现有的缺点,本专利技术的主要目的在于提供一种实用的静态内存进行优化管理的方法,有利于提高内存管理速度和效率,不会出现内存碎片的问题,避免了内存碎片回收带来的额外开支,简化了内存分配算法,保证了系统的稳定和效率。为达成以上所述的目的,本专利技术的一种静态内存进行优化管理的方法采取如下技术方案:一种静态内存进行优化管理的方法,其特征在于,将内存的某一连续存储区域预先分配给一组程序和/或数据专门使用,该存储区域包含若干大小相等的内存分片,并在内存中保存涉及该存储区域配置和状态的相关信息,当该组内有程序和/或数据欲使用内存时,执行以下步骤:(a)根据该存储区域的相关信息获取相应数量处于空闲状态的内存分片的地址并将这些内存分片置于使用状态;(b)根据步骤(1a)获取的内存分片地址,将对应的存储空间分配给欲使用内存的程序和/或数据,当该组内程序和/或数据结束内存使用时,执行以下步骤:(2a)释放结束使用的内存分片的存储空间:(2b)根据该存储区域的相关信息确定结束使用的内存分片的地址并将这些内存分片置于空闲状态。所述的一种静态内存进行优化管理的方法,其特征在于,每块所述内存分片两端设置标识其边界的标志字节,通过在内存中为该组程序和/或数据增设另一连续存储区域并保存涉及该增设存储区域配置和状态的相关信息来增加该组程序和/或数据所使用的内存,所述涉及该存储区域配置和状态的相关信息包括内存分片的大小、处于空闲状态和使用状态的内存分片数量和地址、该存储区域开始和结束地址以及该存储区域的大小,以链表方式记录处于空闲状态和使用状态的内存分片的地址,并通过链表操作获取内存分片地址和在空闲状态与使用状态之间切换内存分片的状态,所述涉及该存储区域配置和状态的相关信息进一步包括增设存储区域的地址。采用如上技术方案的本专利技术,具有如下有益效果:本专利技术由于为一组程序和/或数据分配专用的连续存储区域,因此在出现内存泄露时该组程序和/或数据仅将该区域中的内存耗尽,不会波及系统其它部分的运行。其次,由于存储区域是连续的,因此有利于提高内存管理速度和效率。最后,该连续存储区域包含若干大小相等的内存分片,程序和/数据以内存分片为单位使用该区域,因此不会出现内存碎片的问题,避免了内存碎片回收带来的额外开支,简化了内存分配算法,保证了系统的稳定和效率。附图说明图1为本专利技术的一个实施例的示意图。具体实施方式为了进一步说明本专利技术,下面结合附图进一步进行说明:一般情况下,一组程序和/或数据对内存的使用时间和大小是动态和随机的,在上述现有技术的内存管理方案中,当需要使用时,系统根据使用内存的大小为之分配相应的内存,而当使用结束后则收回使用权并释放该内存空间。如上所述,这种动态内存管理容易引发内存耗尽、系统崩溃和管理复杂而低效等缺点。为此,本专利技术的基本思想是,预先在内存中为一组程序和/或数据分配一块连续存储区域(以下又称为静态内存池)供其专用,静态内存池包含若干大小相等的内存分片,并且以内存分片为单位,为需要使用静态内存池的程序和/或数据分配相应数量的内存,而在结束使用时又释放这些内存分片以供后续使用。在内存分片的分配和释放过程中,将要利用静态内存池的配置和状态信息,例如内存分片的大小和总数以及处于空闲状态和使用状态的内存分片的地址等。对于本领域内技术人员来说,利用这些信息分配和释放内存分片的实现方式是公知的,并且与本专利技术方法的基本思想无关,因此具体的思想方式不应构成对本专利技术精神和范围的限定。此外,在本专利技术中,对这些信息的保存位置没有特别的限定,只要保证这些信息不丢失和损坏即可,因此它们既可以保存在静态内存池区域内,也可以保存在静态内存池以外的区域。值得指出的是,这里所称的一组程序和/或数据的含义应该理解为若干程序的集合、若干程序与数据的集合以及若干数据的集合,虽然在相当多的情况下,一组程序和/数据可能隶属于整个系统内完成一定逻辑功能的模块实体,并且集合内程序之间、数据之间以及程序与数据之间存在执行逻辑上的关系,但是对于本专利技术的基本思想本身或者其实现而言,这种执行逻辑上的关系并非必需的,因此不应构成对本专利技术精神和范围的限定。为了防止向一块内存分片写入程序或数据时越过其边界,可以在每块所述内存分片两端设置标识其边界的标志字节,当读取到标志字节时系统即判定写入操作已经到达内存分片的边界并停止对该内存分片的写入。此外,虽然静态内存池的内存分片大小在静态内存池创建时确定后即不能修改,但是可以通过在内存中增设另一连续存储区域并保存涉及该增设存储区域配置和状态的相关信息来增加该组程序和/或数据所使用的内存。以下借助附图描述本专利技术方法的较佳实施例,在该较佳实施例中,使用该静态内存池的一组程序和/或数据隶属于一个模块,釆用静态内存池控制块和内存分片描述块组来描述静态内存池的有关信息并通过改变这些相关信息实现内存分片的分配和释放等管理功能,其中控制块用来描述和记录静态内存池的当前状态,而内存分片描述块组用来描述内存分片的状态。图1示出了控制块和内存分片描述块组的数据结构及其与内存分片的对应关系。如图1所示,静态内存池控制块包含如下的信息段:(1)下一个内存池指针pNextMemPool,其为表示专供该模块使本文档来自技高网
...

【技术保护点】
一种静态内存进行优化管理的方法,其特征在于,将内存的某一连续存储区域预先分配给一组程序和/或数据专门使用,该存储区域包含若干大小相等的内存分片,并在内存中保存涉及该存储区域配置和状态的相关信息,当该组内有程序和/或数据 欲使用内存时,执行以下步骤:(a)根据该存储区域的相关信息获取相应数量处于空闲状态的内存分片的地 址并将这些内存分片置于使用状态;(b)根据步骤(1a)获取的内存分片地址,将对应的存储空间分配给欲使用内存的程序和/或数据,当该组内程序和/或数据结束内存使用时,执行以下步骤:(2a)释放结束使用的内存分片的存储空间:(2b)根据该存储区域的相关信息确定结束使用的内存分片的地址并将这些内存分片置于空闲状态。

【技术特征摘要】
1.一种静态内存进行优化管理的方法,其特征在于,将内存的某一连续存储区域预先分配给一组程序和/或数据专门使用,该存储区域包含若干大小相等的内存分片,并在内存中保存涉及该存储区域配置和状态的相关信息,当该组内有程序和/或数据欲使用内存时,执行以下步骤:
(a)根据该存储区域的相关信息获取相应数量处于空闲状态的内存分片的地址并将这些内存分片置于使用状态;
(b)根据步骤(1a)获取的内存分片地址,将对应的存储空间分配给欲使用内存的程序和/或数据,
当该组内程序和/或数据结束内存使用时,执行以下步骤:
(2a)释放结束使用的内存分片的存储空间:
(2b)根据该存储区域的相关信息确定结束使用的内存分片的地址并...

【专利技术属性】
技术研发人员:何阳米奇
申请(专利权)人:西安慧泽知识产权运营管理有限公司
类型:发明
国别省市:陕西;61

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

1