一种针对存储软件的内存分配方法及装置与流程

文档序号:12747956阅读:247来源:国知局
一种针对存储软件的内存分配方法及装置与流程

本发明涉及计算机技术领域,特别是涉及一种针对存储软件的内存分配方法及装置。



背景技术:

在传统的软件设计中,应用软件的内存完全交由操作系统来管理,这样带来的一个问题是,当某个应用软件设计不合理,比如内存泄漏等原因,会消耗大量内存,导致其他应用软件运行缓慢,甚至导致整个系统崩溃。由于所有内存都是由操作系统分配管理,所以一旦出现这种问题,也很难跟踪和调试。存储软件是应用软件中的一种,在存储软件中,系统的稳定性尤为重要,而内存的使用又是重中之重。因此,如何管理好存储软件内存的使用,就是一个很大的课题。



技术实现要素:

本发明的目的是提供一种针对存储软件的内存分配方法及装置,用于管理存储软件内存的使用,以提高操作系统的可靠性和降低操作系统的故障机率。另外,当出现问题时,能够快速定位。

为解决上述技术问题,本发明提供一种针对存储软件的内存分配方法,包括:

在操作系统启动时,预先保留预定大小的系统内存,并将所述系统内存映射到用户空间;

获取所述存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;

记录所述功能模块与所需的内存空间的对应关系;

其中,所述系统内存的空间大于或等于全部所述功能模块所需的内存空间。

优选地,具体通过文件记录所述功能模块与所需的内存空间的对应关系。

优选地,还包括:当所述功能模块所需的内存空间发生变化时,更新所述对应关系。

优选地,在更新所述对应关系之后还包括:输出重新启动所述操作系统的提示信息。

为解决上述技术问题,本发明提供一种针对存储软件的内存分配装置,包括:

映射单元,用于在操作系统启动时,预先保留预定大小的系统内存,并将所述系统内存映射到用户空间;

获取单元,用于获取所述存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;

记录单元,用于记录所述功能模块与所需的内存空间的对应关系;

其中,所述系统内存的空间大于或等于全部所述功能模块所需的内存空间。

优选地,所述记录单元具体通过文件记录所述功能模块与所需的内存空间的对应关系。

优选地,记录单元,还用于当所述功能模块所需的内存空间发生变化时,更新所述对应关系。

优选地,还包括:提示单元,用于在更新所述对应关系之后输出重新启动所述操作系统的提示信息。

本发明所提供的本发明实施例提供的针对存储软件的内存分配方法及装置,包括:在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间;获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;记录功能模块与所需的内存空间的对应关系。通过上述方法,将预定大小的系统内存映射到用户空间使得该部分系统内存不被操作系统管理,因此即使存储软件对应的系统内存发生泄漏等问题时,不会影响整个操作系统的正常运行,提高了操作系统的可靠性,降低了操作系统的故障机率。另外,存储软件的功能模块具有单独的系统内存,因此当出现问题时,能够快速定位。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种针对存储软件的内存分配方法的流程图;

图2为本发明实施例提供的一种针对存储软件的内存分配装置的结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

本发明的核心是提供一种针对存储软件的内存分配方法及装置。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

图1为本发明实施例提供的一种针对存储软件的内存分配方法的流程图。如图1所示,针对存储软件的内存分配方法包括:

S10:在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间。

S11:获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间。

S12:记录功能模块与所需的内存空间的对应关系。

其中,系统内存的空间大于或等于全部功能模块所需的内存空间。

在具体实施中,在接收到操作系统启动的指令时,预先保留预定大小的系统内存,保留下来的系统内存专门用来分配给存储软件中的各个功能模块。本实施例中,将系统内存映射到用户空间后,该系统内存就不会被操作系统所管理。可以理解的是,通过Linux现有的技术就可以把预定大小的系统内存映射到用户空间,本实施例不再赘述。由上可知,我们在用户空间实现一套管理逻辑来操作内存。这样做的好处是,即使用户层应用使用内存有问题导致应用崩溃,也不会导致整个系统崩溃,从而有利于调试人员的调试工作;从编程的角度看,用户层的编程比内核层编程容易的多。

获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间。在使用中,就可以按照功能模块的数量来划分,并且使得每个功能模块所需的内存空间都可以满足。记录功能模块与所需的内存空间的对应关系,当存储应用启动的时候,会解析需要哪个功能模块,并且取得相应的功能模块所需的内存空间,应用根据这些参数为每个功能模块分配好空间,从而实现存储软件的正常工作。

本发明实施例提供的针对存储软件的内存分配方法,包括:在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间;获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;记录功能模块与所需的内存空间的对应关系。通过上述方法,将预定大小的系统内存映射到用户空间使得该部分系统内存不被操作系统管理,因此即使存储软件对应的系统内存发生泄漏等问题时,不会影响整个操作系统的正常运行,提高了操作系统的可靠性,降低了操作系统的故障机率。另外,存储软件的功能模块具有单独的系统内存,因此当出现问题时,能够快速定位。

作为优选地实时方式,具体通过文件记录功能模块与所需的内存空间的对应关系。

在具体实施中,将功能模块与所需的内存空间的对应关系记录在一个专属的文件中,可以方便调试人员查看,并方便后续的修改。

作为优选地实时方式,还包括:当功能模块所需的内存空间发生变化时,更新对应关系。

由于操作系统是动态变化的,每次启动时都需要进行上述分配过程,而每次分配过程中,对应的功能模块的数量以及每个功能模块所需的内存空间大小都是不同,因此,当功能模块所需的内存空间大小变化时,需要更新相应的对应关系,即更新文件。

作为优选地实时方式,在更新对应关系之后还包括:输出重新启动操作系统的提示信息。

为了保证能够获取正确的对应关系,当更新对应关系之后,需要重新启动,因此,为了更好的提示用户,本实施例中,输出提示信息。

图2为本发明实施例提供的一种针对存储软件的内存分配装置的结构图。如图2,针对存储软件的内存分配装置包括:

映射单元10,用于在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间;

获取单元11,用于获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;

记录单元12,用于记录功能模块与所需的内存空间的对应关系;

其中,系统内存的空间大于或等于全部功能模块所需的内存空间。

在具体实施中,在接收到操作系统启动的指令时,预先保留预定大小的系统内存,保留下来的系统内存专门用来分配给存储软件中的各个功能模块。本实施例中,将系统内存映射到用户空间后,该系统内存就不会被操作系统所管理。可以理解的是,通过Linux现有的技术就可以把预定大小的系统内存映射到用户空间,本实施例不再赘述。由上可知,我们在用户空间实现一套管理逻辑来操作内存。这样做的好处是,即使用户层应用使用内存有问题导致应用崩溃,也不会导致整个系统崩溃,从而有利于调试人员的调试工作;从编程的角度看,用户层的编程比内核层编程容易的多。

获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间。在使用中,就可以按照功能模块的数量来划分,并且使得每个功能模块所需的内存空间都可以满足。记录功能模块与所需的内存空间的对应关系,当存储应用启动的时候,会解析需要哪个功能模块,并且取得相应的功能模块所需的内存空间,应用根据这些参数为每个功能模块分配好空间,从而实现存储软件的正常工作。

本发明实施例提供的针对存储软件的内存分配装置,包括:在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间;获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;记录功能模块与所需的内存空间的对应关系。通过上述装置,将预定大小的系统内存映射到用户空间使得该部分系统内存不被操作系统管理,因此即使存储软件对应的系统内存发生泄漏等问题时,不会影响整个操作系统的正常运行,提高了操作系统的可靠性,降低了操作系统的故障机率。另外,存储软件的功能模块具有单独的系统内存,因此当出现问题时,能够快速定位。

作为优选地实施方式,记录单元12具体通过文件记录功能模块与所需的内存空间的对应关系。

作为优选地实施方式,记录单元12还用于当功能模块所需的内存空间发生变化时,更新对应关系。

作为优选地实施方式,还包括提示单元,用于在更新对应关系之后输出重新启动操作系统的提示信息。

由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

以上对本发明所提供的针对存储软件的内存分配方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1