• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種并發(fā)分析的方法及裝置制造方法及圖紙

    技術(shù)編號:10862967 閱讀:51 留言:0更新日期:2015-01-01 22:14
    本發(fā)明專利技術(shù)公開了一種并發(fā)分析的方法及裝置,涉及程序分析技術(shù)領(lǐng)域,在對PEG上不同節(jié)點間的并發(fā)分析過程中,簡化了處理流程,提高了并發(fā)分析的效率。本發(fā)明專利技術(shù)的具體實施例包括:獲取PEG中的根節(jié)點,將該根節(jié)點以及PEG中入度為0的節(jié)點壓入預(yù)設(shè)棧,并獲取該預(yù)設(shè)棧的棧頂節(jié)點組成待處理序列,進而確定當前處理節(jié)點在該待處理序列中的位置,并在待處理序列的該位置之后查找包含于工作集中的節(jié)點,從而減少并發(fā)分析中的迭代次數(shù)。本發(fā)明專利技術(shù)實施例主要應(yīng)用于并發(fā)分析流程中。

    【技術(shù)實現(xiàn)步驟摘要】
    一種并發(fā)分析的方法及裝置
    本專利技術(shù)涉及程序分析
    ,尤其涉及一種并發(fā)分析的方法及裝置。
    技術(shù)介紹
    可能并發(fā)分析用于判斷給定的一個并發(fā)程序中的兩條語句是否可能在運行時并發(fā)執(zhí)行,其結(jié)果可以服務(wù)于其他類型的程序分析技術(shù)例如指針分析,也可服務(wù)于并發(fā)程序的編譯優(yōu)化,同時還可以服務(wù)于并發(fā)錯誤的檢測,比如說,如果預(yù)先知曉一個并發(fā)程序中的哪些部分之間是可能并發(fā)的,則可以顯著減少數(shù)據(jù)競爭這類錯誤的誤報信息。所以說可能并發(fā)分析是并發(fā)程序分析領(lǐng)域中一類重要的程序分析方法。現(xiàn)有技術(shù)基于迭代數(shù)據(jù)流的方法進行可能并發(fā)分析,在該分析方法中,根據(jù)不同語句的并發(fā)語義為其定義相應(yīng)的數(shù)據(jù)流方程,之后在迭代過程中計算得到所有語句的可能并發(fā)集合。具體的,該方法首先需要構(gòu)造并發(fā)程序的控制流圖,之后根據(jù)控制流圖構(gòu)造并發(fā)執(zhí)行圖(ParallelExecutionGraph,PEG),該并發(fā)執(zhí)行圖為控制流圖的程序表示。在PEG上標注含有不同并發(fā)語義的節(jié)點。并發(fā)語義包括線程創(chuàng)建,線程注銷以及線程間通信等等,其中,線程創(chuàng)建的并發(fā)語義代表新的可能并發(fā)信息的產(chǎn)生,線程注銷的并發(fā)語義代表消除已有的可能并發(fā)信息,線程間通信的并發(fā)語義代表線程間時序關(guān)系的存在。不同的并發(fā)語義可定義不同的數(shù)據(jù)流方程。由于PEG基于并發(fā)控制流圖構(gòu)建,因此最終的分析結(jié)構(gòu)就轉(zhuǎn)換為求解PEG上分屬不同線程的不同節(jié)點之間是否并發(fā)。在迭代過程中,以工作集的方式保存PEG節(jié)點信息,每次迭代處理工作集中的一個節(jié)點,按照預(yù)先定義的數(shù)據(jù)流方程計算可能并發(fā)信息時會有新的節(jié)點加入。重復此過程,直到工作集為空,得到最終的分析結(jié)果。在實現(xiàn)上述現(xiàn)有技術(shù)的過程中,專利技術(shù)人發(fā)現(xiàn)至少存在如下問題:在分析PEG上不同節(jié)點之間是否并發(fā)的過程中,處理過程繁瑣,從而導致并發(fā)分析的效率低。
    技術(shù)實現(xiàn)思路
    本專利技術(shù)的實施例提供一種并發(fā)分析的方法及裝置,在對PEG上不同節(jié)點間進行并發(fā)分析的過程中,簡化處理了過程,解決了并發(fā)分析效率低的問題。為達到上述目的,本專利技術(shù)的實施例采用如下技術(shù)方案:第一方面,提供了一種并發(fā)分析的方法,包括:獲取由并發(fā)執(zhí)行圖PEG中的節(jié)點組成的待處理序列,所述待處理序列為減少所述節(jié)點重復次數(shù)的嚴格拓撲序列;根據(jù)預(yù)設(shè)規(guī)則對所述待處理序列中的節(jié)點進行遍歷,所述預(yù)設(shè)規(guī)則用于尋找待遍歷的節(jié)點。在第一方面的第一種可能實現(xiàn)方式中,所述獲取待處理序列包括:獲取所述PEG的根節(jié)點,并將所述根節(jié)點壓入預(yù)設(shè)棧中,所述預(yù)設(shè)棧用于存儲所述PEG中的根節(jié)點和/或所述PEG中入度為0的節(jié)點;獲取所述預(yù)設(shè)棧的棧頂節(jié)點,將所述棧頂節(jié)點加入所述待處理序列;獲取所述棧頂節(jié)點的后繼節(jié)點,并在所述PEG中刪除所述棧頂節(jié)點與所述后繼節(jié)點組成的邊。結(jié)合第一方面、第一方面的第一種可能實現(xiàn)方式,在第一方面的第二中可能實現(xiàn)方式中,獲取所述棧頂節(jié)點的后繼節(jié)點,具體包括:當確定所述棧頂節(jié)點為線程創(chuàng)建點時,獲取并刪除所述棧頂節(jié)點先創(chuàng)建的線程的首節(jié)點與所述棧頂節(jié)點組成的邊,并將所述首節(jié)點壓入所述預(yù)設(shè)棧;當確定所述棧頂節(jié)點不是線程創(chuàng)建點時,獲取并刪除所述棧頂節(jié)點的所有后繼節(jié)點與所述棧頂節(jié)點組成的邊,并將所述后繼節(jié)點中入度為0的所述后繼節(jié)點壓入所述預(yù)設(shè)棧中。結(jié)合第一方面或第一方面的第一種可能實現(xiàn)方式或第一方面的第二種可能實現(xiàn)方式中任意一種實現(xiàn)方式,在第一方面的第三種可能實現(xiàn)方式中,還包括:為所述PEG中的線程設(shè)置并行層次,所述并行層次表示所述PEG中線程之間的關(guān)系。結(jié)合第一方面、第一方面的第一種可能實現(xiàn)方式、第一方面的第二種可能實現(xiàn)方式、第一放方面的第三種可能實現(xiàn)方式,在第一方面的第四種可能實現(xiàn)方式中,還包括:確定當前遍歷的節(jié)點在所述待處理序列中的第一位置;在所述待處理序列中,且在所述第一位置之后,查找包含于工作集中的節(jié)點;當查找到包含于所述工作集中的節(jié)點時,確定所述工作集中的節(jié)點在所述待處理序列中的位置為第二位置;當未查找到包含于所述工作集中的節(jié)點時,從所述待處理序列中的第一個節(jié)點開始向后查找。第二方面,提供了一種并發(fā)分析的裝置,包括:獲取單元,用于由獲取PEG中節(jié)點組成的待處理序列,所述待處理序列為減少所述節(jié)點重復次數(shù)的嚴格拓撲序列;遍歷單元,用于根據(jù)預(yù)設(shè)規(guī)則對所述獲取單元獲取到的所述待處理序列中的節(jié)點進行遍歷,所述預(yù)設(shè)規(guī)則用于尋找待遍歷的節(jié)點。在第二方面的第一種可能實現(xiàn)方式中,所述獲取單元,包括:獲取子單元,用于獲取所述PEG的根節(jié)點,并將所述根節(jié)點壓入預(yù)設(shè)棧中,所述預(yù)設(shè)棧用于存儲所述PEG中的根節(jié)點和/或所述PEG中入度為0的節(jié)點;獲取所述預(yù)設(shè)棧的棧頂節(jié)點,將所述棧頂節(jié)點加入所述待處理序列;獲取所述棧頂節(jié)點的后繼節(jié)點;刪除子單元,用于所述PEG中刪除所述棧頂節(jié)點與所述獲取子單元獲取的所述后繼節(jié)點組成的邊。結(jié)合第二方面的、第二方面的第一種可能實現(xiàn)方式,在第二方面的第二種可能實現(xiàn)方式中,所述獲取子單元,還用于當確定所述棧頂節(jié)點為線程創(chuàng)建點時,獲取所述棧頂節(jié)點先創(chuàng)建的線程的首節(jié)點與所述棧頂節(jié)點組成的邊,并將所述首節(jié)點壓入所述預(yù)設(shè)棧;當確定所述棧頂節(jié)點不是線程創(chuàng)建點時,獲取所述棧頂節(jié)點的所有后繼節(jié)點與所述棧頂節(jié)點組成的邊,并將所述后繼節(jié)點中入度為0的所述后繼節(jié)點壓入所述預(yù)設(shè)棧中;所述刪除子單元,還用于刪除所述棧頂節(jié)點先創(chuàng)建的線程的首節(jié)點與所述棧頂節(jié)點組成的邊;刪除所述棧頂節(jié)點的所有后繼節(jié)點與所述棧頂節(jié)點組成的邊。結(jié)合第二方面或第二方面的第一種可能實現(xiàn)方式或第二方面的第二種可能實現(xiàn)方式中的任意一種實現(xiàn)方式,在第二方面的第三種可能實現(xiàn)方式中,還包括:設(shè)置單元,用于在所述獲取單元獲取所述待處理序列之前,為所述PEG中的線程設(shè)置并行層次,所述并行層次表示所述PEG中線程之間的關(guān)系。結(jié)合第二方面的第一種可能實現(xiàn)方式、第二方面的第二種可能實現(xiàn)方式、第二方面的第三種可能實現(xiàn)方式,在第二方面的第四種可能實現(xiàn)方式中,還包括:確定單元,用于確定所述遍歷單元當前遍歷節(jié)點在所述獲取單元獲取的所述待處理序列中的第一位置;查找單元,用于在所述確定單元確定的所述第一位置之后,查找包含于工作集中的節(jié)點;所述確定單元,還用于,在所述查找單元查找到包含于所述工作集中的節(jié)點時,確定所述工作集中的節(jié)點在所述獲取單元獲取的所述待處理序列中的位置為第二位置;所述查找單元,還用于當未查找到包含于所述工作集中的節(jié)點時,從所述獲取單元獲取的所述待處理序列中的第一個節(jié)點開始向后查找。本專利技術(shù)實施例提供的并發(fā)分析裝的方法及裝置,通過設(shè)置并行層次,獲取PEG中節(jié)點組成的待處理序列,并在該待處理序列中標記當前處理節(jié)點的位置,并在該位置之后繼續(xù)尋找包含于工作集中的節(jié)點,并將這一節(jié)點作為下一待處理節(jié)點。本專利技術(shù)實施例提供的技術(shù)方案,解決了現(xiàn)有技術(shù)在并發(fā)分析過程中的分析效率低的問題。附圖說明為了更清楚地說明本專利技術(shù)實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術(shù)的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本專利技術(shù)一實施例提供的一種并發(fā)分析的方法流程;圖2為本專利技術(shù)另一實施例提供的一種并發(fā)分析的方法流程;圖3為本專利技術(shù)另一實施例提供的一種PEG示意圖;圖4為本專利技術(shù)另一實施例提供的一種并發(fā)分析裝置的本文檔來自技高網(wǎng)
    ...
    一種并發(fā)分析的方法及裝置

    【技術(shù)保護點】
    一種并發(fā)分析的方法,其特征在于,包括:獲取由并發(fā)執(zhí)行圖PEG中的節(jié)點組成的待處理序列,所述待處理序列為減少所述節(jié)點重復次數(shù)的嚴格拓撲序列;根據(jù)預(yù)設(shè)規(guī)則對所述待處理序列中的節(jié)點進行遍歷,所述預(yù)設(shè)規(guī)則用于尋找待遍歷的節(jié)點。

    【技術(shù)特征摘要】
    1.一種并發(fā)分析的方法,其特征在于,包括:獲取由并發(fā)執(zhí)行圖PEG中的節(jié)點組成的待處理序列,所述待處理序列為減少所述節(jié)點重復次數(shù)的嚴格拓撲序列;根據(jù)預(yù)設(shè)規(guī)則對所述待處理序列中的節(jié)點進行遍歷,所述預(yù)設(shè)規(guī)則用于尋找待遍歷的節(jié)點;所述根據(jù)預(yù)設(shè)規(guī)則對所述待處理序列中的節(jié)點進行遍歷具體包括:確定當前遍歷的節(jié)點在所述待處理序列中的第一位置;在所述待處理序列中,且在所述第一位置之后,查找包含于工作集中的節(jié)點;當查找到包含于所述工作集中的節(jié)點時,確定所述工作集中的節(jié)點在所述待處理序列中的位置為第二位置;當未查找到包含于所述工作集中的節(jié)點時,從所述待處理序列中的第一個節(jié)點開始向后查找。2.根據(jù)權(quán)利要求1所述的并發(fā)分析的方法,其特征在于,所述獲取待處理序列包括:獲取所述PEG的根節(jié)點,并將所述根節(jié)點壓入預(yù)設(shè)棧中,所述預(yù)設(shè)棧用于存儲所述PEG中的根節(jié)點和/或所述PEG中入度為0的節(jié)點;獲取所述預(yù)設(shè)棧的棧頂節(jié)點,將所述棧頂節(jié)點加入所述待處理序列;獲取所述棧頂節(jié)點的后繼節(jié)點,并在所述PEG中刪除所述棧頂節(jié)點與所述后繼節(jié)點組成的邊。3.根據(jù)權(quán)利要求2所述的并發(fā)分析的方法,其特征在于,所述獲取所述棧頂節(jié)點的后繼節(jié)點,具體包括:當確定所述棧頂節(jié)點為線程創(chuàng)建點時,獲取并刪除所述棧頂節(jié)點先創(chuàng)建的線程的首節(jié)點與所述棧頂節(jié)點組成的邊,并將所述首節(jié)點壓入所述預(yù)設(shè)棧;當確定所述棧頂節(jié)點不是線程創(chuàng)建點時,獲取并刪除所述棧頂節(jié)點的所有后繼節(jié)點與所述棧頂節(jié)點組成的邊,并將所述后繼節(jié)點中入度為0的所述后繼節(jié)點壓入所述預(yù)設(shè)棧中。4.根據(jù)所述權(quán)利要求1至3任意一項所述的并發(fā)分析的方法,其特征在于,所述方法還包括:為所述PEG中的線程設(shè)置并行層次,所述并行層次表示所述PEG中線程之間的關(guān)系。5.一種并發(fā)分析的裝置,其特征在于,包括:獲取單元,用于獲取由PEG中節(jié)點組成的待處理序列,所述待處理序列為減少所述節(jié)點重復次數(shù)的嚴格拓撲序列;遍歷單元,用于...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:陳聰明霍瑋李豐馮曉兵
    申請(專利權(quán))人:華為技術(shù)有限公司中國科學院計算技術(shù)研究所
    類型:發(fā)明
    國別省市:廣東;44

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 国产仑乱无码内谢| 久久亚洲日韩看片无码| 日韩成人无码一区二区三区| 国产av激情无码久久| 亚洲熟妇无码八AV在线播放| 亚洲av永久中文无码精品| 成人午夜亚洲精品无码网站| 亚洲av无码av在线播放| 亚洲成a人无码av波多野按摩 | 无码精品一区二区三区免费视频 | 成人无码区免费视频观看| 亚洲无码视频在线| 亚洲AV日韩AV永久无码色欲| 曰批全过程免费视频在线观看无码| 亚洲人av高清无码| 久久亚洲AV无码精品色午夜| 亚洲中文字幕无码永久在线| 免费无码又爽又高潮视频| 亚洲AV综合色区无码二区偷拍| 亚洲国产精品无码专区在线观看| 亚洲aⅴ无码专区在线观看春色 | 潮喷无码正在播放| 精品无码成人久久久久久| 久久久久久久人妻无码中文字幕爆 | 亚洲欧洲免费无码| 高清无码午夜福利在线观看 | 亚洲av无码乱码国产精品fc2| 日韩A无码AV一区二区三区| 精品久久久久久中文字幕无码| 亚洲午夜无码久久久久软件 | 国产一区二区三区无码免费| 亚洲av无码一区二区三区天堂 | 国产精品无码午夜福利| 成人无码视频97免费| 日韩精品无码人成视频手机| 国产成人无码一二三区视频 | 日韩精品无码AV成人观看| 国产AV无码专区亚汌A√| 亚洲精品无码成人AAA片| 无码少妇一区二区| 最新无码人妻在线不卡|