最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種內(nèi)存一致性修復(fù)方法、電子設(shè)備及存儲(chǔ)介質(zhì)與流程

文檔序號(hào):41952169發(fā)布日期:2025-05-16 14:14閱讀:2來(lái)源:國(guó)知局
一種內(nèi)存一致性修復(fù)方法、電子設(shè)備及存儲(chǔ)介質(zhì)與流程

本發(fā)明涉及計(jì)算機(jī),特別是涉及一種內(nèi)存一致性修復(fù)方法、電子設(shè)備及存儲(chǔ)介質(zhì)。


背景技術(shù):

1、在多核處理器和分布式系統(tǒng)的并發(fā)編程環(huán)境中,內(nèi)存一致性問(wèn)題構(gòu)成了一項(xiàng)關(guān)鍵挑戰(zhàn)。在此類系統(tǒng)中,多個(gè)處理器核心或節(jié)點(diǎn)可能共享同一塊內(nèi)存。然而,由于硬件架構(gòu)(例如緩存一致性協(xié)議)的局限性和軟件設(shè)計(jì)的不完善,可能引發(fā)一系列問(wèn)題,包括數(shù)據(jù)競(jìng)爭(zhēng)(data?race)、內(nèi)存屏障缺失以及同步機(jī)制不當(dāng)使用等。這些問(wèn)題將直接影響程序的正確性和可靠性。

2、具體而言,數(shù)據(jù)競(jìng)爭(zhēng)是多個(gè)線程同時(shí)訪問(wèn)同一共享變量,且至少有一個(gè)線程進(jìn)行寫(xiě)操作,而未能采取適當(dāng)?shù)耐酱胧﹣?lái)避免沖突。內(nèi)存屏障缺失則是因缺乏必要的內(nèi)存屏障指令,導(dǎo)致不同處理器核心對(duì)共享內(nèi)存的視圖不一致,從而破壞了內(nèi)存的一致性。同步機(jī)制不當(dāng)使用則涵蓋了錯(cuò)誤地應(yīng)用鎖、原子操作或其他同步工具,可能進(jìn)一步引發(fā)死鎖或競(jìng)態(tài)條件等復(fù)雜問(wèn)題。

3、在相關(guān)技術(shù)中,開(kāi)發(fā)人員通常需手動(dòng)分析源代碼,并添加同步機(jī)制(例如鎖、原子操作或內(nèi)存屏障)以應(yīng)對(duì)內(nèi)存一致性問(wèn)題。然而,這種方法不僅效率低下,還容易因人為疏忽而導(dǎo)致錯(cuò)誤修復(fù)或遺漏修復(fù)內(nèi)存一致性問(wèn)題。盡管當(dāng)前的編譯器工具已具備檢測(cè)部分內(nèi)存一致性問(wèn)題的能力,開(kāi)發(fā)人員仍需依據(jù)編譯器的提示手動(dòng)修復(fù)代碼,這一流程仍然較為繁瑣且效率不高。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明提供一種內(nèi)存一致性修復(fù)方法、電子設(shè)備及存儲(chǔ)介質(zhì),旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題之一。

2、本發(fā)明的技術(shù)方案為一種內(nèi)存一致性修復(fù)方法,包括:

3、解析源代碼得到程序依賴圖;

4、根據(jù)所述程序依賴圖預(yù)測(cè)所述源代碼中的內(nèi)存一致性問(wèn)題,得到預(yù)測(cè)的內(nèi)存一致性問(wèn)題,記錄問(wèn)題位置和問(wèn)題類型,得到靜態(tài)分析結(jié)果;

5、將所述預(yù)測(cè)的內(nèi)存一致性問(wèn)題與實(shí)際運(yùn)行數(shù)據(jù)進(jìn)行比較,以驗(yàn)證所述實(shí)際運(yùn)行數(shù)據(jù)是否支持所述靜態(tài)分析結(jié)果;

6、根據(jù)所述問(wèn)題類型生成修復(fù)代碼;

7、根據(jù)所述修復(fù)代碼的性能瓶頸調(diào)整所述修復(fù)代碼,得到調(diào)整代碼。

8、根據(jù)本發(fā)明的一些實(shí)施例,根據(jù)所述程序依賴圖預(yù)測(cè)所述源代碼中的內(nèi)存一致性問(wèn)題,包括:

9、遍歷所述程序依賴圖中的節(jié)點(diǎn);

10、檢查當(dāng)前節(jié)點(diǎn)是否為共享變量;

11、檢查所述當(dāng)前節(jié)點(diǎn)是否沒(méi)有同步機(jī)制;

12、若所述當(dāng)前節(jié)點(diǎn)是所述共享變量且沒(méi)有所述同步機(jī)制,則預(yù)測(cè)所述當(dāng)前節(jié)點(diǎn)存在所述內(nèi)存一致性問(wèn)題。

13、根據(jù)本發(fā)明的一些實(shí)施例,將所述預(yù)測(cè)的內(nèi)存一致性問(wèn)題與實(shí)際運(yùn)行數(shù)據(jù)進(jìn)行比較,以驗(yàn)證所述實(shí)際運(yùn)行數(shù)據(jù)是否支持所述靜態(tài)分析結(jié)果,包括:

14、在所述源代碼中插入監(jiān)控代碼,記錄共享變量的訪問(wèn)順序和數(shù)值變化,得到所述實(shí)際運(yùn)行數(shù)據(jù);

15、比較所述預(yù)測(cè)的內(nèi)存一致性問(wèn)題與所述實(shí)際運(yùn)行數(shù)據(jù),以驗(yàn)證所述實(shí)際運(yùn)行數(shù)據(jù)是否支持所述靜態(tài)分析結(jié)果;

16、若所述實(shí)際運(yùn)行數(shù)據(jù)支持所述靜態(tài)分析結(jié)果,則將所述預(yù)測(cè)的內(nèi)存一致性問(wèn)題標(biāo)記為確認(rèn)問(wèn)題,否則將所述預(yù)測(cè)的內(nèi)存一致性問(wèn)題標(biāo)記為誤報(bào)。

17、根據(jù)本發(fā)明的一些實(shí)施例,根據(jù)所述問(wèn)題類型生成修復(fù)代碼,包括:

18、根據(jù)所述問(wèn)題類型選擇修復(fù)策略,根據(jù)所述修復(fù)策略生成所述修復(fù)代碼。

19、根據(jù)本發(fā)明的一些實(shí)施例,所述問(wèn)題類型包括指令重排序問(wèn)題、不同類型的內(nèi)存操作重排序問(wèn)題、競(jìng)態(tài)條件、緩存不一致問(wèn)題和過(guò)度使用內(nèi)存屏障問(wèn)題;所述修復(fù)策略包括添加內(nèi)存屏障、插入加載屏障或存儲(chǔ)屏障、使用鎖機(jī)制、強(qiáng)制緩存一致性和減少內(nèi)存屏障數(shù)量;

20、其中,所述指令重排序問(wèn)題、所述不同類型的內(nèi)存操作重排序問(wèn)題、所述競(jìng)態(tài)條件、所述緩存不一致問(wèn)題和所述過(guò)度使用內(nèi)存屏障問(wèn)題的所述修復(fù)策略分別是一一對(duì)應(yīng)的所述添加內(nèi)存屏障、所述插入加載屏障或存儲(chǔ)屏障、所述使用鎖機(jī)制、所述強(qiáng)制緩存一致性和所述減少內(nèi)存屏障數(shù)量。

21、根據(jù)本發(fā)明的一些實(shí)施例,根據(jù)所述修復(fù)代碼的性能瓶頸調(diào)整所述修復(fù)代碼,得到調(diào)整代碼,包括:

22、判斷所述修復(fù)代碼是否存在所述性能瓶頸;

23、若存在所述性能瓶頸,則根據(jù)性能瓶頸的類型選擇調(diào)整策略;

24、對(duì)所述修復(fù)代碼應(yīng)用所述調(diào)整策略,得到所述調(diào)整代碼。

25、根據(jù)本發(fā)明的一些實(shí)施例,所述性能瓶頸的類型包括指令重排序限制問(wèn)題、上下文切換問(wèn)題和緩存同步開(kāi)銷問(wèn)題;所述調(diào)整策略包括合并連續(xù)的內(nèi)存屏障;

26、其中,所述指令重排序限制問(wèn)題、所述上下文切換問(wèn)題和所述緩存同步開(kāi)銷問(wèn)題中的一種或多種組合的所述調(diào)整策略是所述合并連續(xù)的內(nèi)存屏障。

27、根據(jù)本發(fā)明的一些實(shí)施例,所述性能瓶頸的類型包括鎖粒度問(wèn)題和同步機(jī)制問(wèn)題;所述調(diào)整策略包括調(diào)整鎖粒度和替換同步機(jī)制;

28、其中,所述鎖粒度問(wèn)題的所述調(diào)整策略是所述調(diào)整鎖粒度,所述同步機(jī)制問(wèn)題的所述調(diào)整策略是所述替換同步機(jī)制。

29、本發(fā)明的技術(shù)方案還涉及一種電子設(shè)備,所述電子設(shè)備包括存儲(chǔ)器、處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如上所述的一種內(nèi)存一致性修復(fù)方法。

30、本發(fā)明的技術(shù)方案還涉及一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的一種內(nèi)存一致性修復(fù)方法。

31、本發(fā)明的有益效果包括:解析源代碼得到程序依賴圖,接著根據(jù)程序依賴圖預(yù)測(cè)源代碼中的內(nèi)存一致性問(wèn)題,得到預(yù)測(cè)的內(nèi)存一致性問(wèn)題,記錄問(wèn)題位置和問(wèn)題類型,得到靜態(tài)分析結(jié)果,將預(yù)測(cè)的內(nèi)存一致性問(wèn)題與實(shí)際運(yùn)行數(shù)據(jù)進(jìn)行比較,以驗(yàn)證實(shí)際運(yùn)行數(shù)據(jù)是否支持靜態(tài)分析結(jié)果,根據(jù)問(wèn)題類型生成修復(fù)代碼,根據(jù)修復(fù)代碼的性能瓶頸調(diào)整修復(fù)代碼,得到調(diào)整代碼。通過(guò)靜態(tài)分析和動(dòng)態(tài)驗(yàn)證源代碼的內(nèi)存一致性問(wèn)題的相結(jié)合的方式,提高了檢測(cè)內(nèi)存一致性問(wèn)題的準(zhǔn)確性。根據(jù)問(wèn)題類型生成修復(fù)代碼,減少了開(kāi)發(fā)人員的工作量,并且提高了修復(fù)內(nèi)存一致性問(wèn)題的準(zhǔn)確性和效率。在修復(fù)代碼的基礎(chǔ)上根據(jù)性能瓶頸進(jìn)行調(diào)整修復(fù)代碼,能夠減少性能開(kāi)銷,有利于確保程序高效運(yùn)行。

32、此外,本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。



技術(shù)特征:

1.一種內(nèi)存一致性修復(fù)方法,其特征在于,包括:

2.根據(jù)權(quán)利要求1所述的一種內(nèi)存一致性修復(fù)方法,其特征在于,根據(jù)所述程序依賴圖預(yù)測(cè)所述源代碼中的內(nèi)存一致性問(wèn)題,包括:

3.根據(jù)權(quán)利要求1所述的一種內(nèi)存一致性修復(fù)方法,其特征在于,將所述預(yù)測(cè)的內(nèi)存一致性問(wèn)題與實(shí)際運(yùn)行數(shù)據(jù)進(jìn)行比較,以驗(yàn)證所述實(shí)際運(yùn)行數(shù)據(jù)是否支持所述靜態(tài)分析結(jié)果,包括:

4.根據(jù)權(quán)利要求1所述的一種內(nèi)存一致性修復(fù)方法,其特征在于,根據(jù)所述問(wèn)題類型生成修復(fù)代碼,包括:

5.根據(jù)權(quán)利要求4所述的一種內(nèi)存一致性修復(fù)方法,其特征在于,所述問(wèn)題類型包括指令重排序問(wèn)題、不同類型的內(nèi)存操作重排序問(wèn)題、競(jìng)態(tài)條件、緩存不一致問(wèn)題和過(guò)度使用內(nèi)存屏障問(wèn)題;所述修復(fù)策略包括添加內(nèi)存屏障、插入加載屏障或存儲(chǔ)屏障、使用鎖機(jī)制、強(qiáng)制緩存一致性和減少內(nèi)存屏障數(shù)量;

6.根據(jù)權(quán)利要求1所述的一種內(nèi)存一致性修復(fù)方法,其特征在于,根據(jù)所述修復(fù)代碼的性能瓶頸調(diào)整所述修復(fù)代碼,得到調(diào)整代碼,包括:

7.根據(jù)權(quán)利要求6所述的一種內(nèi)存一致性修復(fù)方法,其特征在于,所述性能瓶頸的類型包括指令重排序限制問(wèn)題、上下文切換問(wèn)題和緩存同步開(kāi)銷問(wèn)題;所述調(diào)整策略包括合并連續(xù)的內(nèi)存屏障;

8.根據(jù)權(quán)利要求6所述的一種內(nèi)存一致性修復(fù)方法,其特征在于,所述性能瓶頸的類型包括鎖粒度問(wèn)題和同步機(jī)制問(wèn)題;所述調(diào)整策略包括調(diào)整鎖粒度和替換同步機(jī)制;

9.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括存儲(chǔ)器、處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1至8任一項(xiàng)所述的一種內(nèi)存一致性修復(fù)方法。

10.一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至8中任一項(xiàng)所述的一種內(nèi)存一致性修復(fù)方法。


技術(shù)總結(jié)
本發(fā)明涉及一種內(nèi)存一致性修復(fù)方法、電子設(shè)備及存儲(chǔ)介質(zhì),解析源代碼得到程序依賴圖,根據(jù)程序依賴圖得到預(yù)測(cè)的內(nèi)存一致性問(wèn)題,記錄問(wèn)題位置和問(wèn)題類型得到靜態(tài)分析結(jié)果,將預(yù)測(cè)的內(nèi)存一致性問(wèn)題與實(shí)際運(yùn)行數(shù)據(jù)進(jìn)行比較,以驗(yàn)證實(shí)際運(yùn)行數(shù)據(jù)是否支持靜態(tài)分析結(jié)果,根據(jù)問(wèn)題類型生成修復(fù)代碼,根據(jù)修復(fù)代碼的性能瓶頸調(diào)整修復(fù)代碼得到調(diào)整代碼。通過(guò)將靜態(tài)分析和動(dòng)態(tài)驗(yàn)證源代碼的內(nèi)存一致性問(wèn)題相結(jié)合的方式,提高了檢測(cè)內(nèi)存一致性問(wèn)題的準(zhǔn)確性。根據(jù)問(wèn)題類型生成修復(fù)代碼,減少了開(kāi)發(fā)人員的工作量,并且提高了修復(fù)內(nèi)存一致性問(wèn)題的準(zhǔn)確性和效率。在修復(fù)代碼的基礎(chǔ)上根據(jù)性能瓶頸進(jìn)行調(diào)整修復(fù)代碼,能夠減少性能開(kāi)銷,有利于確保程序高效運(yùn)行。

技術(shù)研發(fā)人員:劉祥,鐘鳳才,王金花,陳亮,蔡坤,吳戈,龐列國(guó)
受保護(hù)的技術(shù)使用者:寶德計(jì)算機(jī)系統(tǒng)股份有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2025/5/15
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1