[發明專利]一種基于共享內存的實時數據分發方法及裝置在審
| 申請號: | 202011194540.X | 申請日: | 2020-10-30 |
| 公開(公告)號: | CN112463400A | 公開(公告)日: | 2021-03-09 |
| 發明(設計)人: | 吳道廣;葛劍峰;錢穎麒;強龍飛 | 申請(專利權)人: | 中國電子科技集團公司第五十二研究所 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 杭州君度專利代理事務所(特殊普通合伙) 33240 | 代理人: | 楊天嬌 |
| 地址: | 311100 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 共享 內存 實時 數據 分發 方法 裝置 | ||
本發明公開了一種基于共享內存的實時數據分發方法及裝置,方法包括:發布進程和接收進程加載數據分發組件,數據分發組件申請有多個共享內存通道,每個共享內存通道用于一個數據主題的數據分發;接收進程訂閱感興趣的數據主題,并向數據分發組件申請共享內存通道,固定所申請的共享內存通道的數據主題為所訂閱的數據主題;發布進程發布數據到數據所屬數據主題對應的所有共享內存通道;接收進程定時查詢所申請的共享內存通道中是否有數據,若有則接收所述共享內存通道中的數據;否則繼續定時查詢。本發明減少數據分發過程中的拷貝次數,通用性強。
技術領域
本申請屬于計算機通信技術領域,具體涉及一種基于共享內存的實時數據分發方法及裝置。
背景技術
由于CPU單核性能提升有限,因此目前高性能CPU設計向著多核多線程發展,應用程序為了更高效地利用CPU資源,同時為了避免因單個進程崩潰導致應用程序提供的業務停止,通常選用基于多進程開發的應用程序架構作為復雜應用程序的首選架構。與單進程多線程應用程序不同的是:多進程應用程序的進程間數據空間隔離不能像多線程架構一樣直接共享數據。因此多進程架構應用程序需要高效的消息傳遞以及數據分發機制。多進程架構應用程序間的通信依賴操作系統底層通信機制,通常操作系統底層通信機制為兼顧通用性功能較為簡單,要實現復雜數據分發機制,尤其涉及到支持一對一、一對多、多對一和多對多數據分發時,需要設計一套復雜數據交互機制。
目前常見的多進程架構的應用程序間數據分發方法有基于TCP/IP網絡通信與自定義協議相結合方式實現,有基于消息總線(如DDS中間件)方式實現,也有基于操作系統提供的消息隊列實現消息發送和讀取,完成一對一、多對一的數據分發。
但是現有技術在性能、實時性和通用性上存在不少缺點。基于TCP/IP網絡通信與自定義協議的實現性能受限于操作系統網絡協議棧的實現,單機內部使用網絡通信性能較低;接收模塊和發送模塊的IP和端口信息無法實時共享,需要設計轉發模塊,數據在收發模塊和轉發模塊之間多次拷貝,通信效率低、時延大,不能滿足實時性要求較高的使用場合(如機器人運動控制、自動駕駛控制);自定義通信協議缺乏規范和標準,通常與應用框架耦合性很高,通用性較差。
基于消息總線(如DDS中間件)實現的數據分發一般多用于多機之間數據收發,也是基于TCP/IP協議實現,同樣存在實時性問題和性能問題,且該類中間件實現復雜,依賴庫眾多,是重量級消息總線,無法簡單應用到實時性要求高的嵌入式系統中。
基于操作系統提供的消息隊列實現數據分發的方式,消息隊列對單個消息的數據長度有限制,修改長度限制需要對操作系統內核參數進行配置,難以形成通用框架;更重要的是消息隊列僅支持一對一,多對一的數據分發,不能實現一對多、多對多的數據收發;操作系統實現的消息隊列,在用戶空間和內核空間存在四次內存拷貝,通信效率低。消息隊列發送和接收四次數據拷貝過程如圖1所示,消息發送時通過系統調用將用戶緩存拷貝內核緩存,從內核緩存拷貝到消息隊列,消息接收時從消息隊列拷貝消息到內核緩存并從內核緩存通過系統調用拷貝至接收用戶緩存。
發明內容
本申請的目的在于一種基于共享內存的實時數據分發方法及裝置,減少數據分發過程中的拷貝次數,通用性強。
為實現上述目的,本申請所采取的技術方案為:
一種基于共享內存的實時數據分發方法,用于多進程間的數據分發,多進程中用于發布數據的為發布進程,用于接收數據的為接收進程,所述基于共享內存的實時數據分發方法,包括:
所述發布進程和接收進程加載數據分發組件,所述數據分發組件申請有多個共享內存通道,每個共享內存通道用于一個數據主題的數據分發;
所述接收進程訂閱感興趣的數據主題,并向所述數據分發組件申請共享內存通道,固定所申請的共享內存通道的數據主題為所訂閱的數據主題;
所述發布進程發布數據到數據所屬數據主題對應的所有共享內存通道;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國電子科技集團公司第五十二研究所,未經中國電子科技集團公司第五十二研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011194540.X/2.html,轉載請聲明來源鉆瓜專利網。





