[发明专利]一种可配置式内存管理方法在审
申请号: | 201310744572.6 | 申请日: | 2013-12-30 |
公开(公告)号: | CN103729443A | 公开(公告)日: | 2014-04-16 |
发明(设计)人: | 龚彩军;赵强;刘畅 | 申请(专利权)人: | 北京首钢自动化信息技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/44 |
代理公司: | 北京华谊知识产权代理有限公司 11207 | 代理人: | 刘月娥 |
地址: | 100041*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 配置 内存 管理 方法 | ||
1.一种可配置式内存管理方法,将内存区结构划分方式存储于服务器关系数据库,根据各数据结构之间的关联关系,客户端通过内存获取模块在本地将其转换为非关系数据结构,转换成大量直观的内存配置数据;由客户端内存创建模块根据配置创建内存,再由客户端内存监控模块显示、更改、监测内存区变量值,省略对关系数据库查询时间,当某客户端修改通用内存区时,只需更新服务器上数据库,在各客户端运行三个模块;工艺步骤如下:
步骤1、在服务器上安装配置数据,各客户端配置监听。各客户端都通过对服务器配置数据库的配置,对内存区结构进行划分;
对配置数据库进行了规范化管理,各表以内存名或变量名字段为主键,确保输入内存名或变量名的唯一性;各表间外键依赖关系预防了逻辑错误;
步骤2、实现内存配置获取模块:
客户端上内存配置获取模块读服务器数据库表;从内存信息汇总表获取与该客户端相关的内存信息,包括通用内存区及与该客户端相关的专用内存区,内存配置获取模块根据与该客户端相关的内存信息,在本地创建中间数据文件,供内存创建模块、内存监控模块使用;
内存监控模块根据内存块中各成员偏移地址来管理内存成员,需在中间数据文件中将偏移地址准备好,以备内存管理使用;
计算内存成员偏移地址,需将各类型长度包括自定义结构体长度准备好;内存配置获取模块从数据库表中调取结构体信息,通过结构体成员维数及长度乘以类型长度,计算用户定义结构体大小,有嵌套结构体时,递归调用;
内存配置获取模块将配置数据库从关系型数据解析成非关系型数据,存储到中间数据文件中;每一块内存区对应生成一个中间数据文件,其中内容包括内存块内每一最底层变量的名称、类型、长度、偏移地址;
步骤3、实现内存配置获取模块:
客户端内存配置获取模块根据服务器上配置数据库,根据该客户端内存信息,为每一块内存、及结构体、常数表都生成一个定义文件,当有嵌套结构体时,定义文件代码中包含该嵌套结构体定义的头文件;
步骤4、实现内存创建模块:
客户端内存创建模块根据内存配置获取模块生成的本地中间数据文件,根据各个内存块的大小,创建内存。将内存块名称、子区数、子区长度、内存块数,存入程序内存信息列表;内存监控模块进行内存管理时,只需映射内存;当不使用内存时,也需从内存创建模块释放空间;
步骤5、实现内存监控模块:
步骤6、每个客户端上安装以上内存配置获取模块、内存创建模块、内存监控模块;
顺序运行以上三个模块,即自动创建适合该客户端的内存,并从内存监控模块监测、修改内存区的值。
2.根据权利要求1所述的方法,其特征在于:偏移地址的计算重在计算结构体大小,计算结构体s_A的大小,具体步骤如下:
(1)读结构体表,将结构体成员名、类型、各维长度存储于[结构体数组列表]。首位成员在结构体中的偏移地址记为0;
(2)根据结构体成员类型,从基础类型表中查询该类型长度。如果查询到,则结构体成员是基础类型,则根据其位数计算字节数;反之,结构体成员类型是结构体类型s_B即结构体内嵌套结构体,在[结构体数组列表]中查找;如果没有找到,则进行递归调用,计算结构体s_B的大小;计算完成后,返回结构体s_B的值;
如果找到该结构体,则从[结构体数组列表]中获取结构体大小;
(3)根据结构体成员类型长度及各维长度,计算该成员所占字节大小,与其偏移地址累加,即下一成员偏移地;。
(4)如该成员是结构体最后一员,则下一成员的偏移地址即为结构体s_A的大小,至此计算结构体大小完成;如该成员不是结构体最后一员,则循环以上过程(2)~(4),直至结构体大小计算完毕,并将结构体相应信息存入类型数组列表。
3.根据权利要求1所述的方法,其特征在于:以表名+.h作为定义文件名称,根据配置表中内存名称、内存变量、变量类型制作内存定义头文件;根据配置表中结构体名称、结构体变量、变量类型制作结构体定义头文件;根据配置表中常量、常量值制作宏定义头文件;
生成定义文件保存在统一路径文件夹中,文件夹命名方式“Include_”+YYYYMMDD型生成日期作为后缀,保存多版本生成的头文件,定期按生成时间进行删除。
4.根据权利要求1所述的方法,其特征在于:实现内存监控模块的步骤如下:
(1)当打开客户端内存监控模块内存管理程序时,自动映射共享内存,并显示共享内存连接状;。当共享内存连接失败时,可手动连接共享内存;
(2)实现内存区变量显示:在显示参数区域列出由内存创建模块创建的本地共享内存名称,根据用户选择的共享内存名称、子区号、变量数显示内存区变量;在变量显示区显示:序号、变量类型、变量值、偏移地址、注释;内存监控模块定时刷新内存数据,将新内存数据更新至画面;
(3)实现内存区变量修改:内存连接成功、监测画面显示变量后,修改、提交变量值;内存监控模块程序将修改后值写入内存,并刷新画面显示;
(4)实现曲线实时监控:以曲线形式实时监控内存中变量的变化情况,以内存区变量值为纵坐标,以时间为横坐标节点向前绘制曲线,折线显示多个记录点,实现实时观测数据变化趋势功能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京首钢自动化信息技术有限公司,未经北京首钢自动化信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310744572.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:防潮室外端子箱
- 下一篇:一种基于全反射的半导体激光器光束分割重排器件