[發明專利]動靜態結合的中斷驅動程序數據競爭檢測方法有效
| 申請號: | 201410324303.9 | 申請日: | 2014-07-08 |
| 公開(公告)號: | CN104090798A | 公開(公告)日: | 2014-10-08 |
| 發明(設計)人: | 王林章;陳園軍;陳志;李宣東 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F9/445 | 分類號: | G06F9/445 |
| 代理公司: | 南京瑞弘專利商標事務所(普通合伙) 32249 | 代理人: | 楊曉玲 |
| 地址: | 210093 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 靜態 結合 中斷 驅動程序 數據 競爭 檢測 方法 | ||
技術領域
本發明涉及中斷驅動程序的測試方法,主要涉及中斷引發的嵌入式系統中的數據競爭檢測,屬于軟件工程、軟件測試、嵌入式系統交叉技術領域。?
背景技術
嵌入式系統被廣泛應用在各個領域,包括汽車電子、航天電子、醫療電子等。這些領域往往對安全性和穩定性的要求特別高,任何的系統運行故障都會導致及其嚴重的后果,比如著名的Therac-25事件,就是在某些種特殊場景下的一次不小心的按鍵動作,導致了中斷引發的數據競爭,最終了嚴重的醫療后果。?
中斷驅動的嵌入式系統的穩定和安全具有很高的重要性,但嵌入式系統程序的錯誤,尤其是其并發性錯誤,被認為是極其難以檢測、定位和修復的。這主要是因為并發錯誤對執行序列很敏感,即使是同一測試用例,每次的執行序列都有可能不同,最終造成無法預測程序的執行結果。因此,依賴傳統的通過檢查程序輸出結果來判斷程序錯誤的方法,無法檢測出大多數的并發錯誤。此外,中斷本身和硬件緊密相關,系統運行環境復雜,更加劇了對并發錯誤的檢測、定位和修復的難度。?
如何設計一個較為完整的能夠檢測中斷驅動的嵌入式系統中數據競爭的自動化方法,來有效、高效地幫助測試人員提供工作效率,保障安全性嵌入式系統的穩定性和魯棒性,是我們一直在思考的問題。?
傳統的解決方法有:通過將中斷驅動程序轉換成多線程程序,然后利用多線程中的數據檢測工具找到競爭問題,然而,中斷驅動程序和多線程程序在諸多方面的特性存在著本質的區別,二者的轉換勢必造成信息量的丟失,導致報告結果的誤報;采用隨機化調度、基于共享變量訪問的調度等方法,通過對程序的插樁來動態執行程序,找到競爭問題,但是,由于其強制的路徑執行方法造成了諸多誤報,且大量的人工操作影響了工具的實用性,導致了該方法不具備可使用性;還有基于模擬器的方法,雖然能夠一定程度上檢測到數據競爭問題,卻因為需要監控系統的全部狀態,且需要進行多次重復運行,系統開銷大,時間成本高。?
目前對中斷驅動程序的數據競爭檢測仍存在著兩個瓶頸:一是結果的準確性問題,在避免誤報的同時能夠盡量避免漏報;二是實用性問題,其測試方法應該能夠不依賴于具體的系統和平臺,具有廣泛的應用場景。本發明設計一種動靜態結合的競爭檢測方法,通過共享資源的檢測技術,控制流圖生成技術,數據流分析技術,模擬器運行控制技術,檢測并驗證出系統的競爭關系,突破了上述的兩個瓶頸,解決了中斷驅動的數據競爭檢測問題,保障嵌入式系統的安全和穩定,為我國航天事業、醫療事業等高穩定性嵌入式?程序需求的關鍵性安全領域提供可靠性保證。?
發明內容
技術問題:本發明的目的是設計一種動靜態結合的中斷驅動程序數據競爭檢測方法,以保障安全性嵌入式系統的穩定性和魯棒性,解決中斷驅動的嵌入式系統程序中存在的嚴重威脅系統安全和穩定性的數據競爭問題。?
技術方案:本發明提供一種動靜態結合的中斷驅動程序數據競爭檢測方法,利用靜態方法來對源程序進行靜態分析得到潛在的數據競爭序列,通過對靜態分析的結果進行動態執行,驗證潛在競爭的真實性,并根據潛在競爭的嚴重性進行排序,得到測試結果報告。?
本發明的動靜態結合的中斷驅動程序數據競爭檢測方法包含的步驟為:?
步驟1:用戶指定受測試的中斷驅動程序源文件,所述的中斷驅動程序源文件包含若干個函數構成的主任務的源代碼,以及該任務涉及到的中斷所對應的中斷處理程序的源代碼;?
步驟2:用戶指定測試的配置文件,所述配置文件是XML文件,XML的全稱是可擴展標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言;所述的測試配置文件包括主函數的入口說明、各個中斷處理程序的中斷向量號和中斷優先級;?
步驟3:對受測試的中斷驅動程序源文件進行共享資源檢測,得到共享資源列表;?
步驟4:對受測試的中斷驅動程序源文件進行中斷操作行為檢測,得到中斷操作列表;?
步驟5:對中斷驅動程序源文件進行分析,得到簡要控制流圖RCFG,?
步驟6:將所有的RCFG互聯起來,得到全局的中斷互聯控制流圖IICFG;?
步驟7:對IICFG進行深度優先遍歷,得到中斷驅動源程序的靜態分析結果;?
步驟8:在西米克斯Simics仿真平臺中執行中斷驅動程序源文件,驗證PR中的所有靜態分析結果,?
步驟9:對驗證后的驗證結果進行嚴重性排序,從而得到了對受測試的中斷驅動程序源文件的競爭檢測結果。?
所述步驟3具體過程如下:?
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410324303.9/2.html,轉載請聲明來源鉆瓜專利網。





