[发明专利]一种管理共享内存的方法在审
| 申请号: | 201310657058.9 | 申请日: | 2013-12-06 |
| 公开(公告)号: | CN103631936A | 公开(公告)日: | 2014-03-12 |
| 发明(设计)人: | 李彦斌;周月杰;高雷;李亮举;彭会军 | 申请(专利权)人: | 北京首钢自动化信息技术有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京华谊知识产权代理有限公司 11207 | 代理人: | 刘建民 |
| 地址: | 100041*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 管理 共享 内存 方法 | ||
技术领域
本发明属于计算机内部共享内存管理技术领域,特别涉及一种在计算机中实现以嵌套表格结构的方式来管理和访问共享内存的方法。
背景技术
随着计算机技术的飞速发展和人们对应用程序的要求越来越高,单进程程序在许多场合已经不能满足人们的需求,编写多进程、多线程程序成为现代程序设计的一个重要的特点。在多进程程序设计中,进程间通信是不可避免的。进程间进行通讯,不可避免的需要进行大数据块的传递。在Windows程序中也是如此,各个进程之间常常需要交换数据,进行数据通讯。其中,win32API中共享内存就是其中一个重要的方式。但由于共享内存本身并没有固定的数据结构,访问共享内存一般只能通过计算数据相对于内存首地址的偏移量来进行访问,在调试的过程中,开发人员也都是通过逐步调试、输出成数据文件的形式对共享内存的数据进行跟踪和查看,造成诸多不便。
此外,由于共享内存本身并不具有数据结构,可以保存任何类型的数据,虽然带来了使用的灵活性,但在大规模的实际开发中,这种灵活性导致了各个进程在使用共享内存时产生了不便,并增加了程序开发时出错的概率。本发明首先通过内存结构定义对象将共享内存的数据结构定义成嵌套表格结构的形式,然后通过共享内存管理对象来管理共享内存的生命周期并提供安全的访问机制,从而规范了各个进程访问使用同一块共享内存时的数据结构,并实现了对共享内存的语句化操作以及可视化管理。
发明内容
本发明的目的在于提供一种实现对共享内存的数据实现结构化的定义、访问以及可视化管理的方法,从而解决在大规模使用共享内存进行开发以及调试的过程中,对共享内存数据监控难度大、共享内存数据结构不统一、数据访问方式复杂的问题,整体过程如图1所示。
本方法包含以下步骤:
步骤1,通过结构定义文件对共享内存所需要存储的数据按照设定表格的结构进行定义。
将无结构的内存视为一个由一个或若干个具有相同表格结构的基本数据单元组成的集合,并使用结构定义文件定义基本数据单元的数据结构以供内存结构定义访问对象使用。与关系数据库中定义表列的方式相似,结构定义文件以固定的格式来定义基本数据单元所存储的数据类型、数据名称、数据的维数、数据的最大值、最小值、缺省值及描述,并为该基本数据单元的结构命名。内存结构定义对象载入结构定义文件,读取基本数据单元的结构,构建成员定义列表,按照Win32程序的内存对齐规则计算单元结构体所占用的空间大小,从而确定内存中每个基本单元结构体的首地址,通过这些地址可以精确地访问到每个基本单元结构体的数据成员的值。在此基础之上,基本单元结构体成员可以是一个子单元结构体,其访问子成员的方式与上一级结构访问成员的方式类似,通过计算偏移地址访问子成员数据,从而支持嵌套结构。当将一个指定大小的共享内存首地址绑定到该内存结构定义对象时,则可以通过内存结构定义对象访问共享内存数据。
步骤2,通过共享内存配置文件设定需要开辟的共享内存的名称、以及内存大小等配置信息,并将该共享内存与一个基本数据单元的结构绑定起来,以确定共享内存的所对应的数据结构。共享内存管理对象可以根据该配置文件创建指定大小的共享内存,并可以将该共享内存的首地址绑定到一个指定内存结构的内存结构定义对象上,并提供对共享内存的锁定访问机制,以保证多个进程访问共享内存的安全性。
步骤3,通过基于共享内存管理对象和内存结构定义对象开发的载入模块加载共享内存配置文件,并提供对共享内存数据进行编辑的界面。该载入模块首先通过共享内存管理对象创建指定大小的共享内存,然后根据该共享内存的配置文件载入与之绑定的基本数据单元的结构定义文件,之后,该载入模块通过内存结构定义对象提供内存数据访问与查询方法将共享内存的结构以树视图的可视化形式展现出来,并提供对共享内存数据的显示与修改功能。由于共享内存管理对象和内存结构定义对象可以应用于多个程序进程之中,因此在通过载入模块打开共享内存的情况下,其他应用进程也可以通过共享内存管理对象提供的共享内存操作方法访问已经创建好的共享内存,然后通过内存结构定义模块载入基本数据单元结构定义文件,对共享内存进行查询以及修改等操作,以完成各应用程序的业务逻辑操作。如图2所示。
对共享内存数据的管理,我们的方法在于,通过下述两种形式操作共享内存数据:
方法1,通过共享内存管理模块与内存结构定义模块可以实现对共享内存数据的高效且安全的访问。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京首钢自动化信息技术有限公司,未经北京首钢自动化信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310657058.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种抗流感病毒的制备
- 下一篇:双层带滑动轨道防护井盖





