CN102541748A - 一种内存保护方法 - Google Patents

一种内存保护方法 Download PDF

Info

Publication number
CN102541748A
CN102541748A CN2011104466505A CN201110446650A CN102541748A CN 102541748 A CN102541748 A CN 102541748A CN 2011104466505 A CN2011104466505 A CN 2011104466505A CN 201110446650 A CN201110446650 A CN 201110446650A CN 102541748 A CN102541748 A CN 102541748A
Authority
CN
China
Prior art keywords
information
memory
identification information
consistent
user
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.)
Granted
Application number
CN2011104466505A
Other languages
English (en)
Other versions
CN102541748B (zh
Inventor
周印伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Broadband Multimedia Technology Co Ltd
Original Assignee
Hisense Broadband Multimedia Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hisense Broadband Multimedia Technology Co Ltd filed Critical Hisense Broadband Multimedia Technology Co Ltd
Priority to CN201110446650.5A priority Critical patent/CN102541748B/zh
Publication of CN102541748A publication Critical patent/CN102541748A/zh
Application granted granted Critical
Publication of CN102541748B publication Critical patent/CN102541748B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种内存保护方法,包括以下步骤:(1)每次分配内存时,另外开辟一段存储有标识信息的空间,并一起分配给用户;(2)当用户释放内存时,判断标识信息中是否包含内存空间释放的信息,若是,则结束;(3)若标识信息中没有包含内存空间释放的信息,则判断标识信息中的信息是否与分配内存时所存储的标识信息一致,若一致,则结束,否则,记录错误信息。本方法通过在所分配的内存另外开辟一段存储有标识信息的空间,一起分配给用户,当用户释放内存时,判断标识信息的正确性,进而可以判断出内存是否被踩,并做出记录,可以有效的监控检查内存,极大提升系统稳定性及可靠性。

Description

一种内存保护方法
技术领域
本发明涉及一种内存保护方法,属于内存管理技术领域。
背景技术
现有OS(操作系统)的内存管理机制能够让用户灵活动态的使用操纵内存,这种机制给用户带来便利的同时也带来了极大的安全隐患。伴随技术的快速发展,软件规模越来越庞大,软件的复杂度也极大提高,这样就会导致内存使用的随意性大大增加,内存被破坏的可能性也大大提高,而有的内存管理机制无法识别内存地址的合法性,在用户动态申请、释放内存时就会带来极大的安全隐患,导致系统极为不稳定,严重情况可导致系统瘫痪,导致设备无法正常工作。
现有一些解决方案虽然在一定程度上解决了一些内存的隐患,但绝大部分仅仅保护内存首地址信息而没有对整块内存进行有效保护。
针对上述情况,如何提出一种内存保护方法,在对整块内存加以保护的同时还采用了内存记录日志系统对内存使用情况进行了有效的跟踪记录,是本发明主要解决的问题。
发明内容
本发明为了解决现有内存保护机制不完善的问题,提供了一种内存保护方法,可以有效的监控检查内存,极大提升系统稳定性及可靠性。
为了解决上述技术问题,本发明采用以下技术方案予以实现:
一种内存保护方法,包括以下步骤:
(1)、每次分配内存时,另外开辟一段存储有标识信息的空间,并一起分配给用户;
(2)、当用户释放内存时,判断标识信息中是否包含内存空间释放的信息,若是,则结束;
(3)、若标识信息中没有包含内存空间释放的信息,则判断标识信息中的信息是否与分配内存时所存储的标识信息一致,若一致,则结束,否则,记录错误信息。
进一步的,步骤(1)中所开辟的存储有标识信息的空间为: 
在实际分配的内存空间的两端分别加入头、尾两部分标识信息,其中,头标识信息记录为DOGTAG_VALID,尾标识信息记录为DOGTAG_TAIL。
又进一步的,步骤(2)中判断标识信息中是否包含内存空间释放的信息的方式为:判断头标识信息中是否包含内存空间释放的信息。
再进一步的,当用户释放内存时,调用释放指令,并且将头标识中的信息修改为内存空间释放:DOG_FREE。
优选的,当用户释放内存时,还包括将内存块清零的步骤。
步骤(3)中判断标识信息中的信息是否与分配内存时所存储的标识信息一致的方式为:
(31)、首先判断头标识中的信息是否与DOGTAG_VALID一致,若不一致,记录错误信息,若一致,执行步骤(32);
(32)、判断尾标识中的信息是否与DOGTAG_TAIL一致,若不一致,记录错误信息,若一致,则将头标识中的信息修改为内存空间释放:DOG_FREE。
步骤(3)中记录错误信息的方式为:创建内存日志记录系统,当用户分配内存时,建立一个日志记录系统节点,并将内存块首地址、内存块大小、分配内存所在的文件名、分配内存所在的行号以及附属信息填充于日志记录系统中,当需要记录错误信息时,将错误信息记录于内存日志记录系统中。
当释放内存时,从所述节点移除,并将移除时的DOG_FREE信息记录到内存日志记录系统中。
优选的,所述头标识信息的数据大小为8字节。
优选的,所述尾标识信息的数据大小为4字节。
与现有技术相比,本发明的优点和积极效果是:本发明的内存保护方法原有操作系统的内存管理基础上引入了狗牌保护机制及内存记录日志系统,在动态内存管理上加入狗牌标记,有效识别并记录内存使用情况,确保用户使用操作的内存合法有效,并协助用户监控、检查内存是否有泄漏,有效提升了系统稳定性。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
附图说明
图1是本发明所提出的内存保护方法的一种实施例流程图;
图2是本发明所提出的内存保护方法的一种实施例的内存空间示意图;
图3是本发明所提出的内存保护方法的一种实施例的内存日志记录系统结构示意图。
具体实施方式
本发明为了解决现有内存保护机制不完善的问题,提供了一种内存保护方法,通过在所分配的内存另外开辟一段存储有标识信息的空间,一起分配给用户,当用户释放内存时,判断标识信息的正确性,进而可以判断出内存是否被踩,并做出记录,可以有效的监控检查内存,极大提升系统稳定性及可靠性。
下面结合附图对本发明的具体实施方式作进一步详细地说明。
实施例一,参见图1所示,本实施例的内存保护方法,包括以下步骤:
S1、每次分配内存时,另外开辟一段存储有标识信息的空间,并一起分配给用户;
S2、当用户释放内存时,判断标识信息中是否包含内存空间释放的信息,若是,则结束;
S3、若标识信息中没有包含内存空间释放的信息,则判断标识信息中的信息是否与分配内存时所存储的标识信息一致,若一致,则结束,否则,记录错误信息。
作为一个具体的实施例,在本实施例中,参见图2所示,步骤S1中所开辟的存储有标识信息的空间为: 
在实际分配的内存空间的两端分别加入头、尾两部分标识信息,其中,头标识信息记录为DOGTAG_VALID,尾标识信息记录为DOGTAG_TAIL。
其中,头标识信息中可以记录头标识和分配的内存大小,尾标识信息中记录有尾标识,优选所述头标识信息的数据大小为8字节,其中两部分内容的信息各占4字节,由于尾标识信息中只记录了尾标识,因此,为其分配4字节即可实现。这样,也即为所分配的内存做了独一无二的标记,在释放内存时只需要检查标记的合法性,即可以判断内存是否被踩,防止由于用户误使用内存导致的异常。
步骤S2中判断标识信息中是否包含内存空间释放的信息的方式为:判断头标识信息中是否包含内存空间释放的信息。
由于当用户释放内存时,调用释放指令,并且将头标识中的信息修改为内存空间释放:DOG_FREE。
因此,在步骤S2中,判断标识信息中是否包含内存空间释放的信息的方式也即判断头标识信息中是否包含DOG_FREE,若包含,则说明内存空间释放,否则,有可能出现两种情况:内存被踩或者系统未及时修改内存空间释放,具体属于哪种情况还需步骤S3做进一步判断。
为了及时清空内存块的空间,当用户释放内存时,还包括将内存块清零的步骤。
步骤S3中判断标识信息中的信息是否与分配内存时所存储的标识信息一致的方式为:
S31、首先判断头标识中的信息是否与DOGTAG_VALID一致,若不一致,记录错误信息,若一致,执行步骤S32;
也即,若内存没有被踩的话,首先头标识中的信息与DOGTAG_VALID是一致的,一旦出现不一致情况,则说明内存被踩,或者用户操作不当造成了出错,此时记录错误信息,若是一致的,则继续检查尾标识中的信息是否正常。
S32、判断尾标识中的信息是否与DOGTAG_TAIL一致,若不一致,记录错误信息,若一致,则将头标识中的信息修改为内存空间释放:DOG_FREE。
同样道理的,若内存没有被踩的话,尾标识中的信息与DOGTAG_TAIL是一致的,一旦出现不一致情况,则说明内存被踩,或者用户操作不当造成了出错,此时记录错误信息,若是一致的,则说明内存使用情况正常,未出现错误。
在本实施例中,步骤S3中记录错误信息的方式为:创建内存日志记录系统,当用户分配内存时,建立一个日志记录系统节点,并将内存块首地址、内存块大小、分配内存所在的文件名、分配内存所在的行号以及附属信息填充于日志记录系统中,当需要记录错误信息时,将错误信息记录于内存日志记录系统中。
参见图3所示,本内存日志记录系统可以采用双向链表式结构进行管理,将用户动态使用的内存信息做一一记录。通过表中记录的内存块首地址、内存块大小、分配内存所在的文件名、分配内存所在的行号以及附属信息,可有效定位到用户分配内存时的大小、所在文件名以及行号等。其中附属信息采用联合的结构描述,在分配内存是该结构记录下该节点的pre和next节点信息,以方便查询数据,当释放内存后,该联合结构记录下释放内存时所在的文件名及行号,以方便用户查询历史分配记录。
当释放内存时,从所述节点移除,并将移除时的DOG_FREE信息记录到内存日志记录系统中,以方便用户查询。
本发明对用户使用的整块内存加上保护机制,能够及时发现内存是否被踩,进而给用户预警哪部分内存被踩,并根据内存记录日志系统记录的内存情况协助用户进行有效的监控、检查,极大提升系统稳定性及可靠性。本内存保护方法适合应用于数字电视机顶盒、手机等带有实时操作系统的设备上。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

Claims (10)

1.一种内存保护方法,其特征在于,包括以下步骤:
(1)、每次分配内存时,另外开辟一段存储有标识信息的空间,并一起分配给用户;
(2)、当用户释放内存时,判断标识信息中是否包含内存空间释放的信息,若是,则结束;
(3)、若标识信息中没有包含内存空间释放的信息,则判断标识信息中的信息是否与分配内存时所存储的标识信息一致,若一致,则结束,否则,记录错误信息。
2.根据权利要求1所述的内存保护方法,其特征在于,步骤(1)中所开辟的存储有标识信息的空间为: 
在实际分配的内存空间的两端分别加入头、尾两部分标识信息,其中,头标识信息记录为DOGTAG_VALID,尾标识信息记录为DOGTAG_TAIL。
3.根据权利要求2所述的内存保护方法,其特征在于,步骤(2)中判断标识信息中是否包含内存空间释放的信息的方式为:判断头标识信息中是否包含内存空间释放的信息。
4.根据权利要求3所述的内存保护方法,其特征在于,当用户释放内存时,调用释放指令,并且将头标识中的信息修改为内存空间释放:DOG_FREE。
5.根据权利要求4所述的内存保护方法,其特征在于,当用户释放内存时,还包括将内存块清零的步骤。
6.根据权利要求2所述的内存保护方法,其特征在于,步骤(3)中判断标识信息中的信息是否与分配内存时所存储的标识信息一致的方式为:
(31)、首先判断头标识中的信息是否与DOGTAG_VALID一致,若不一致,记录错误信息,若一致,执行步骤(32);
(32)、判断尾标识中的信息是否与DOGTAG_TAIL一致,若不一致,记录错误信息,若一致,则将头标识中的信息修改为内存空间释放:DOG_FREE。
7.根据权利要求1所述的内存保护方法,其特征在于,步骤(3)中记录错误信息的方式为:创建内存日志记录系统,当用户分配内存时,建立一个日志记录系统节点,并将内存块首地址、内存块大小、分配内存所在的文件名、分配内存所在的行号以及附属信息填充于日志记录系统中,当需要记录错误信息时,将错误信息记录于内存日志记录系统中。
8.根据权利要求7所述的内存保护方法,其特征在于,当释放内存时,从所述节点移除,并将移除时的DOG_FREE信息记录到内存日志记录系统中。
9.根据权利要求2-8任一项权利要求所述的内存保护方法,其特征在于,所述头标识信息的数据大小为8字节。
10.根据权利要求2-8任一项权利要求所述的内存保护方法,其特征在于,所述尾标识信息的数据大小为4字节。
CN201110446650.5A 2011-12-28 2011-12-28 一种内存保护方法 Active CN102541748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110446650.5A CN102541748B (zh) 2011-12-28 2011-12-28 一种内存保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110446650.5A CN102541748B (zh) 2011-12-28 2011-12-28 一种内存保护方法

Publications (2)

Publication Number Publication Date
CN102541748A true CN102541748A (zh) 2012-07-04
CN102541748B CN102541748B (zh) 2014-06-25

Family

ID=46348688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110446650.5A Active CN102541748B (zh) 2011-12-28 2011-12-28 一种内存保护方法

Country Status (1)

Country Link
CN (1) CN102541748B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183542A (zh) * 2015-08-13 2015-12-23 上海斐讯数据通信技术有限公司 一种内存管理方法及系统
CN110866589A (zh) * 2018-08-10 2020-03-06 高德软件有限公司 深度神经网络模型的运行方法、装置及框架

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268310A1 (en) * 2003-06-30 2004-12-30 International Business Machines Corporation Debugging step-back button
CN1584845A (zh) * 2004-05-28 2005-02-23 中兴通讯股份有限公司 一种数字信号处理通讯应用系统内存保护方法
CN101110042A (zh) * 2006-07-20 2008-01-23 中兴通讯股份有限公司 一种检测内存访问越界的方法
CN101599046A (zh) * 2009-06-26 2009-12-09 深圳市茁壮网络股份有限公司 一种内存检测方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268310A1 (en) * 2003-06-30 2004-12-30 International Business Machines Corporation Debugging step-back button
CN1584845A (zh) * 2004-05-28 2005-02-23 中兴通讯股份有限公司 一种数字信号处理通讯应用系统内存保护方法
CN101110042A (zh) * 2006-07-20 2008-01-23 中兴通讯股份有限公司 一种检测内存访问越界的方法
CN101599046A (zh) * 2009-06-26 2009-12-09 深圳市茁壮网络股份有限公司 一种内存检测方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183542A (zh) * 2015-08-13 2015-12-23 上海斐讯数据通信技术有限公司 一种内存管理方法及系统
CN105183542B (zh) * 2015-08-13 2019-07-12 上海斐讯数据通信技术有限公司 一种内存管理方法及系统
CN110866589A (zh) * 2018-08-10 2020-03-06 高德软件有限公司 深度神经网络模型的运行方法、装置及框架
CN110866589B (zh) * 2018-08-10 2023-06-30 阿里巴巴(中国)有限公司 深度神经网络模型的运行方法、装置及框架

Also Published As

Publication number Publication date
CN102541748B (zh) 2014-06-25

Similar Documents

Publication Publication Date Title
US20080086561A1 (en) Method for obtaining log information from network element device by network management server, a network element device and a network management server
CN102253840B (zh) 插件管理方法及插件管理器
CN109327557B (zh) 一种虚拟机ip地址的管理方法及装置
CN108829384A (zh) 容器的管理方法、装置、计算机设备及存储介质
CN108038384B (zh) 一种高安全的集群共享存储虚拟化方法
CN107608826A (zh) 一种存储集群的节点的故障恢复方法、装置及介质
CN104951395A (zh) 一种嵌入式系统调试信息处理方法及装置
CN103532731A (zh) 一种防止虚拟机网络配置丢失的方法和装置
CN112035216A (zh) 一种Kubernetes集群网络和OpenStack网络的打通方法
CN108829342B (zh) 一种日志存储方法、系统及存储装置
CN103810444A (zh) 一种云计算平台中多租户应用隔离的方法和系统
CN103309796A (zh) 一种组件对象模型对象的监控方法和装置
CN112199106B (zh) 一种跨版本升级方法、装置及电子设备
CN105718319A (zh) 一种内存池版图解析方法和内存池装置
CN103535015A (zh) 公网地址资源的管理方法、端口控制协议服务器及客户端
CN102023817A (zh) 一种存储设备数据的读写控制方法及系统
CN102541748A (zh) 一种内存保护方法
CN104793981A (zh) 一种虚拟机集群的在线快照管理方法及装置
CN104516744A (zh) 软件更新方法及系统
CN102214147A (zh) 一种检测内存访问越界的方法及装置
CN101510156B (zh) 一种信息系统资源回收方法及装置
CN114124812A (zh) 维护表项一致性的方法、装置及电子设备
WO2012008731A2 (ko) 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
CN106165367A (zh) 一种存储装置的访问控制方法、存储装置以及控制系统
CN105450679A (zh) 进行数据云存储的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant