[發明專利]基于靜態共享變量識別的動態數據競爭檢測方法有效
| 申請號: | 201110103794.0 | 申請日: | 2011-04-25 |
| 公開(公告)號: | CN102760095A | 公開(公告)日: | 2012-10-31 |
| 發明(設計)人: | 鄭緯民;盛田維;陳文光;蔣運韞 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 王瑩 |
| 地址: | 100084 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 靜態 共享 變量 識別 動態 數據 競爭 檢測 方法 | ||
1.一種基于靜態共享變量識別的動態數據競爭檢測方法,其特征在于,包括以下步驟:
S1:識別待檢測程序的共享變量;
S2:對所述待檢測程序中包含共享變量的基本塊進行數據競爭檢測插裝和采樣,得到所述待檢測程序經插裝和采樣后的二進制代碼,所述基本塊是指一個連續的程序語句序列,控制流從它的開始進入,并從它的末尾離開,中間沒有中斷或者分支;
S3:運行所述二進制代碼動態檢測所述待檢測程序中的數據競爭。
2.如權利要求1所述的基于靜態共享變量識別的動態數據競爭檢測方法,其特征在于,所述步驟S1具體包括:
S1.1:讀取所述待檢測程序的源代碼,為源代碼中的每一個函數建立函數信息,對所有函數根據其調用關系建立一個不完整的函數調用圖,不完整的函數調用關系圖不包括函數中指針的調用關系;
S1.2:對函數進行上下文敏感的指針分析,并構建完整函數調用圖,指針分析的結果為每一個函數建立一個指針別名圖。指針別名圖的結點代表該函數中可以訪問的內存空間,邊代表結點之間的指向關系,指針分析還需要建立函數調用者指針和被調用者指針的指向圖之間的關系;
S1.3:采用自底向上的方式遍歷線程間完整的函數調用圖,識別出共享變量。
3.如權利要求2所述的基于靜態共享變量識別的動態數據競爭檢測方法,其特征在于,所述函數信息包括:符號表信息、中間表示結構。
4.如權利要求1所述的基于靜態共享變量識別的動態數據競爭檢測方法,其特征在于,所述步驟S2具體包括:
S2.1:遍歷函數中間表示的過程中收集包含共享變量的基本塊集合;
S2.2:復制每一個包含共享變量的基本塊,并且在基本塊中插入采樣檢查語句,進行基本塊采樣;
S2.3:編譯并鏈接經插裝和采樣后的源代碼,生成插裝和采樣后的可執行的二進制代碼。
5.如權利要求4所述的基于靜態共享變量識別的動態數據競爭檢測方法,其特征在于,所述步驟S2.2中在復制基本塊之前包括步驟S2.2.1:檢查一個基本塊是否屬于某個循環,若是,則復制整個外層循環并插入采樣檢查語句。
6.如權利要求5所述的基于靜態共享變量識別的動態數據競爭檢測方法,其特征在于,所述步驟S2.2.1之前還包括步驟:比較包含共享變量的基本塊數量和函數中總的基本塊數量,若兩者之間的比例小于預定閾值,則步驟S2.2中不執行步驟S2.2.1,也不復制基本塊,而進行函數粒度的采樣。
7.如權利要求6所述的基于靜態共享變量識別的動態數據競爭檢測方法,其特征在于,所述預定閾值為:10%。
8.如權利要求1~7中任一項所述的基于靜態共享變量識別的動態數據競爭檢測方法,其特征在于,所述采樣方式采用軟件采樣、突發性采樣、可適應的采樣及線程敏感采樣中的一種或幾種。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110103794.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:扣件結構
- 下一篇:一種用于儲存汽車的設備





