CN106354661A - 一种针对存储软件的内存分配方法及装置 - Google Patents
一种针对存储软件的内存分配方法及装置 Download PDFInfo
- Publication number
- CN106354661A CN106354661A CN201610820901.4A CN201610820901A CN106354661A CN 106354661 A CN106354661 A CN 106354661A CN 201610820901 A CN201610820901 A CN 201610820901A CN 106354661 A CN106354661 A CN 106354661A
- Authority
- CN
- China
- Prior art keywords
- memory
- functional module
- needed
- storage
- corresponding relation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Memory System (AREA)
Abstract
本发明公开了一种本发明实施例提供的针对存储软件的内存分配方法及装置,包括:在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间;获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;记录功能模块与所需的内存空间的对应关系。通过上述方法,将预定大小的系统内存映射到用户空间使得该部分系统内存不被操作系统管理,因此即使存储软件对应的系统内存发生泄漏等问题时,不会影响整个操作系统的正常运行,提高了操作系统的可靠性,降低了操作系统的故障机率。另外,存储软件的功能模块具有单独的系统内存,因此当出现问题时,能够快速定位。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种针对存储软件的内存分配方法及装置。
背景技术
在传统的软件设计中,应用软件的内存完全交由操作系统来管理,这样带来的一个问题是,当某个应用软件设计不合理,比如内存泄漏等原因,会消耗大量内存,导致其他应用软件运行缓慢,甚至导致整个系统崩溃。由于所有内存都是由操作系统分配管理,所以一旦出现这种问题,也很难跟踪和调试。存储软件是应用软件中的一种,在存储软件中,系统的稳定性尤为重要,而内存的使用又是重中之重。因此,如何管理好存储软件内存的使用,就是一个很大的课题。
发明内容
本发明的目的是提供一种针对存储软件的内存分配方法及装置,用于管理存储软件内存的使用,以提高操作系统的可靠性和降低操作系统的故障机率。另外,当出现问题时,能够快速定位。
为解决上述技术问题,本发明提供一种针对存储软件的内存分配方法,包括:
在操作系统启动时,预先保留预定大小的系统内存,并将所述系统内存映射到用户空间;
获取所述存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;
记录所述功能模块与所需的内存空间的对应关系;
其中,所述系统内存的空间大于或等于全部所述功能模块所需的内存空间。
优选地,具体通过文件记录所述功能模块与所需的内存空间的对应关系。
优选地,还包括:当所述功能模块所需的内存空间发生变化时,更新所述对应关系。
优选地,在更新所述对应关系之后还包括:输出重新启动所述操作系统的提示信息。
为解决上述技术问题,本发明提供一种针对存储软件的内存分配装置,包括:
映射单元,用于在操作系统启动时,预先保留预定大小的系统内存,并将所述系统内存映射到用户空间;
获取单元,用于获取所述存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;
记录单元,用于记录所述功能模块与所需的内存空间的对应关系;
其中,所述系统内存的空间大于或等于全部所述功能模块所需的内存空间。
优选地,所述记录单元具体通过文件记录所述功能模块与所需的内存空间的对应关系。
优选地,记录单元,还用于当所述功能模块所需的内存空间发生变化时,更新所述对应关系。
优选地,还包括:提示单元,用于在更新所述对应关系之后输出重新启动所述操作系统的提示信息。
本发明所提供的本发明实施例提供的针对存储软件的内存分配方法及装置,包括:在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间;获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;记录功能模块与所需的内存空间的对应关系。通过上述方法,将预定大小的系统内存映射到用户空间使得该部分系统内存不被操作系统管理,因此即使存储软件对应的系统内存发生泄漏等问题时,不会影响整个操作系统的正常运行,提高了操作系统的可靠性,降低了操作系统的故障机率。另外,存储软件的功能模块具有单独的系统内存,因此当出现问题时,能够快速定位。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种针对存储软件的内存分配方法的流程图;
图2为本发明实施例提供的一种针对存储软件的内存分配装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种针对存储软件的内存分配方法及装置。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明实施例提供的一种针对存储软件的内存分配方法的流程图。如图1所示,针对存储软件的内存分配方法包括:
S10:在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间。
S11:获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间。
S12:记录功能模块与所需的内存空间的对应关系。
其中,系统内存的空间大于或等于全部功能模块所需的内存空间。
在具体实施中,在接收到操作系统启动的指令时,预先保留预定大小的系统内存,保留下来的系统内存专门用来分配给存储软件中的各个功能模块。本实施例中,将系统内存映射到用户空间后,该系统内存就不会被操作系统所管理。可以理解的是,通过Linux现有的技术就可以把预定大小的系统内存映射到用户空间,本实施例不再赘述。由上可知,我们在用户空间实现一套管理逻辑来操作内存。这样做的好处是,即使用户层应用使用内存有问题导致应用崩溃,也不会导致整个系统崩溃,从而有利于调试人员的调试工作;从编程的角度看,用户层的编程比内核层编程容易的多。
获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间。在使用中,就可以按照功能模块的数量来划分,并且使得每个功能模块所需的内存空间都可以满足。记录功能模块与所需的内存空间的对应关系,当存储应用启动的时候,会解析需要哪个功能模块,并且取得相应的功能模块所需的内存空间,应用根据这些参数为每个功能模块分配好空间,从而实现存储软件的正常工作。
本发明实施例提供的针对存储软件的内存分配方法,包括:在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间;获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;记录功能模块与所需的内存空间的对应关系。通过上述方法,将预定大小的系统内存映射到用户空间使得该部分系统内存不被操作系统管理,因此即使存储软件对应的系统内存发生泄漏等问题时,不会影响整个操作系统的正常运行,提高了操作系统的可靠性,降低了操作系统的故障机率。另外,存储软件的功能模块具有单独的系统内存,因此当出现问题时,能够快速定位。
作为优选地实时方式,具体通过文件记录功能模块与所需的内存空间的对应关系。
在具体实施中,将功能模块与所需的内存空间的对应关系记录在一个专属的文件中,可以方便调试人员查看,并方便后续的修改。
作为优选地实时方式,还包括:当功能模块所需的内存空间发生变化时,更新对应关系。
由于操作系统是动态变化的,每次启动时都需要进行上述分配过程,而每次分配过程中,对应的功能模块的数量以及每个功能模块所需的内存空间大小都是不同,因此,当功能模块所需的内存空间大小变化时,需要更新相应的对应关系,即更新文件。
作为优选地实时方式,在更新对应关系之后还包括:输出重新启动操作系统的提示信息。
为了保证能够获取正确的对应关系,当更新对应关系之后,需要重新启动,因此,为了更好的提示用户,本实施例中,输出提示信息。
图2为本发明实施例提供的一种针对存储软件的内存分配装置的结构图。如图2,针对存储软件的内存分配装置包括:
映射单元10,用于在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间;
获取单元11,用于获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;
记录单元12,用于记录功能模块与所需的内存空间的对应关系;
其中,系统内存的空间大于或等于全部功能模块所需的内存空间。
在具体实施中,在接收到操作系统启动的指令时,预先保留预定大小的系统内存,保留下来的系统内存专门用来分配给存储软件中的各个功能模块。本实施例中,将系统内存映射到用户空间后,该系统内存就不会被操作系统所管理。可以理解的是,通过Linux现有的技术就可以把预定大小的系统内存映射到用户空间,本实施例不再赘述。由上可知,我们在用户空间实现一套管理逻辑来操作内存。这样做的好处是,即使用户层应用使用内存有问题导致应用崩溃,也不会导致整个系统崩溃,从而有利于调试人员的调试工作;从编程的角度看,用户层的编程比内核层编程容易的多。
获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间。在使用中,就可以按照功能模块的数量来划分,并且使得每个功能模块所需的内存空间都可以满足。记录功能模块与所需的内存空间的对应关系,当存储应用启动的时候,会解析需要哪个功能模块,并且取得相应的功能模块所需的内存空间,应用根据这些参数为每个功能模块分配好空间,从而实现存储软件的正常工作。
本发明实施例提供的针对存储软件的内存分配装置,包括:在操作系统启动时,预先保留预定大小的系统内存,并将系统内存映射到用户空间;获取存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;记录功能模块与所需的内存空间的对应关系。通过上述装置,将预定大小的系统内存映射到用户空间使得该部分系统内存不被操作系统管理,因此即使存储软件对应的系统内存发生泄漏等问题时,不会影响整个操作系统的正常运行,提高了操作系统的可靠性,降低了操作系统的故障机率。另外,存储软件的功能模块具有单独的系统内存,因此当出现问题时,能够快速定位。
作为优选地实施方式,记录单元12具体通过文件记录功能模块与所需的内存空间的对应关系。
作为优选地实施方式,记录单元12还用于当功能模块所需的内存空间发生变化时,更新对应关系。
作为优选地实施方式,还包括提示单元,用于在更新对应关系之后输出重新启动操作系统的提示信息。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
以上对本发明所提供的针对存储软件的内存分配方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (8)
1.一种针对存储软件的内存分配方法,其特征在于,包括:
在操作系统启动时,预先保留预定大小的系统内存,并将所述系统内存映射到用户空间;
获取所述存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;
记录所述功能模块与所需的内存空间的对应关系;
其中,所述系统内存的空间大于或等于全部所述功能模块所需的内存空间。
2.根据权利要求1所述的方法,其特征在于,具体通过文件记录所述功能模块与所需的内存空间的对应关系。
3.根据权利要求1所述的方法,其特征在于,还包括:当所述功能模块所需的内存空间发生变化时,更新所述对应关系。
4.根据权利要求3所述的方法,其特征在于,在更新所述对应关系之后还包括:输出重新启动所述操作系统的提示信息。
5.一种针对存储软件的内存分配装置,其特征在于,包括:
映射单元,用于在操作系统启动时,预先保留预定大小的系统内存,并将所述系统内存映射到用户空间;
获取单元,用于获取所述存储软件中包含的功能模块的数量,以及每个功能模块所需的内存空间;
记录单元,用于记录所述功能模块与所需的内存空间的对应关系;
其中,所述系统内存的空间大于或等于全部所述功能模块所需的内存空间。
6.根据权利要求5所述的装置,其特征在于,所述记录单元具体通过文件记录所述功能模块与所需的内存空间的对应关系。
7.根据权利要求5所述的装置,其特征在于,记录单元,还用于当所述功能模块所需的内存空间发生变化时,更新所述对应关系。
8.根据权利要求7所述的装置,其特征在于,还包括:提示单元,用于在更新所述对应关系之后输出重新启动所述操作系统的提示信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610820901.4A CN106354661A (zh) | 2016-09-13 | 2016-09-13 | 一种针对存储软件的内存分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610820901.4A CN106354661A (zh) | 2016-09-13 | 2016-09-13 | 一种针对存储软件的内存分配方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106354661A true CN106354661A (zh) | 2017-01-25 |
Family
ID=57859870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610820901.4A Pending CN106354661A (zh) | 2016-09-13 | 2016-09-13 | 一种针对存储软件的内存分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106354661A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247673A (zh) * | 2017-06-07 | 2017-10-13 | 郑州云海信息技术有限公司 | 一种内存分配方法和装置 |
CN108932164A (zh) * | 2018-07-16 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种指定功能程序运行方法、装置及设备 |
CN110888753A (zh) * | 2019-11-08 | 2020-03-17 | 烽火通信科技股份有限公司 | 软件故障定位方法及系统 |
CN112732435A (zh) * | 2019-10-29 | 2021-04-30 | 浙江宇视科技有限公司 | 内存动态分配方法、装置、电子设备及可读存储介质 |
CN113778688A (zh) * | 2021-09-17 | 2021-12-10 | Oppo广东移动通信有限公司 | 内存管理系统、内存管理方法、内存管理装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149699A (zh) * | 2006-09-21 | 2008-03-26 | 中兴通讯股份有限公司 | 一种可靠获取异常和复位信息的方法 |
CN104391496A (zh) * | 2014-12-09 | 2015-03-04 | 北京四方继保自动化股份有限公司 | 一种工业控制系统数据内存的管理方法 |
CN105469173A (zh) * | 2014-08-19 | 2016-04-06 | 西安慧泽知识产权运营管理有限公司 | 一种静态内存进行优化管理的方法 |
-
2016
- 2016-09-13 CN CN201610820901.4A patent/CN106354661A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149699A (zh) * | 2006-09-21 | 2008-03-26 | 中兴通讯股份有限公司 | 一种可靠获取异常和复位信息的方法 |
CN105469173A (zh) * | 2014-08-19 | 2016-04-06 | 西安慧泽知识产权运营管理有限公司 | 一种静态内存进行优化管理的方法 |
CN104391496A (zh) * | 2014-12-09 | 2015-03-04 | 北京四方继保自动化股份有限公司 | 一种工业控制系统数据内存的管理方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107247673A (zh) * | 2017-06-07 | 2017-10-13 | 郑州云海信息技术有限公司 | 一种内存分配方法和装置 |
CN107247673B (zh) * | 2017-06-07 | 2020-05-26 | 苏州浪潮智能科技有限公司 | 一种内存分配方法和装置 |
CN108932164A (zh) * | 2018-07-16 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种指定功能程序运行方法、装置及设备 |
CN112732435A (zh) * | 2019-10-29 | 2021-04-30 | 浙江宇视科技有限公司 | 内存动态分配方法、装置、电子设备及可读存储介质 |
CN112732435B (zh) * | 2019-10-29 | 2024-04-05 | 浙江宇视科技有限公司 | 内存动态分配方法、装置、电子设备及可读存储介质 |
CN110888753A (zh) * | 2019-11-08 | 2020-03-17 | 烽火通信科技股份有限公司 | 软件故障定位方法及系统 |
CN113778688A (zh) * | 2021-09-17 | 2021-12-10 | Oppo广东移动通信有限公司 | 内存管理系统、内存管理方法、内存管理装置 |
CN113778688B (zh) * | 2021-09-17 | 2024-06-14 | Oppo广东移动通信有限公司 | 内存管理系统、内存管理方法、内存管理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354661A (zh) | 一种针对存储软件的内存分配方法及装置 | |
CN106168885B (zh) | 一种基于lvm的逻辑卷动态扩容的方法及系统 | |
US8818949B2 (en) | Systems and methods for migrating database data | |
CN107302475A (zh) | 一种面向分布式存储集群的测试方法及装置 | |
CN108399072A (zh) | 应用页面更新方法和装置 | |
CN107346285A (zh) | 一种内存泄露检测方法及装置 | |
CN104657164B (zh) | 软件升级处理方法和装置 | |
CN107870980B (zh) | 电子装置、账单数据处理方法及计算机存储介质 | |
CN109002330A (zh) | 一种识别uefi os启动项的方法、装置及设备 | |
CN105988875A (zh) | 一种运行进程的方法及装置 | |
CN110377529A (zh) | 一种全闪存储系统数据管理的方法、装置以及设备 | |
CN109388624A (zh) | 分布式文件删除方法、装置、系统及计算机可读存储介质 | |
CN108762989A (zh) | 固态硬盘的数据存储方法、装置、设备及可读存储介质 | |
CN108270626A (zh) | 一种升级服务器固件的方法、装置、设备及可读存储介质 | |
CN107577558A (zh) | 一种云存储的快照方法及装置 | |
CN108628537A (zh) | 监控数据输出方法及装置 | |
CN106201584B (zh) | 版本升级方法及终端设备 | |
CN107102889A (zh) | 一种虚拟机资源调整方法及装置 | |
US20110191758A1 (en) | Optimized Memory Allocator By Analyzing Runtime Statistics | |
CN105677422B (zh) | 同时更新监控程序和应用程序及后续更新应用程序的方法 | |
CN106293825A (zh) | 一种基于硬件信号量的多核启动同步方法 | |
CN106776125A (zh) | 一种实现pc客户端软件实时修复的方法及装置 | |
CN108845815A (zh) | 一种刷新smbios信息的方法 | |
CN111597066A (zh) | Ssd修复方法、装置、计算机设备及存储介质 | |
CN107957878B (zh) | 一种基于存储资源再分配的嵌入式设备软件在线升级方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170125 |