[发明专利]基于哈希表的单进程动态存储管理方法有效
申请号: | 201510558218.3 | 申请日: | 2015-09-06 |
公开(公告)号: | CN105094710B | 公开(公告)日: | 2018-04-20 |
发明(设计)人: | 李友军;戴欣欣;滕春涛;张成彬;罗华煜;张吉;赵峰荣;胡国 | 申请(专利权)人: | 国电南瑞科技股份有限公司;国电南瑞南京控制系统有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06;G06F9/50 |
代理公司: | 南京纵横知识产权代理有限公司32224 | 代理人: | 董建林,闫方圆 |
地址: | 210003 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于哈希表的单进程动态存储管理方法,包括哈希表初始化、动态内存申请、动态内存释放、实时巡检,创建空的哈希表,保存动态存储申请信息;在动态内存申请中,将申请内存的相关信息存入哈希表,并设立溢出标志;在动态内存释放中,通过查找哈希表,找到相关指针则释放,找不到则给出警示;在实时巡检调用中,通过逐个检查哈希表节点中内存区的溢出标志字,判断动态内存是否溢出,将哈希表中的所有内存空间大小加起来,并按照1小时存储一次的频率存储,判断是否存在内存溢出的风险。本发明占用进程空闲时间实时监测检查动态内存使用情况,并通过消息队列将监测结果发送给框架,由框架负责整理及提供查询,具有良好的应用前景。 | ||
搜索关键词: | 基于 哈希表 进程 动态 存储 管理 方法 | ||
【主权项】:
一种基于哈希表的单进程动态存储管理方法,其特征在于:用于运行在单个应用进程上,占用应用进程的空闲时间实时监测检查动态内存使用情况,并通过消息队列将监测结果发送给框架程序,由框架程序负责整理及提供查询,具体包括以下步骤,步骤(1),在应用进程的初始化阶段,调用哈希表的初始化接口,建立一张空的哈希表,所述哈希表包括最大内存申请块数、每块内存信息,其中每块内存信息包括有效标志、申请内存的起始地址、申请内存大小、申请该内存代码位置,每块内存包括ZONE1区域、ZONE2区域、ZONE3区域、ZONE4区域、ZONE5区域五个区域;步骤(2),当应用进程通过动态内存申请接口申请动态内存时,该动态内存申请接口调用malloc函数申请内存,同时将内存初始化,初始化内存的具体过程为:21)将申请内存的程序位置信息存入ZONE1区域;22)将用户申请的内存大小存入ZONE2区域;23)在ZONE3区域和ZONE5区域部分填入标识性字符,标志性字符是用于判断用户数据区溢出的标志字;24)以ZONE4区域的内存起始地址为哈希表的键值计算存储位置,并将ZONE1区域的起始地址存入哈希表,将节点置为有效节点;25)将ZONE4区域的首地址返回给应用进程;步骤(3),当应用进程通过动态内存释放接口释放动态内存时,在哈希表中查找,找到申请的动态内存后,调用free函数释放动态内存;步骤(4),在应用进程的初始化完成后,通过实时巡检接口,在程序运行空闲时,检查动态内存的溢出及内存泄露风险,具体过程为:41)将按照哈希表的各块内存的顺序,逐一检查每个内存块的用于放置标识性字符的ZONE3区域、ZONE5区域;同时,将哈希表中每块内存的大小加起来,毎小时存储一次;42)若发现ZONE3区域或者ZONE5区域发生变化,则给出警示信息,显示动态内存区出现溢出及溢出的位置,并提示用户处理;43)当内存总量计算值达到一定数量,所述数量可通过参数配置,每小时一次检查存储值是否有增加的趋势,若存在增加趋势,则给出警示信息,提示用户处理,并将警示信息通过消息队列发送给框架程序,由框架程序保存并提供查询接口;步骤(5),框架程序负责接收各个应用进程的内存异常信息,存储内存异常信息,并提供查询功能。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国电南瑞科技股份有限公司;国电南瑞南京控制系统有限公司,未经国电南瑞科技股份有限公司;国电南瑞南京控制系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510558218.3/,转载请声明来源钻瓜专利网。
- 上一篇:一种信息处理方法及电子设备
- 下一篇:一种优化磁盘存储策略的方法