[發(fā)明專利]一種航天軟件臨界資源訪問沖突檢測方法有效
| 申請?zhí)枺?/td> | 201711292178.8 | 申請日: | 2017-12-07 |
| 公開(公告)號: | CN107967213B | 公開(公告)日: | 2021-06-04 |
| 發(fā)明(設計)人: | 劉博;嚴云紅;徐峰;程云龍;金燕;劉漢兵;劉雄;吳建桔;康嶺;沈宗月;朱波;彭立章;秦金彪;吳旭東 | 申請(專利權)人: | 上海宇航系統(tǒng)工程研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 上海漢聲知識產權代理有限公司 31236 | 代理人: | 黃超宇;胡晶 |
| 地址: | 201108 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 航天 軟件 臨界 資源 訪問 沖突 檢測 方法 | ||
1.一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,包括以下檢測步驟:
步驟1:由詞法分析單元進行詞法分析后,識別出詞牌流;
步驟2:語法分析單元根據詞牌流進行語法分析后生成全局變量表、語法樹和函數表;
步驟3:語法樹結合全局變量表進行分析后得出全局變量讀寫關系附表,語法樹結合函數表進行分析后得出函數讀寫關系附表和函數調用關系表;
步驟4:根據函數調用關系識別線程入口后對函數調用關系表進行線程著色;
步驟5:結合全局變量讀寫關系附表、函數讀寫關系附表和線程著色后的函數調用關系表分析檢查得出全局變量讀寫沖突情況和寫寫沖突情況。
2.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟1中,所述詞法分析單元根據源碼文件和頭文件生成詞牌流。
3.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟1中,所述詞牌流的格式與GCC編譯器預編譯結果保持一致,所述詞牌流用于所述語法分析單元進行語法分析。
4.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟2中,所述全局變量表記錄所有變量的變量名,并為每個變量分配一個唯一的編號。
5.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟2中,所述函數表記錄所有函數的函數名,并為每個函數分配一個唯一的編號。
6.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟2中,所述語法樹用于識別函數對全局變量的讀寫情況,所述語法樹的識別代碼中的語法操作,所述語法樹的格式與GCC編譯器編譯結果保持一致。
7.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟3中,所述全局變量讀寫關系附表記錄每個全局變量被函數表中的函數讀寫的情況。
8.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟3中,所述函數讀寫關系附表記錄每個函數對全局變量表中的變量讀寫的情況。
9.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟3中,所述函數調用關系表根據語法樹識別出的函數調用關系,記錄每個函數調用其他函數的情況和被其他函數調用的情況。
10.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟4中,所述識別線程入口是根據函數調用關系表識別調用圖中入度為0并且出度不為0的節(jié)點編號,將該節(jié)點設置為線程入口,并分配唯一的線程編號。
11.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟4中,所述線程著色是根據線程入口將該線程中每個被調用的函數進行線程標號,表示該被調函數屬于當前線程,同一函數被多個線程著色。
12.根據權利要求1所述的一種航天軟件臨界資源訪問沖突檢測方法,其特征在于,步驟5中,
所述讀寫沖突為不同線程函數對同一變量進行讀寫,導致讀取數據不完整或數據異常的情況;
所述寫寫沖突為不同線程函數對同一變量進行寫,導致寫數據失敗或寫數據錯誤的情況。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海宇航系統(tǒng)工程研究所,未經上海宇航系統(tǒng)工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711292178.8/1.html,轉載請聲明來源鉆瓜專利網。





