[發明專利]用于多進程之間通信的方法、設備及系統在審
| 申請號: | 202010778905.7 | 申請日: | 2020-08-05 |
| 公開(公告)號: | CN111897666A | 公開(公告)日: | 2020-11-06 |
| 發明(設計)人: | 劉偉;靳江明 | 申請(專利權)人: | 北京圖森未來科技有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京律盟知識產權代理有限責任公司 11287 | 代理人: | 林彥 |
| 地址: | 101300 北京市順*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 進程 之間 通信 方法 設備 系統 | ||
本發明涉及一種用于多進程之間通信的方法、設備及系統。在一些實施例中,所述方法包括:向操作系統申請文件描述符;建立所述文件描述符與共享內存之間的映射關系;將所述映射關系存儲在共享內存管理模塊中;以及將所述文件描述符發送給接收者模塊。本發明的方案解決現有共享內存技術中由于進程意外退出所導致的系統安全性問題,且實現了對共享內存生命周期的管理并保證了通知機制的健壯性。
技術領域
本發明涉及計算機技術領域,特別是涉及一種用于多進程之間通信的方法、設備及系統。
背景技術
隨著計算機技術的飛速發展和人們對應用程序的要求越來越高,單進程程序在許多場合已經不能滿足人們的需求,編寫多進程、多線程程序成為現代程序設計的一個重要的特點。在多進程程序設計中,進程間通信是不可避免的。進程間進行通信,不可避免的需要進行大數據塊的傳遞。
共享內存允許兩個或多個進程共享給定的內存區域。由于進程可以直接讀寫內存,而不需要任何數據的拷貝,因此共享內存是一種進程間通信(簡稱IPC,Inter-ProcessCommunication)的有效機制,尤其是在具有多個接收器的情況下。并且,減少的數據拷貝量可以大大降低存儲器所需的吞吐量。
盡管基于共享內存的方法可提高性能且減少內存訪問,但它通常會導致系統安全問題。例如,在進程意外退出時共享內存無法釋放,從而會浪費系統資源。更嚴重的是,在某些實現中,會將用于同步功能的鎖放置在共享內存中。該用于同步功能的鎖是具有狀態的量,當進程需要使用共享內存的資源時,其進行加鎖操作,在使用完成后,其進行解鎖操作。如果進程在使用共享內存的過程中意外退出,那么該用于同步功能的鎖就進入鎖定狀態,此后,如果有另一進程需要使用共享內存的資源,則該進程將不能完成加鎖操作。這種情況也被稱為“鎖不一致”。即,進程的意外退出會使得鎖處于不一致狀態,使得其他和該共享內存相關的進程被鎖住,永遠不能獲得該共享內存的資源。對于實時性要求比較嚴格的無人駕駛系統而言,該問題會嚴重影響無人駕駛系統的穩定性和安全性。
發明內容
為了解決上述技術問題,本發明實施例公開了如下技術方案:
在一方面中,本發明提供一種用于多進程之間通信的方法,包括:向操作系統申請文件描述符;建立所述文件描述符與共享內存之間的映射關系;將所述映射關系存儲在共享內存管理模塊中;以及將所述文件描述符發送給接收者模塊。
可選地,所述方法進一步包括:在將所述文件描述符發送給接收者模塊之前,向所述操作系統申請unix網絡套接字;以及將所述unix網絡套接字存儲在通知模塊中。
可選地,將所述文件描述符發送給接收者模塊包括:將所述文件描述符通過所述通知模塊中的unix網絡套接字發送給所述接收者模塊。
可選地,所述unix網絡套接字是抽象unix域套接字。
可選地,所述方法進一步包括:在將所述文件描述符發送給接收者模塊之后,向所述操作系統申請共享內存中的內存空間;將數據存儲在所述內存空間中;以及將所述內存空間的描述信息發送給所述接收者模塊。
可選地,所述內存空間的描述信息包括所述內存空間的相對起始位置的偏移量和大小。
可選地,將所述內存空間的描述信息發送給所述接收者模塊包括:將所述內存空間的描述信息通過所述通知模塊中的unix網絡套接字發送給所述接收者模塊。
在另一方面中,本發明提供一種用于多進程之間通信的方法,包括:從發送者模塊接收文件描述符;將所述文件描述符映射為共享內存;關閉所述文件描述符;以及在共享內存管理模塊中保存所述共享內存的信息。
可選地,所述方法進一步包括:在從發送者模塊接收文件描述符之前,向所述操作系統申請unix網絡套接字;以及將所述unix網絡套接字存儲在通知模塊中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京圖森未來科技有限公司,未經北京圖森未來科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010778905.7/2.html,轉載請聲明來源鉆瓜專利網。





