[發明專利]一種基于多核無鎖環形緩沖區的共生虛擬機通信方法有效
| 申請號: | 201611245529.5 | 申請日: | 2016-12-29 |
| 公開(公告)號: | CN106790599B | 公開(公告)日: | 2019-06-28 |
| 發明(設計)人: | 任怡;游資奇;吳慶波;戴華東;譚郁松;劉仁仕;陽國貴 | 申請(專利權)人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L12/24;G06F9/455 |
| 代理公司: | 湖南兆弘專利事務所(普通合伙) 43008 | 代理人: | 趙洪;譚武藝 |
| 地址: | 410073 *** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 多核 環形 緩沖區 共生 虛擬機 通信 方法 | ||
1.一種基于多核無鎖環形緩沖區的共生虛擬機通信方法,其特征在于實施步驟包括:
1)預先在共享內存中申請固定大小的緩沖區,將所述緩沖區等分劃分為元數據區域,指定一個元數據區域存儲緩沖區的描述信息以及緩沖區的標識變量,將其余的元數據區域在邏輯上組織成環形得到多核無鎖環形緩沖區;當共生虛擬機需要通信時,跳轉執行步驟2);所述緩沖區的標識變量包括全局尾指針back、全局讀指針front_r、全局寫指針front_w和局部變量local_read[0...N-1],其中N為CPU核心個數,每一個局部變量對應一個CPU并用于記錄該CPU對應的讀或者寫的首地址,且所述多核無鎖環形緩沖區的每次讀寫任務都由一個CPU完成;
2)通信發送方作為寫者,往多核無鎖環形緩沖區中寫通信數據,且同一時刻只允許一個寫者執行寫操作;
3)通信接收方作為讀者,讀者讀取多核無鎖環形緩沖區中的通信數據,且多個讀者可并發執行讀取操作。
2.根據權利要求1所述的基于多核無鎖環形緩沖區的共生虛擬機通信方法,其特征在于,步驟1)中將所述緩沖區等分劃分為元數據區域具體是指通過對緩沖區的內存地址的取余操作將所述緩沖區等分劃分為元數據區域。
3.根據權利要求1所述的基于多核無鎖環形緩沖區的共生虛擬機通信方法,其特征在于,步驟2)中寫者往多核無鎖環形緩沖區中寫通信數據的詳細步驟包括:
2.1)檢查緩沖區剩余空間remain_size是否大于通信數據的數據長度data_len,如果小于通信數據的數據長度data_len,則直接結束退出;否則,跳轉執行下一步;
2.2)比較所有讀者對應的局部變量local_read[i]與back,若存在某個讀者i的局部變量local_read[i]使得式(1)成立且該局部變量local_read[i]不等于0,則循環等待跳轉執行步驟2.2);否則,跳轉執行步驟2.3);
back + data_len >= local_read[i] + RING_SIZE (1)
式(1)中,back表示全局尾指針back的地址,data_len表示通信數據的數據長度,local_read[i]表示讀者i的局部變量,RING_SIZE表示緩沖區的空間大小;
2.3)將通信數據拷貝至緩沖區起始位置為back,長度為data_len的區域,其中back表示全局尾指針back的地址,data_len表示通信數據的數據長度。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍國防科學技術大學,未經中國人民解放軍國防科學技術大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611245529.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:全自動TRAY盤擺放機
- 下一篇:自動鏈道生產組件鋪設站





