[发明专利]一种可配置式内存管理方法在审
申请号: | 201310744572.6 | 申请日: | 2013-12-30 |
公开(公告)号: | CN103729443A | 公开(公告)日: | 2014-04-16 |
发明(设计)人: | 龚彩军;赵强;刘畅 | 申请(专利权)人: | 北京首钢自动化信息技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/44 |
代理公司: | 北京华谊知识产权代理有限公司 11207 | 代理人: | 刘月娥 |
地址: | 100041*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 配置 内存 管理 方法 | ||
技术领域
本发明属于信息技术领域,特别涉及一种可配置式内存管理方法。是一种集内存配置、创建、维护为一体的管理方法。
背景技术
在热连轧工程开发中,采用星型拓扑网络。粗轧、精轧、层冷、数据中心各客户端与服务器通过TCP/IP协议进行通讯。各客户端中既有相同结构的内存区(这些内存区结构应始终保持一致,以下称“通用内存区”),也有各自结构不同的内存区(以下称“专用内存区”)。在开发中发现以下问题:为保持通用内存区划分同步,某客户端更改相同结构内存区的划分时,需在其他客户端同步更新,工作繁复,易出错;实现内存区划分、创建、管理需要大量代码,易出错;内存管理往往都是在后台程序进行,不直观。
发明内容
本发明的目的在于提供一种可配置式内存管理方法,将内存区结构划分方式存储于服务器关系数据库,根据各数据结构之间的关联关系,客户端通过内存获取模块在本地将其转换为非关系数据结构,转换成大量直观的内存配置数据。由客户端内存创建模块根据配置创建内存,再由客户端内存监控模块显示、更改、监测内存区变量值,省略对关系数据库查询时间,大大提高了内存管理响应速度。如图1,当某客户端修改通用内存区时,只需更新服务器上数据库,在各客户端运行三个模块(内存获取模块、内存创建模块、内存监控模块)即可。
在服务器—多个客户端网络工程开发中,多客户端需采用相同内存区结构划分时,可采用该方法进行同步管理。
本发明将内存区结构划分到创建、管理零代码化;并采用自动生成代码技术生成内存定义头文件,以方便在工程上的应用,大大节省了编程人员消耗在内存管理上的时间。
以下将详细介绍本发明实现步骤(包括内存获取模块、内存创建模块、内存监控模块的实现方法等):
步骤1、在服务器上安装配置数据,各客户端配置监听。各客户端都通过对服务器配置数据库的配置,对内存区结构进行划分。
由于内存定义中可能出现多层数据结构、结构体嵌套等情况,本发明对配置数据库进行了规范化管理:各类表的名称、各表结构,相互引用的表之间外键联系。
根据需求在服务器配置数据库上创建表、及填写数据如下:
各表以内存名或变量名字段为主键,确保输入内存名或变量名的唯一性;并对各字段类型、长度做以限制,预防输入错误;各表间外键依赖关系,预防了逻辑错误,如图2:内存划分表1至内存划分表n中“内存名称”依赖于内存信息汇总表中主键“内存名称”;结构体定义表1至结构体定义表n中“结构体成员名”依赖于结构体类型汇总表中主键“结构体名称”;内存划分表1至内存划分表n及结构体定义表1至结构体定义表n中“内存变量类型”或“成员类型”依赖于基础类型表“类型名”或结构体类型汇总表“结构体名称”(如果是基础类型则依赖于基础类型表,如果是自定义结构体类型则依赖于结构体类型汇总表)。
步骤2、实现内存配置获取模块:(生成中间数据文件功能)
客户端上内存配置获取模块读服务器数据库表。从内存信息汇总表获取与该客户端相关的内存信息,包括通用内存区及与该客户端相关的专用内存区。内存配置获取模块根据与该客户端相关的内存信息,在本地创建中间数据文件,供内存创建模块、内存监控模块使用。
内存监控模块根据内存块中各成员偏移地址来管理内存成员,因此需在中间数据文件中将偏移地址准备好,以备内存管理使用。
计算内存成员偏移地址,需将各类型长度包括自定义结构体长度准备好。内存配置获取模块从数据库表中调取结构体信息,通过结构体成员维数及长度乘以类型长度,计算用户定义结构体大小,有嵌套结构体时,递归调用。
偏移地址的计算重在计算结构体大小,如计算结构体s_A的大小,具体方法如下:
(1)读结构体表,将结构体成员名、类型、各维长度存储于[结构体数组列表]。首位成员在结构体中的偏移地址记为0。
(2)根据结构体成员类型,从基础类型表中查询该类型长度。如果查询到,则结构体成员是基础类型,则根据其位数计算字节数。反之,结构体成员类型是结构体类型s_B(即结构体内嵌套结构体),在[结构体数组列表]中查找。如果没有找到,则进行递归调用,计算结构体s_B的大小。计算完成后,返回结构体s_B的值。
如果找到该结构体,则从[结构体数组列表]中获取结构体大小。
(3)根据结构体成员类型长度及各维长度,计算该成员所占字节大小,与其偏移地址累加,即下一成员偏移地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京首钢自动化信息技术有限公司,未经北京首钢自动化信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310744572.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:防潮室外端子箱
- 下一篇:一种基于全反射的半导体激光器光束分割重排器件