[發明專利]一種進程間通訊的方法及裝置在審
| 申請號: | 201611069320.8 | 申請日: | 2016-11-29 |
| 公開(公告)號: | CN106648928A | 公開(公告)日: | 2017-05-10 |
| 發明(設計)人: | 朱晨 | 申請(專利權)人: | 成都廣達新網科技股份有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 成都九鼎天元知識產權代理有限公司51214 | 代理人: | 徐靜 |
| 地址: | 610041 四川省成都市高新區*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 進程 通訊 方法 裝置 | ||
技術領域
本發明涉及嵌入式操作系統進程間通訊領域,尤其是一種進程間通訊的方法及裝置。
背景技術
目前的數通設備上運行的操作系統一般是以LINUX內核為核心結合各廠商自己的系統管理和應用程序組建而成的。整個系統在設計上往往會用到多進程的軟件架構,如此也就不可避免的有進程間通訊的需求。在整個軟件系統當中,如果進程間通訊的需求非常普遍,在系統平臺角度就很有必要提供一套通用、便捷、可靠、高效的進程間通訊機制供上層軟件開發使用。而不是讓上層軟件在每當有進程間通訊需求時直接使用LINUX提供的各種豐富的系統調用來實現。
上層軟件開發直接使用系統調用實現進程間通訊的缺點是顯而易見的:
一、涉及進程間通訊的軟件開發需要熟悉操作系統的各種機制,開發上有一定難度,開發人員獨立開發,系統整體的質量難以保證;
二、開發人員獨立為自己開發的模塊開發進程間通訊的機制,從整體上看也是開發工作的重復投入;
三、會增加后期軟件維護的難度,因為重復投入之后系統中往往會存在大量功能類似卻實現各不相同的的冗余代碼。
發明內容
本發明所要解決的技術問題是:針對現有技術存在的問題,提供一種進程間通訊的方法及裝置,在使用基于流的UNIX域套接字將各進程組建為星形通訊拓撲的基礎上(如圖1所示),用遠程過程調用的形式(如圖2所示)實現任意兩個進程間的消息傳遞。供平臺之上的軟件開發使用。
本發明采用的技術方案如下:
一種進程間通訊的方法包括:
通訊拓撲建立步驟,設置n個進程,每個進程靜態設置唯一標識的進程ID;選擇一個進程作為通訊拓撲中SERVER端;其余n-1個進程分別對應作為n-1個CLIENT端;n個進程創建基于流的UNIX域套接字并綁定自身的SOCK PATH標識,SERVER端進入偵聽并接受CLIENT端發起的連接,CLIENT端周期性向SERVER端發起連接直到連接建立為止;SERVER端靠接受連接時獲取對端的CLIENT端的SOCK PATH標識識別出對端的CLIENT端進程ID;SERVER和CLIENT端都為自己保存已連接進程記錄;
其中進程間通訊采用遠程過程調用(RPC)的形式:
基于通訊拓撲建立步驟建立的通信拓撲,任意一個進程可以作為源進程發送請求消息,期望應答的目的進程是除源進程以外的任意進程;目的進程接收到請求消息后執行請求回調函數完成本次請求的響應,然后可選的向源進程發送應答消息(根據請求消息中的應答標志位)從而完成一次會話;
上層軟件在源進程發送請求時要指定:目的進程ID、操作碼、超時參數、發送的消息體、請求類型,若是同步請求還要指定承載應答消息的BUFFER,若是異步請求要可選的給出應答處理回調函數和回調參數;當異步請求不指定應答處理回調函數時,應答屬性就是無需應答,否則就是需要應答,所有的同步請求應答屬性都是需要應答;上層軟件在設計時如果期望某個進程響應某種請求操作碼,就要提前在該進程內注冊該操作碼對應的請求回調函數;請求類型指的是同步請求或者異步請求;
進一步的,請求回調函數的返回值和參數如下:
請求回調函數由上層軟件定,用于在一個進程內響應某種操作碼對應的請求,在一個進程中,一個操作碼對應一個請求回調函數,函數返回值0表示執行成功,非0表示相應的錯誤;請求回調函數的入參包括:請求源進程ID、操作碼、請求消息載荷指針、請求消息載荷長度;出參包括:應答載荷指針、應答載荷長度;根據權利要求1所述的一種進程間通訊的方法,其特征在于進程間傳遞的消息格式為:
消息格式由消息頭和消息載荷兩部分組成,如圖3所示:消息頭包括16bit目的進程ID、16bit源進程ID、32bit序列號、16bit操作碼、16bit應答錯誤碼、16bit消息長度、1bit類型標志位、1bit應答標志位、14bit保留位;其中類型標志位為0時表示消息類型是請求,為1時表示消息類型是應答;應答標志位僅當類型標志位為0時有意義,為1表示請求消息需要應答,為0表示請求消息不需要應答;應答錯誤碼僅當類型標志位為1時有意義,當類型標志位為0時,應答錯誤碼取值為0;消息長度表示消息頭加載荷的整體消息長度;消息載荷部分長度不定,范圍是0到65519字節;
所述應答處理回調函數的返回值和參數如下:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都廣達新網科技股份有限公司,未經成都廣達新網科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611069320.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:異常信息收集方法及服務器
- 下一篇:一種開關系統及開關模式實現方法





