首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于共享内存的实时数据分发方法及装置 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:中国电子科技集团公司第五十二研究所

摘要:本发明公开了一种基于共享内存的实时数据分发方法及装置,方法包括:发布进程和接收进程加载数据分发组件,数据分发组件申请有多个共享内存通道,每个共享内存通道用于一个数据主题的数据分发;接收进程订阅感兴趣的数据主题,并向数据分发组件申请共享内存通道,固定所申请的共享内存通道的数据主题为所订阅的数据主题;发布进程发布数据到数据所属数据主题对应的所有共享内存通道;接收进程定时查询所申请的共享内存通道中是否有数据,若有则接收所述共享内存通道中的数据;否则继续定时查询。本发明减少数据分发过程中的拷贝次数,通用性强。

主权项:1.一种基于共享内存的实时数据分发方法,用于多进程间的数据分发,多进程中用于发布数据的为发布进程,用于接收数据的为接收进程,其特征在于,所述基于共享内存的实时数据分发方法,包括:所述发布进程和接收进程加载数据分发组件,所述数据分发组件申请有多个共享内存通道,每个共享内存通道用于一个数据主题的数据分发;所述接收进程订阅感兴趣的数据主题,并向所述数据分发组件申请共享内存通道,固定所申请的共享内存通道的数据主题为所订阅的数据主题;所述发布进程发布数据到数据所属数据主题对应的所有共享内存通道;所述接收进程定时查询所申请的共享内存通道中是否有数据,若有则接收所述共享内存通道中的数据;否则继续定时查询;其中,所述数据分发组件包括通道管理单元和模块ID管理单元,并且各进程携带有独立的进程ID,所述发布进程和接收进程加载数据分发组件时,所述数据分发组件自动完成通道管理单元初始化和模块ID管理单元初始化,其中:所述模块ID管理单元初始化包括:首次初始化时,申请模块管理共享内存,设置所述模块管理共享内存的布局,申请多个全局唯一的模块ID;非首次初始化时,挂接相应的模块管理共享内存,使用已申请的多个全局唯一的模块ID;所述模块管理共享内存的布局为内存地址从低到高依次为上次分配的模块ID、进程ID数组和模块状态数组,所述进程ID数组和模块状态数组的大小相同且与模块ID的个数相等,所述进程ID数组以模块ID-进程ID的格式进行存储,所述模块状态数组以模块ID-模块状态的格式进行存储;所述模块ID管理单元初始化后所述上次分配的模块ID初始化为0,进程ID数组初始化为空,模块状态数组初始化为空闲;所述通道管理单元初始化包括:首次初始化时,申请通道管理共享内存,设置所述通道管理共享内存的布局,申请多个全局唯一的通道ID;非首次初始化时,挂接相应的通道管理共享内存,使用已申请的多个全局唯一的通道ID;所述通道管理共享内存的布局为内存地址从低到高依次为上次分配的通道ID和通道信息数组,其中通道信息数组的大小与共享内存通道的数量相等,通道信息数组中的每个元素用于记录通道ID以及该共享内存通道的属性,所述共享内存通道的属性包括通道对应的共享内存Key、共享内存大小、信号量Key、数据主题ID、模块ID、订阅者线程ID、订阅者进程ID、通道使用状态和通道清理状态;所述通道管理单元初始化后所述上次分配的通道ID初始化为0,通道信息数组初始化为默认值。

全文数据:

权利要求:

百度查询: 中国电子科技集团公司第五十二研究所 一种基于共享内存的实时数据分发方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术