[發(fā)明專利]實現(xiàn)內(nèi)存共享的方法、電子設(shè)備和共享內(nèi)存數(shù)據(jù)管理庫在審
| 申請?zhí)枺?/td> | 202010219116.X | 申請日: | 2020-03-25 |
| 公開(公告)號: | CN111506436A | 公開(公告)日: | 2020-08-07 |
| 發(fā)明(設(shè)計)人: | 肖玉科;張楊敏 | 申請(專利權(quán))人: | 炬星科技(深圳)有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 深圳協(xié)成知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 44458 | 代理人: | 章小燕 |
| 地址: | 518000 廣東省深圳市南山區(qū)粵海街道*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 實現(xiàn) 內(nèi)存 共享 方法 電子設(shè)備 數(shù)據(jù)管理 | ||
本發(fā)明公開實現(xiàn)內(nèi)存共享的方法、電子設(shè)備和共享內(nèi)存數(shù)據(jù)管理庫。實現(xiàn)內(nèi)存共享的方法,包括:分配共享內(nèi)存數(shù)據(jù)池,所述數(shù)據(jù)池可供多進程訪問;將所述數(shù)據(jù)池劃分成若干最小共享數(shù)據(jù)單元;內(nèi)存管理模塊在接收到進程的讀/寫請求時對最小共享數(shù)據(jù)單元的操作加鎖,多進程并發(fā)地申請持有讀寫鎖進行操作;所述內(nèi)存管理模塊在執(zhí)行完進程的讀/寫操作后解除該讀寫鎖。對共享內(nèi)存數(shù)據(jù)池進行小塊(小顆粒)劃分,針對每個小顆粒共享數(shù)據(jù)加鎖和同步,實現(xiàn)了多并發(fā)的效果,減少多進程相互等待,提高整體通信效率。
技術(shù)領(lǐng)域
本公開涉及計算機技術(shù)領(lǐng)域,尤其涉及實現(xiàn)內(nèi)存共享的方法、電子設(shè)備和共享內(nèi)存數(shù)據(jù)管理庫。
背景技術(shù)
基于Linux或者類Unix的機器人系統(tǒng)下,共享內(nèi)存是常見的進程間通信方式,一個共享內(nèi)存段被kernel創(chuàng)建,并且映射到用戶態(tài)進程的數(shù)據(jù)段。使用共享內(nèi)存通信最大的好處是效率很高,因為進程可以直接讀寫內(nèi)存,而不需要任何數(shù)據(jù)的拷貝。但是,在多個進程使用共享內(nèi)存通信的時候,會涉及到讀寫數(shù)據(jù)的同步和互斥,而目前通用的做法是直接對整個共享內(nèi)存數(shù)據(jù)管理庫或數(shù)據(jù)池進行加鎖,那么在某一時間點上,只能由一個進程對此共享數(shù)據(jù)進行修改,其他進程只能阻塞等待,導(dǎo)致整體通信效率底下。
發(fā)明內(nèi)容
本公開的一個主要目的在于克服上述現(xiàn)有技術(shù)的至少一種缺陷,提供實現(xiàn)內(nèi)存共享的方法、電子設(shè)備和共享內(nèi)存數(shù)據(jù)管理庫。
根據(jù)本發(fā)明的第一個方面,提供實現(xiàn)內(nèi)存共享的方法,所述方法包括:
分配共享內(nèi)存數(shù)據(jù)池,所述數(shù)據(jù)池可供多進程訪問;
將所述數(shù)據(jù)池劃分成若干最小共享數(shù)據(jù)單元;
內(nèi)存管理模塊在接收到進程的讀/寫請求時對最小共享數(shù)據(jù)單元的操作加鎖,多進程并發(fā)地申請持有讀寫鎖進行操作;所述內(nèi)存管理模塊在執(zhí)行完進程的讀/寫操作后解除該讀寫鎖。
在本發(fā)明的一個實施例中,所述最小共享數(shù)據(jù)單元用于存儲通用模型的數(shù)據(jù),所述通用模型根據(jù)不同數(shù)據(jù)類型的具體數(shù)據(jù)抽象而成。
在本發(fā)明的一個實施例中,所述方法還包括:
參與跨進程通信的服務(wù)端寫入數(shù)據(jù);
參與跨進程通信的客戶端讀取數(shù)據(jù),所述客戶端的數(shù)量為多個。
在本發(fā)明的一個實施例中,所述數(shù)據(jù)池的尺寸由系統(tǒng)預(yù)設(shè)或由用戶設(shè)置,所述最小共享數(shù)據(jù)單元的塊顆粒度越小,則所述數(shù)據(jù)池的粒度越小,則共享效率越高。
在本發(fā)明的一個實施例中,當(dāng)所述讀/寫操作為針對第一最小共享數(shù)據(jù)單元的寫操作時,所述服務(wù)端申請持有讀寫鎖,若申請成功,所述服務(wù)端進行寫操作,在寫操作完成后釋放讀寫鎖,將準備條件廣播通知所有客戶端;所述服務(wù)端繼續(xù)申請持有第二最小共享數(shù)據(jù)單元的讀寫鎖,并同理操作。
在本發(fā)明的一個實施例中,若所述服務(wù)端申請持有讀寫鎖失敗,則使寫操作進入等待狀態(tài)。
在本發(fā)明的一個實施例中,當(dāng)所述讀/寫操作為第一客戶端接收到所述廣播通知后,針對第一最小共享數(shù)據(jù)單元的讀操作時,所述第一客戶端申請持有讀寫鎖,若申請成功,所述第一客戶端進行讀操作,并在讀操作完成后釋放讀寫鎖;若第一客戶端申請持有讀寫鎖失敗,則使讀操作進入等待狀態(tài);
同時,當(dāng)所述讀/寫操作為第M客戶端接收到所述廣播通知后,針對第N最小共享數(shù)據(jù)單元的讀操作時,所述第M客戶端申請持有讀寫鎖,并同理操作。
在本發(fā)明的一個實施例中,所述內(nèi)存管理模塊使用二維數(shù)組記錄多個具有唯一標(biāo)識的所述最小共享數(shù)據(jù)單元的讀寫鎖訪問狀態(tài)。
根據(jù)本發(fā)明的第二個方面,提供電子設(shè)備,所述電子設(shè)備包括一個或多個處理器,所述處理器被配置為執(zhí)行如上述的實現(xiàn)內(nèi)存共享的方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于炬星科技(深圳)有限公司,未經(jīng)炬星科技(深圳)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010219116.X/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 互動業(yè)務(wù)終端、實現(xiàn)系統(tǒng)及實現(xiàn)方法
- 街景地圖的實現(xiàn)方法和實現(xiàn)系統(tǒng)
- 游戲?qū)崿F(xiàn)系統(tǒng)和游戲?qū)崿F(xiàn)方法
- 圖像實現(xiàn)裝置及其圖像實現(xiàn)方法
- 增強現(xiàn)實的實現(xiàn)方法以及實現(xiàn)裝置
- 軟件架構(gòu)的實現(xiàn)方法和實現(xiàn)平臺
- 數(shù)值預(yù)報的實現(xiàn)方法及實現(xiàn)系統(tǒng)
- 空調(diào)及其冬眠控制模式實現(xiàn)方法和實現(xiàn)裝置以及實現(xiàn)系統(tǒng)
- 空調(diào)及其睡眠控制模式實現(xiàn)方法和實現(xiàn)裝置以及實現(xiàn)系統(tǒng)
- 輸入設(shè)備實現(xiàn)方法及其實現(xiàn)裝置





