[發明專利]一種對緩沖隊列并發執行讀、寫訪問的方法和設備在審
| 申請號: | 201210035575.8 | 申請日: | 2012-02-16 |
| 公開(公告)號: | CN103257888A | 公開(公告)日: | 2013-08-21 |
| 發明(設計)人: | 陳虓將 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 緩沖 隊列 并發 執行 訪問 方法 設備 | ||
1.一種對緩沖隊列并發執行讀、寫訪問的方法,其特征在于,該方法包括:
在第一進程和第二進程并行對同一緩沖隊列分別發起寫訪問和讀訪問時,所述第一進程確定緩沖隊列的數據區中可進行寫操作的起始地址,并從所述寫操作的起始地址開始,依次將待存數據的數據長度和數據內容寫入緩沖隊列的數據區的連續空閑內存中;
所述第二進程確定緩沖隊列的數據區中可進行讀操作的起始地址,并從所述讀操作的起始地址開始,依次讀取數據。
2.如權利要求1所述的方法,其特征在于,所述第一進程確定緩沖隊列的數據區中可進行寫操作的起始地址,具體包括:
第一進程從緩沖隊列的頭部區中讀取該緩沖隊列的數據區最后一個有效字符所在地址與該數據區首地址之間的第一偏移量;
第一進程根據所述第一偏移量確定緩沖隊列的數據區中可進行寫操作的起始地址;
所述第二進程確定緩沖隊列的數據區中可進行讀操作的起始地址,具體包括:
第二進程從緩沖隊列的頭部區中讀取該緩沖隊列的數據區第一個有效字符所在地址與該數據區首地址之間的第二偏移量;
第二進程根據所述第二偏移量確定緩沖隊列的數據區中可進行讀操作的起始地址。
3.如權利要求2所述的方法,其特征在于,在寫操作執行完成后,所述方法還包括:
第一進程將本次寫操作執行完成后該緩沖隊列的數據區最后一個有效字符所在地址與該數據區首地址之間的第一偏移量,更新緩沖隊列的頭部區中已存儲的第一偏移量;
在讀操作執行完成后,所述方法還包括:
第二進程將本次讀操作執行完成后該緩沖隊列的數據區第一個有效字符所在地址與該數據區首地址之間的第二偏移量,更新緩沖隊列的頭部區中已存儲的第二偏移量。
4.如權利要求2所述的方法,其特征在于,在所述第一偏移量大于第二偏移量時,第一進程從所述寫操作的起始地址開始依次將待存數據寫入數據區的空閑內存中,具體包括:
第一進程從緩沖隊列的頭部區中讀取該緩沖隊列的數據區內存大小值,將該數據區內存大小值與第一偏移量的第一差值與存儲待存數據所需的內存大小值進行比較;
在所述第一差值不小于存儲待存數據所需的內存大小值時,第一進程從所述寫操作的起始地址開始依次將待存數據寫入數據區的空閑內存中;
否則,第一進程確定所述第一差值與第二偏移量之和,并將和值與存儲待存數據所需的內存大小值進行比較;
在所述和值不小于存儲待存數據所需的內存大小值時,第一進程從所述寫操作的起始地址開始依次寫入待存數據,并在寫至數據區尾地址時,再從數據區首地址繼續寫入待存數據;在所述和值小于存儲待存數據所需的內存大小值時,返回第一進程寫入操作失敗的結果。
5.如權利要求2所述的方法,其特征在于,在所述第一偏移量小于第二偏移量時,第一進程從所述寫操作的起始地址開始依次寫入待存數據,具體包括:
第一進程將第二偏移量與第一偏移量的第二差值與存儲待存數據所需的內存大小值進行比較;
在所述第二差值不小于存儲待存數據所需的內存大小值時,第一進程從所述寫操作的起始地址開始依次寫入待存數據;
否則,返回第一進程寫入操作失敗的結果。
6.如權利要求2所述的方法,其特征在于,所述方法還包括:
當第一偏移量和第二偏移量不滿足第一條件時,表示緩沖隊列不為空,允許第二進程對所述緩沖隊列執行讀操作,所述第一條件為第一偏移量和第二偏移量都為0;
當第一偏移量和第二偏移量不滿足第二條件時,表示緩沖隊列未存滿,允許第一進程對所述緩沖隊列執行寫操作,所述第二條件為第一偏移量和第二偏移量差值的絕對值不大于設定的字段長度。
7.一種對緩沖隊列并發執行讀、寫訪問的設備,其特征在于,該設備包括:
第一進程確定模塊,用于在第一進程對以緩沖隊列發起寫訪問時,確定緩沖隊列的數據區中可進行寫操作的起始地址;
第一進程寫訪問模塊,用于從第一進程確定模塊確定的所述寫操作的起始地址開始,依次將待存數據的數據長度和數據內容寫入緩沖隊列的數據區的連續空閑內存中;
第二進程確定模塊,用于在第二進程并行對以同一緩沖隊列發起讀訪問時,確定緩沖隊列的數據區中可進行讀操作的起始地址;
第二進程讀訪問模塊,用于從第二進程確定模塊確定的所述讀操作的起始地址開始,依次讀取數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210035575.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種提供顯示設備軟件運行狀態的方法和裝置
- 下一篇:一種輪胎側向力估算方法





