[發明專利]一種基于軟件事務內存的并發缺陷規避系統及方法有效
| 申請號: | 201611218952.6 | 申請日: | 2016-12-26 |
| 公開(公告)號: | CN106874074B | 公開(公告)日: | 2020-05-05 |
| 發明(設計)人: | 禹振;蘇小紅;王甜甜;趙玲玲 | 申請(專利權)人: | 哈爾濱工業大學 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F11/14 |
| 代理公司: | 哈爾濱龍科專利代理有限公司 23206 | 代理人: | 高媛 |
| 地址: | 150000 黑龍*** | 國省代碼: | 黑龍江;23 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 軟件 事務 內存 并發 缺陷 規避 系統 方法 | ||
1.一種基于軟件事務內存的并發缺陷規避系統,其特征在于所述基于軟件事務內存的并發缺陷規避系統由事務自動劃分模塊TPM、可回滾內存模塊RMM、可回滾I/O模塊RIOM、條件變量處理模塊CVHM和加鎖解鎖處理模塊LUHM5個模塊構成,其中:
所述事務自動劃分模塊TPM用于劫持線程間操作,利用它們動態地對目標程序進行自動事務劃分,并調用可回滾執行模塊REM和事務執行模塊TEM來對事務進行管理,自動事務劃分的具體步驟如下:
(1)通過指派線程間操作作為事務的邊界來自動進行事務劃分;
(2)通過將事務內的所有內存訪問都視為共享訪問來自動確定哪些訪問是共享訪問;
(3)通過置加鎖解鎖操作為空操作與定制條件變量wait/signal操作來自動改變代碼的控制結構;
所述事務執行模塊TEM用于執行在啟動、提交和撤銷事務時需要執行的邏輯,具體功能如下:
(1)事務
(2)事務
(3)事務
所述可回滾執行模塊REM用于在事務啟動/撤銷時保存/恢復事務所在線程的棧幀和CPU寄存器值,具體功能如下:
(1)在啟動事務
(2)在事務
(3)在事務
(4)重寫所有基本C/C++內存分配回收操作,使得RMM能夠像回滾任何對堆內存或者全局內存的內存訪問操作那樣回滾內存分配操作;
所述可回滾內存模塊RMM用于劫持所有內存訪問操作,并綜合利用進程繼承機制、內存映射機制、進程層面的內存保護機制和信號處理機制來使得這些操作具有可回滾化的執行效應;
所述可回滾I/O模塊RIOM用于劫持所有常用的操作系統級別和C語言級別的I/O操作,并利用虛擬文件系統和文件流到文件描述符映射使得這些操作具有可回滾化的執行效應,具體功能如下:
(1)創建并維護一個線程間的全局虛擬文件系統和一個全局文件流到文件描述符映射SDM;
(2)在事務
(3)在事務
(4)在事務
所述條件變量處理模塊CVHM用于劫持所有條件變量操作,在用戶空間重新實現條件變量信號發送和等待邏輯,具體功能如下:
當事務
所述加鎖解鎖處理模塊LUHM用于劫持所有加鎖解鎖操作,劫持所有關于鎖的初始化/銷毀操作和屬性設置/獲取操作,并將它們置為空操作。
2.一種基于軟件事務內存的并發缺陷規避方法,其特征在于所述基于軟件事務內存的并發缺陷規避方法的步驟如下:
一、通過劫持每個線程的線程間操作并將它們之間的代碼劃分為事務,實現對目標程序的自動事務劃分,具體步驟如下:
(1)通過指派線程間操作作為事務的邊界來自動進行事務劃分;
(2)通過將事務內的所有內存訪問都視為共享訪問來自動確定哪些訪問是共享訪問;
(3)通過置加鎖解鎖操作為空操作與定制條件變量wait/signal操作來自動改變代碼的控制結構;
二、通過替代線程以進程、利用進程間虛擬內存保護機制并定制內存分配回收邏輯,實現內存事務化,具體步驟如下:
(1)在啟動事務
(2)在事務
(3)在事務
(4)重寫所有基本C/C++內存分配回收操作,使得RMM能夠像回滾任何對堆內存或者全局內存的內存訪問操作那樣回滾內存分配操作;
三、通過在啟動/撤銷事務時保存/恢復當前線程的棧幀和CPU寄存器值,實現執行流的可回滾化,具體步驟如下:
(1)在事務
(2)在事務
四、通過建立和維護虛擬文件系統,并將I/O操作重定向到它們上,實現I/O事務化,具體步驟如下:
(1)創建并維護一個線程間的全局虛擬文件系統和一個全局文件流到文件描述符映射SDM;
(2)在事務
(3)在事務
(4)在事務
五、通過置空加鎖解鎖操作、定制條件變量操作和事務性地提交內存與I/O變更,實現對死鎖、數據競爭、原子性違背和順序違背的有效規避,其中:
實施定制條件變量操作的具體步驟如下:
(1)在用戶空間重新實現條件變量的數據結構;
(2)在事務
實施置空加鎖解鎖操作的具體步驟如下:
(1)劫持所有加鎖解鎖操作;
(2)劫持所有關于鎖的初始化/銷毀操作和屬性設置/獲取操作;
(3)將劫持到的操作置為空操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于哈爾濱工業大學,未經哈爾濱工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611218952.6/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種紡織用斷紗檢測裝置
- 下一篇:一種基于纖維在紗條中排列的羅拉牽伸模擬方法





