[發明專利]靜態數據競爭檢測和分析有效
| 申請號: | 201210051862.8 | 申請日: | 2012-03-01 |
| 公開(公告)號: | CN102708043B | 公開(公告)日: | 2017-04-26 |
| 發明(設計)人: | E·L·艾勒布雷希特 | 申請(專利權)人: | 微軟技術許可有限責任公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 上海專利商標事務所有限公司31100 | 代理人: | 黃嵩泉 |
| 地址: | 美國華*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 靜態 數據 競爭 檢測 分析 | ||
技術領域
本發明涉及數據競爭檢測和分析,尤其涉及靜態數據競爭檢測和分析。
背景技術
在有同時操作的多個處理器的計算系統上執行多線程處理。通常,多個線程可以共享相同的存儲器。然而,以共享存儲器運行的多線程應用通常可導致通常難以通過測試來發現的輕微的數據競爭缺陷。例如,數據競爭缺陷可源自于未能在訪問共享存儲器前獲取鎖、或者未能在無鎖或低鎖算法中將存儲器排序語義考慮在內。數據競爭缺陷可導致進程訪問不一致的數據,從而負面地影響多線程應用的功能。
已經開發了許多動態競爭檢測技術。然而,按其本質,“動態”競爭檢測包括實際運行應用來檢測正在執行的應用的行為,這可能是不切實際的。也已開發了靜態競爭檢測技術,該技術不要求執行應用,而是要檢查多線程應用的代碼。這種靜態競爭檢測技術通常是計算密集的,和/或通常依賴于代碼中的注釋來標識潛在的數據競爭問題。
發明內容
這里描述的至少一個實施例涉及對多線程應用的至少一部分進行靜態數據競爭分析以標識多線程應用中的潛在的數據競爭缺陷。靜態數據競爭分析包括組件內靜態分析以及組件間靜態分析。
給定組件的組件內靜態分析包括標識組件中的一組存儲器訪問操作。對于該組存儲器訪問操作中的至少一個的每一個,該分析確定是否存在與存儲器訪問命令相關聯的數據競爭保護元件。在一個實施例中,如果操作被鎖保護,這在其本身中足以被視為數據競爭保護元件。此外,在另一實施例中,如果存儲器訪問是易失性的存儲器訪問(即,具有被編譯器和處理器兩者所重視的顯式 排序語義的存儲器訪問),該易失性特征也足以被視為數據競爭保護元件。
提供本發明內容以便以簡化形式介紹將在以下具體實施方式中進一步描述的一些概念。本發明內容并非旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。
附圖說明
為了描述能夠獲得上述和其它優點和特征的方式,各實施例的更具體的描述將通過參考各附圖來呈現。可以理解,這些附圖只描繪了示例實施例,并且因此不被認為是對其范圍的限制,將通過使用附圖并利用附加特征和細節來描述和解釋各實施例,在附圖中:
圖1示出了可以用來利用此處所描述的各實施例的示例計算系統;
圖2抽象地示出靜態地分析具有多個組件的代碼的計算環境;
圖3示出用于執行代碼的靜態分析的方法的流程圖;
圖4示出用于執行組件內分析的方法的流程圖;
圖5示出用于執行組件間靜態分析的方法的流程圖。
具體實施方式
按照這里描述的實施例,對多線程應用的至少一部分的靜態數據競爭分析標識了多線程應用中的潛在的數據競爭缺陷。靜態數據競爭分析包括組件內靜態分析以及組件間靜態分析。首先,將參考圖1來描述關于計算系統的一些引導性討論。然后,將參考圖2至5來描述靜態數據競爭分析的實施例。
首先,參考圖1來描述關于計算系統的介紹性討論。計算系統現在越來越多地采取多種多樣的形式。計算系統可以例如是手持式設備、電器、膝上型計算機、臺式計算機、大型機、分布式計算系統,或者甚至通常不被視為計算系統的設備。在本說明書以及權利要求書中,術語“計算系統”被廣義地定義為包括任何設備或系統(或其組合),該設備或系統包含至少一個物理有形的處理器以及其上能含有可由處理器執行的計算機可執行指令的物理有形的存儲器。存儲器可以采取任何形式,并可以取決于計算系統的特性和形式。計算系統可以分布在網絡環境中,并可包括多個組分計算系統。如圖1所示,在其最 基本的配置中,計算系統100通常包括至少一個處理單元102和存儲器104。存儲器104可以是物理系統存儲器,該物理系統存儲器可以是易失性、非易失性、或兩者的某種組合。術語“存儲器”在此也可用來指諸如物理存儲介質等非易失性大容量存儲。如果計算系統是分布式的,則處理、存儲器和/或存儲能力也可以是分布式的。如此處所使用的那樣,術語“模塊”或“組件”可以指在計算系統上執行的軟件對象或例程。此處所描述的不同組件、模塊、引擎,以及服務可以實現為在計算系統上執行的對象或進程(例如,作為分開的線程)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟技術許可有限責任公司,未經微軟技術許可有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210051862.8/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





