[發明專利]一種基于共享內存的實時數據分發方法及裝置在審
| 申請號: | 202011194540.X | 申請日: | 2020-10-30 |
| 公開(公告)號: | CN112463400A | 公開(公告)日: | 2021-03-09 |
| 發明(設計)人: | 吳道廣;葛劍峰;錢穎麒;強龍飛 | 申請(專利權)人: | 中國電子科技集團公司第五十二研究所 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 杭州君度專利代理事務所(特殊普通合伙) 33240 | 代理人: | 楊天嬌 |
| 地址: | 311100 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 共享 內存 實時 數據 分發 方法 裝置 | ||
1.一種基于共享內存的實時數據分發方法,用于多進程間的數據分發,多進程中用于發布數據的為發布進程,用于接收數據的為接收進程,其特征在于,所述基于共享內存的實時數據分發方法,包括:
所述發布進程和接收進程加載數據分發組件,所述數據分發組件申請有多個共享內存通道,每個共享內存通道用于一個數據主題的數據分發;
所述接收進程訂閱感興趣的數據主題,并向所述數據分發組件申請共享內存通道,固定所申請的共享內存通道的數據主題為所訂閱的數據主題;
所述發布進程發布數據到數據所屬數據主題對應的所有共享內存通道;
所述接收進程定時查詢所申請的共享內存通道中是否有數據,若有則接收所述共享內存通道中的數據;否則繼續定時查詢。
2.如權利要求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,通道信息數組初始化為默認值。
3.如權利要求2所述的基于共享內存的實時數據分發方法,其特征在于,所述發布進程和接收進程加載數據分發組件后,模塊ID管理單元為每一進程分配各自的模塊ID,并更新上次分配的模塊ID、進程ID數組和模塊狀態數組。
4.如權利要求2所述的基于共享內存的實時數據分發方法,其特征在于,所述共享內存通道中包含一個共享內存隊列,所述共享內存隊列為FIFO隊列,所述共享內存隊列的列頭Head指針記錄第一包數據包頭的相對指針,所述共享內存隊列的列尾Tail指針記錄最后一包數據包頭的相對指針,所述相對指針為相對于共享內存通道的起始地址的偏移量。
5.如權利要求4所述的基于共享內存的實時數據分發方法,其特征在于,所述發布進程發布數據到數據所屬數據主題對應的所有共享內存通道,包括:
掛接所述通道管理共享內存;
基于所述通道管理共享內存獲取固定為指定數據主題的所有共享內存通道的通道ID;
根據所述通道ID判斷對應的通道信息數組中的通道清理狀態是否為待清理,清理所有通道清理狀態為待清理的共享內存通道;
動態掛接剩余的共享內存通道中的共享內存隊列;
發送數據至每一共享內存隊列中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國電子科技集團公司第五十二研究所,未經中國電子科技集團公司第五十二研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011194540.X/1.html,轉載請聲明來源鉆瓜專利網。





