[發明專利]一種基于同步關系的并行動態數據競爭檢測系統無效
| 申請號: | 201310716720.3 | 申請日: | 2013-12-23 |
| 公開(公告)號: | CN103729291A | 公開(公告)日: | 2014-04-16 |
| 發明(設計)人: | 金海;邵志遠;彭建;黃能 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F9/44 |
| 代理公司: | 華中科技大學專利中心 42201 | 代理人: | 朱仁玲 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 同步 關系 并行 動態 數據 競爭 檢測 系統 | ||
1.一種基于同步關系的并行動態數據競爭檢測系統,其特征在于,包括過濾模塊、記錄模塊、向量時鐘計算模塊以及并行檢測模塊,其中:
所述過濾模塊用于監控線程的執行過程,截獲線程的內存訪問,過濾掉重復和不可能造成數據競爭的訪問,對訪問區間進行壓縮合并,最后將過濾后的訪存信息發送到所述記錄模塊;
所述記錄模塊用于建立待檢測程序的訪存記錄到外部記錄文件的映射關系,即將每個線程過濾后的訪存信息寫入到與之對應的外部文件中,同時負責編碼和壓縮所記錄的信息;
所述向量時鐘計算模塊用于為監控到的程序事件計算向量時鐘,計算方法采用經典的向量時鐘算法,所述并行檢測模塊利用計算所得向量時鐘判斷兩個事件是否可能同時發生;
所述并行檢測模塊用于并行檢測程序執行過程中是否實際發生了數據競爭,并在檢測到數據競爭后將結果匯總后報告給用戶。
2.根據權利要求1所述的基于同步關系的并行動態數據競爭檢測系統,其特征在于,所述過濾模塊基于下述過濾策略進行過濾和壓縮:(1)所有發生在兩次同步操作之間的內存訪問中,程序計算器、訪問地址、訪問寬度和訪問方式都相同的只被記錄一次;(2)對于每個線程,忽略其在當前活動記錄上的內存訪問;(3)將多個相互兼容的訪問區間合并成一個大的等價區間。
3.根據權利要求1或2所述的基于同步關系的并行動態數據競爭檢測系統,其特征在于,所述記錄模塊將每個線程過濾后的訪存信息寫入到與之對應的記錄文件,每個線程與記錄文件有一一對應的關系,給定一個線程可以直接獲取其對應的記錄文件,反之給定一個記錄文件可以直接獲取其對應的線程號。
4.根據權利要求1至3任一項所述的基于同步關系的并行動態數據競爭檢測系統,其特征在于,在所述記錄文件中,每個并行區對應一個目錄,目錄以“并行區號+創建并行區的線程號”命名,并行區內的每個線程對應這個目錄下的一個文件,文件直接以線程號命名。
5.根據權利要求1至4任一項所述的基于同步關系的并行動態數據競爭檢測系統,其特征在于,所述向量時鐘計算模塊從所述記錄文件中讀入每個線程的訪存記錄,并將其分割成同步塊;所述向量時鐘計算模塊采用經典向量時鐘算法為每個同步塊計算向量時鐘值,同步塊中的所有內存訪問具有同一向量時鐘;通過比較兩個同步塊的時鐘向量可以得到兩個同步塊A,B的先后發生關系,所述關系包括A->B,B->A,A|B,其中->表示左邊先于右邊發生,|表示兩者同時發生,只有兩個同步塊具有|關系時才可能發生數據競爭。
6.根據權利要求5所述的基于同步關系的并行動態數據競爭檢測系統,其特征在于,所述并行檢測模塊逐個對比所有同步塊對A,B,如果A|B,那么A,B可能包含數據競爭,否則不可能有競爭;為進一步檢測A,B是否包含競爭,所述并行檢測模塊將問題抽象成區間重疊問題,即將每個訪存操作抽象成一個區間,區間起始地址為訪存地址,區間寬度為訪問寬度;如果存在區間S1∈A,S2∈B,S1與S2重疊并且S1與S2至少有一個是寫操作,則可判定A,B之間有數據競爭;為利用多核硬件或者分布式計算系統加速檢測過程,每次上述檢測過程可由一個線程或分布式系統節點來完成,所有同步塊對的檢測可以并行進行;檢測到的數據競爭競爭可根據PC對應到源程序的文件名和行號。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310716720.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種跨主機、跨平臺的遠程命令調用方法和系統
- 下一篇:一種COD在線分析儀





