技术新讯 > 计算推算,计数设备的制造及其应用技术 > 共享内存的访问方法、设备及存储介质与流程  >  正文

共享内存的访问方法、设备及存储介质与流程

  • 国知局
  • 2024-10-09 15:20:16

本申请涉及计算机,尤其涉及共享内存的访问方法、设备及存储介质。

背景技术:

1、随着工业自动化技术的飞速发展,通常使用共享内存作为通讯方式,以提高数据处理能力和数据处理效率。

2、相关技术中,共享内存允许两个不相关的进程访问同一段物理内存,进而将同一段物理内存映射到他们自己的地址空间中,使得所有的进程都可以访问共享内存中的地址。在将共享内存中的数据映射到自己进程的地址空间后,通常使用内存起始地址加偏移的方式,进行共享内存的数据读写。

3、然而,当共享内存中的数据成员分布发生调整时,所有的数据访问操作都要进行修改,给共享内存的访问造成不便,进而降低共享内存的访问效率。

技术实现思路

1、本申请的主要目的在于提供一种共享内存的访问方法、设备及存储介质,旨在提高共享内存的访问效率。

2、为实现上述目的,本申请提出一种共享内存的访问方法,所述方法包括:

3、将共享内存分别映射到客户端进程和服务端进程的地址空间;

4、加载所述共享内存的内存数据分布文件,其中,所述内存数据分布文件包括多个预存字段对应的预存字段信息;

5、获取待处理字段的字段信息,并基于所述字段信息和所述预存字段信息,对所述共享内存进行访问操作。

6、在一实施例中,所述基于所述字段信息和所述预存字段信息,对所述共享内存进行访问操作的步骤包括:

7、基于所述字段信息和所述预存字段信息,对所述共享内存进行数据读取操作;或,

8、基于所述字段信息和所述预存字段信息,对所述共享内存进行数据写入操作。

9、在一实施例中,所述待处理字段的字段信息包括字段名称和数据长度,所述预存字段对应的预存字段信息包括预存字段名称、预存数据长度和字段起始偏移地址,所述基于所述字段信息和所述预存字段信息,对所述共享内存进行数据读取操作的步骤包括:

10、当所述字段名称与所述预存字段名称相同且所述数据长度与所述预存数据长度相同时,根据所述字段起始偏移地址和所述预存数据长度确定所述待处理字段对应的字段数据的存储地址;

11、读取所述存储地址中所述预存数据长度的字段数据。

12、在一实施例中,所述待处理字段的字段信息包括字段名称和数据长度,所述预存字段对应的预存字段信息包括预存字段名称、预存数据长度和字段起始偏移地址,所述基于所述字段信息和所述预存字段信息,对所述共享内存进行数据写入操作的步骤包括:

13、当所述字段名称与所述预存字段名称相同且所述数据长度与所述预存数据长度相同时,根据所述字段起始偏移地址和所述预存数据长度确定所述待处理字段对应的字段数据的存储地址;

14、将所述数据长度的所述字段数据写入所述存储地址。

15、在一实施例中,所述基于所述字段信息和所述预存字段信息,对所述共享内存进行数据写入操作的步骤之前,还包括:

16、获取互斥锁;

17、所述基于所述字段信息和所述预存字段信息,对所述共享内存进行数据写入操作的步骤之后,还包括:

18、释放互斥锁。

19、在一实施例中,所述方法,还包括:

20、启动心跳处理线程;

21、基于所述心跳处理线程检测服务端是否正常工作;

22、当所述服务端正常工作时,执行所述基于所述字段信息和所述预存字段信息,对所述共享内存进行访问操作的步骤。

23、在一实施例中,所述基于所述心跳处理线程检测服务端是否正常工作的步骤包括:

24、客户端将心跳交互字节的数值设置为第一数值,并将设置后的心跳交互字节的数值写入共享内存中,其中,服务端读取所述共享内存中的心跳交互字节的数值,在检测到读取的心跳交互字节的数值为第一数值时,将所述心跳交互字节的数值更新为第二数值,并将更新后的心跳交互字节的数值写入共享内存中;

25、所述客户端读取所述共享内存中更新后的心跳交互字节的数值,根据读取的心跳交互字节的数值,确定所述服务端是否正常工作。

26、在一实施例中,所述的方法,还包括:

27、当获取共享内存的句柄后,将共享内存分别映射到客户端进程和服务端进程的地址空间;

28、当访问操作结束后,关闭所述共享内存的句柄。

29、此外,为实现上述目的,本申请还提出一种共享内存的访问设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如上文所述的共享内存的访问方法的步骤。

30、此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文所述的共享内存的访问方法的步骤。

31、本申请提出的一个或多个技术方案,至少具有以下技术效果:

32、由于内存数据分布文件中包括多个预存字段对应的预存字段信息,通过加载共享内存的内存数据分布文件,得到共享内存中的预存字段信息,再基于共享内存中的预存字段信息和当前待处理字段的字段信息对共享内存进行访问操作,就可实现通过字段信息对共享内存进行访问操作,解决了共享内存的访问繁琐的问题,与现有技术相比,提高共享内存的访问效率。

技术特征:

1.一种共享内存的访问方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,所述基于所述字段信息和所述预存字段信息,对所述共享内存进行访问操作的步骤包括:

3.如权利要求2所述的方法,其特征在于,所述待处理字段的字段信息包括字段名称和数据长度,所述预存字段对应的预存字段信息包括预存字段名称、预存数据长度和字段起始偏移地址,所述基于所述字段信息和所述预存字段信息,对所述共享内存进行数据读取操作的步骤包括:

4.如权利要求2所述的方法,其特征在于,所述待处理字段的字段信息包括字段名称和数据长度,所述预存字段对应的预存字段信息包括预存字段名称、预存数据长度和字段起始偏移地址,所述基于所述字段信息和所述预存字段信息,对所述共享内存进行数据写入操作的步骤包括:

5.如权利要求2所述的方法,其特征在于,所述基于所述字段信息和所述预存字段信息,对所述共享内存进行数据写入操作的步骤之前,还包括:

6.如权利要求1至5中任一项所述的方法,其特征在于,所述方法,还包括:

7.如权利要求6所述的方法,其特征在于,所述基于所述心跳处理线程检测服务端是否正常工作的步骤包括:

8.如权利要求1至5中任一项所述的方法,所述的方法,还包括:

9.一种共享内存的访问设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序配置为实现如权利要求1至8中任一项所述的共享内存的访问方法的步骤。

10.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的共享内存的访问方法的步骤。

技术总结本申请公开了一种共享内存的访问方法、设备及存储介质,涉及计算机技术领域,公开了共享内存的访问方法,包括:将共享内存分别映射到客户端进程和服务端进程的地址空间;加载所述共享内存的内存数据分布文件,其中,所述内存数据分布文件包括多个预存字段对应的预存字段信息;获取待处理字段的字段信息,并基于所述字段信息和所述预存字段信息,对所述共享内存进行访问操作,提高共享内存的访问效率。技术研发人员:邢磊受保护的技术使用者:深圳市汇川技术股份有限公司技术研发日:技术公布日:2024/9/29

本文地址:https://www.jishuxx.com/zhuanli/20241009/308393.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。