亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        過程間并發(fā)程序分析不可判定的一個(gè)新證明方法

        2007-01-01 00:00:00張大方

        摘 要:過程間并發(fā)程序分析問題是一個(gè)不可判定問題,理解這個(gè)不可判定問題的來源是發(fā)展一個(gè)有效的分析算法的基礎(chǔ)#65377;現(xiàn)有的證明[1]通過構(gòu)造三個(gè)并發(fā)任務(wù)的PCP問題實(shí)例,證明過程間并發(fā)程序分析是一個(gè)不可判定問題#65377;利用反射的思想,僅僅用兩個(gè)并發(fā)任務(wù)構(gòu)造該問題的一個(gè)PCP問題實(shí)例,證明在兩個(gè)并發(fā)任務(wù)的情況下,過程間并發(fā)程序分析是一個(gè)不可判定問題#65377;

        關(guān)鍵詞:過程間并發(fā)程序分析; 上下文敏感; 同步敏感;不可判定問題;

        中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)識(shí)碼:A

        1 引 言

        隨著現(xiàn)代軟件系統(tǒng)的日趨龐大,并發(fā)技術(shù)的廣泛運(yùn)用,過程間并發(fā)程序分析技術(shù)顯得更加重要,并且越來越得到廣泛的關(guān)注,然而,即使在只有兩個(gè)并發(fā)任務(wù)的情況下,過程間并發(fā)程序分析仍然可能是一個(gè)不可判定問題#65377;

        由于路徑約束可能不可解,因此,就一般意義上的精確程序分析都是不可判定的,但即使不考慮路徑約束,簡單的將分支路徑的選擇視為不確定性選擇(這是程序分析普遍采用的近似方法),過程間并發(fā)程序分析仍然是不可判定的[1]#65377;第一次對(duì)這個(gè)問題給出了明確的結(jié)論和證明,由于精確的過程間并發(fā)程序分析是不可能的,近年來的研究工作大多考慮如何進(jìn)行近似的非精確分析[5,6],或者回避并發(fā)程序的同步[7]#65377;盡管過程間并發(fā)程序分析是一個(gè)不可判定問題,但不是所有的程序都是不可判定的,通過對(duì)不可判定發(fā)生原因的分析,我們希望可以找出一大類程序?qū)嶋H上是可以進(jìn)行精確分析的#65377;

        要找出不可判定的必要條件,就必須理解為什么會(huì)產(chǎn)生不可判定的情況,單獨(dú)的過程間分析和并發(fā)分析都是可判定的[4,8],但一旦結(jié)合起來就成了一個(gè)不可判定的問題,可以直觀的認(rèn)為,不可判定的情況在過程和并發(fā)產(chǎn)生了某種關(guān)系的情形下才會(huì)發(fā)生#65377;值得思考的是,過程發(fā)生在單個(gè)任務(wù)內(nèi),而并發(fā)發(fā)生在任務(wù)間,這兩者之間是如何發(fā)生關(guān)系的呢?現(xiàn)有的證明[1]通過構(gòu)造三個(gè)并發(fā)任務(wù)的PCP問題實(shí)例,證明了過程間并發(fā)程序分析過程間并發(fā)程序分析是一個(gè)不可判定問題#65377;意識(shí)到這個(gè)結(jié)論的不充分性[1],利用兩個(gè)上下文無關(guān)語言的交補(bǔ)充了它的第一個(gè)證明,并認(rèn)為這兩種證明方式是不等價(jià)的#65377;

        本文利用反射的思想構(gòu)造了一個(gè)PCP問題實(shí)例,僅僅用兩個(gè)并發(fā)任務(wù)將該問題轉(zhuǎn)化為PCP問題,從而證明了:在兩個(gè)并發(fā)任務(wù)的情況下,過程間并發(fā)程序分析是一個(gè)不可判定問題#65377;證明的構(gòu)造過程直觀的顯示了,發(fā)生在任務(wù)內(nèi)的過程匹配和發(fā)生在任務(wù)間的同步匹配如何產(chǎn)生相互影響:任務(wù)的同步匹配關(guān)系被并發(fā)的其他任務(wù)反射回該任務(wù)本身,從而造成同步匹配與過程匹配的相互影響#65377;進(jìn)一步的,本文指出,同步匹配關(guān)系被反射回自身后,實(shí)際上反映的是對(duì)應(yīng)的并發(fā)任務(wù)的過程匹配關(guān)系#65377;不可判定的表現(xiàn)形式是,在一個(gè)任務(wù)內(nèi)形成兩個(gè)可交織的過程匹配,其中一個(gè)過程匹配是另一個(gè)并發(fā)任務(wù)的過程匹配通過同步匹配產(chǎn)生的“投影”#65377;

        計(jì)算技術(shù)與自動(dòng)化2007年6月第26卷第2期繆 力等:過程間并發(fā)程序分析不可判定的一個(gè)新證明方法2 過程間并發(fā)程序模型

        單過程程序結(jié)構(gòu)可通過控制流圖表達(dá)#65377;控制流圖CFG是一種有向圖,記為G=, 其中N是節(jié)點(diǎn)集,表示程序的控制點(diǎn);E是邊集,表示程序中所有語句;s 與e 是N 中兩個(gè)特殊節(jié)點(diǎn),稱為初始節(jié)點(diǎn)與終止節(jié)點(diǎn),從s有指向程序第一個(gè)語句節(jié)點(diǎn)的邊,程序的每個(gè)出口節(jié)點(diǎn)有指向e的邊#65377;

        過程間控制流圖ICFG是對(duì)控制流圖CFG的擴(kuò)展,每個(gè)過程用一個(gè)完整的CFG表示,過程的調(diào)用和返回通過CALL邊和RETURN邊表示并連接到整個(gè)ICFG中#65377;

        一個(gè)并發(fā)程序由多個(gè)并行執(zhí)行的任務(wù)構(gòu)成,每個(gè)任務(wù)表示為一個(gè)單獨(dú)的過程間控制流圖ICFG#65377;本文采用的同步模型與[1]完全一致,用invoke/accept機(jī)制實(shí)現(xiàn)同步操作#65377;

        一個(gè)任務(wù)X通過語句invoke Y.E向另一個(gè)任務(wù)Y發(fā)送一個(gè)同步請(qǐng)求,任務(wù)Y通過accept E接受請(qǐng)求#65377;任務(wù)X發(fā)送同步請(qǐng)求后即被掛起,直到該同步請(qǐng)求被接受,反之,任務(wù)Y執(zhí)行到同步接受語句時(shí)也被掛起,直到有其他任務(wù)發(fā)出相應(yīng)的同步請(qǐng)求#65377;

        對(duì)于過程間控制流圖,不是所有圖中連通的路徑都是可行的,可行路徑必須滿足過程匹配關(guān)系#65377;

        定義2.1 過程匹配

        并發(fā)程序中的一個(gè)任務(wù)是一個(gè)包括多個(gè)過程的獨(dú)立任務(wù)(程序),程序中的一條可行路徑必須滿足過程匹配,即過程返回點(diǎn)必須匹配最近的過程調(diào)用點(diǎn)#65377;

        利用上下文無關(guān)文法,可以形式化的表示這種匹配關(guān)系:

        balance表示調(diào)用點(diǎn)的平衡關(guān)系#65377;

        balance →(u balance)u|ε,(u表示進(jìn)入調(diào)用點(diǎn)u,)u表示從調(diào)用點(diǎn)u返回#65377;

        matched表示調(diào)用點(diǎn)的匹配關(guān)系#65377;

        matched→matched (u|balance #65377;

        如果一個(gè)程序分析方法要求所有的路徑必須是滿足過程匹配的,則這種程序分析方法稱為上下文敏感的程序分析方法#65377;

        定義2.2 同步匹配

        對(duì)于一個(gè)并發(fā)程序中的一個(gè)任務(wù),其一條執(zhí)行路徑中可能產(chǎn)生一個(gè)同步序列,該同步序列必須與其他并發(fā)任務(wù)產(chǎn)生的一個(gè)同步序列匹配#65377;

        如果一個(gè)程序分析方法要求所有的路徑必須是滿足同步匹配的,則這種程序分析方法稱為同步敏感的程序分析方法#65377;注意同步匹配只是要求兩個(gè)任務(wù)的同步序列對(duì)應(yīng)匹配,并不要求象過程匹配那樣有調(diào)用點(diǎn)的進(jìn)入和返回的平衡#65377;

        為了使討論簡化,本文所指的程序分析問題都是可達(dá)性問題,即程序中某個(gè)語句是否可達(dá),這是程序分析中最簡單的問題#65377;

        3 利用反射的思想構(gòu)造并發(fā)過程間程序分析的PCP問題實(shí)例 PCP問題是一個(gè)已知的不可判定問題#65377;將需要證明的問

        題轉(zhuǎn)化為一個(gè)PCP問題,是一種常用的證明不可判定的方法,同時(shí),PCP問題能夠?qū)π枰C明的不可判定問題給出一個(gè)直觀的認(rèn)識(shí)#65377;

        定義3.1 PCP問題

        給定任意兩個(gè)01字符串序列X,Y,X=w1,w2,…,wr,Y=z1,z2,…zr,是否存在一個(gè)大于0的整數(shù)k及一個(gè)序列i1,i2,…,ik,使得wi1wi2…wik=zi1zi2…zik#65377;

        例如,考慮r=3的兩個(gè)序列X=0101,101,111,Y=01,011,0111101,這個(gè)PCP問題的實(shí)例[2]存在一個(gè)解為序列1,2,3,1,即有

        w1w2w3w1=0101 101 111 0101 = 01 011 0111101 01=z1z2z3z1#65377;

        注意PCP問題的不可判定性與問題的一個(gè)性質(zhì)相關(guān):j≤k, wij的出現(xiàn)次數(shù)等于zij的出現(xiàn)次數(shù)#65377;

        [1]的想法是:用X,Y分別表示一個(gè)并發(fā)程序中兩個(gè)并發(fā)任務(wù)的同步序列,X,Y中的每個(gè)字符串表示在不同調(diào)用點(diǎn)上的同步序列,將程序分析問題轉(zhuǎn)化為PCP問題#65377;這種方法的困難在于,如何使得不同任務(wù)的兩個(gè)調(diào)用必須重復(fù)執(zhí)行同樣的次數(shù),[1]通過在兩個(gè)并發(fā)任務(wù)的每個(gè)調(diào)用點(diǎn)增加一個(gè)特定的同步變量進(jìn)行控制,這樣證明了上下文相關(guān)和同步相關(guān)的程序分析是不可判定的#65377;

        但增加同步變量產(chǎn)生了一個(gè)問題,為了控制這些同步變量,我們不得不再增加一個(gè)并發(fā)任務(wù)(上圖中的任務(wù)D)控制這些同步變量,所以[1]文中利用PCP問題的實(shí)例實(shí)際上證明的是:當(dāng)任務(wù)數(shù)>2時(shí),過程間并發(fā)程序分析是不可判定問題#65377;不需要增加任何輔助的同步變量和并發(fā)任務(wù)的證明關(guān)鍵在于構(gòu)造合適的過程和并發(fā)產(chǎn)生的關(guān)系,直接反映不可判定的來源#65377;

        仔細(xì)觀察PCP問題的形式,注意到構(gòu)造一個(gè)PCP問題實(shí)例的關(guān)鍵在于兩點(diǎn),第一,要求A#65380;B中對(duì)應(yīng)的字符串以完全相同的形式出現(xiàn),即出現(xiàn)的次數(shù)和順序都完全一致,這種要求非常類似于過程匹配,因此,如果將對(duì)應(yīng)的字符串分別放在過程的調(diào)用點(diǎn)和返回點(diǎn)上(即用一個(gè)過程調(diào)用分割一條路徑的同步序列),那么程序的執(zhí)行自然滿足這種關(guān)系#65377;第二,要求產(chǎn)生的01字符串相同,這種對(duì)應(yīng)關(guān)系與同步匹配關(guān)系類似#65377;問題在于,如果采用第一方法構(gòu)造PCP問題,則需要對(duì)應(yīng)的同步序列在同一個(gè)任務(wù)內(nèi)#65377;要建立同一個(gè)任務(wù)內(nèi)的同步序列間的同步匹配關(guān)系,必須通過一個(gè)中介達(dá)到#65377;我們?cè)O(shè)想另一個(gè)任務(wù)B是一面鏡子,將需要產(chǎn)生同步關(guān)系的任務(wù)A發(fā)出的X序列反射回任務(wù)A自身,使任務(wù)A的Y序列與這個(gè)反射回來的同步序列匹配,這樣就可以達(dá)到目的#65377;

        定理1 對(duì)于過程間并發(fā)程序分析,當(dāng)任務(wù)數(shù)>1時(shí),即只要有兩個(gè)或兩個(gè)以上的并發(fā)任務(wù),并發(fā)程序分析就是不可判定問題#65377;

        證明:我們同樣將該問題轉(zhuǎn)化為PCP問題,但只需要兩個(gè)任務(wù),也不需要輔助的同步變量#65377;

        在上圖給出的PCP問題的一個(gè)實(shí)例中,任務(wù)A既產(chǎn)生X序列,又產(chǎn)生Y序列,X和Y中對(duì)應(yīng)的01字符串出現(xiàn)的方式顯然是相同的#65377;任務(wù)B的作用是本文證明的關(guān)鍵所在,本來wi和zi之間沒有同步匹配關(guān)系,而任務(wù)B如同一面鏡子,根據(jù)接收的01序列再將這個(gè)01同步序列反射回任務(wù)A,從而導(dǎo)致wi和zi之間產(chǎn)生匹配關(guān)系#65377;任務(wù)B接收任務(wù)A發(fā)送的同步請(qǐng)求(X序列),并向任務(wù)A發(fā)送與接受到的同步序列相應(yīng)的同步請(qǐng)求序列,而這個(gè)序列在任務(wù)A中是由Y序列接收的,即任務(wù)A的X序列和Y序列必須匹配#65377;這樣任務(wù)A是否能到達(dá)語句u是一個(gè)PCP問題#65377;

        4 導(dǎo)致不可判定的因素

        構(gòu)造性證明可以提供對(duì)問題的一個(gè)直觀的,深入的認(rèn)識(shí)#65377;我們希望從證明中能對(duì)這樣一個(gè)問題給出啟發(fā),什么時(shí)候同步相關(guān)會(huì)造成不可判定問題?這對(duì)于實(shí)際的過程間并發(fā)程序分析有重要意義#65377;

        引理1 單過程的并發(fā)程序分析是可判定問題#65377;

        證明:每個(gè)進(jìn)程同步序列可以表示為一個(gè)正則語言,這個(gè)問題轉(zhuǎn)化為兩個(gè)正規(guī)語言的交集是否為空#65377;

        從上一節(jié)給出的不可判定的證明過程,可以得到更有趣的結(jié)果#65377;

        在定理1的證明過程中,我們通過任務(wù)B的反射作用,將X序列的同步匹配關(guān)系反射回任務(wù)A的同步序列Y,從而導(dǎo)致X和Y之間產(chǎn)生匹配關(guān)系,任務(wù)B的作用是將任務(wù)間的同步匹配關(guān)系反射到任務(wù)內(nèi),從而建立了同步與過程的關(guān)系#65377;

        但問題并不到此為止,表面上,任務(wù)B是將任務(wù)A發(fā)出的同步匹配關(guān)系反射到任務(wù)A內(nèi),然而注意到,過程匹配的匹配方式完全不同于同步匹配的匹配方式,任務(wù)A的X序列發(fā)出的同步請(qǐng)求,即使沒有馬上得到Y(jié)序列的接受,任務(wù)A并不會(huì)阻塞,仍然可以繼續(xù)執(zhí)行#65377;任務(wù)A的X和Y之間的匹配模式不是同步匹配模式,而是過程匹配模式#65377;任務(wù)B在調(diào)用點(diǎn)入口接受任務(wù)A的X序列,在調(diào)用返回點(diǎn)將接收的同步請(qǐng)求反射回任務(wù)A的Y序列,實(shí)際上是通過任務(wù)間的同步匹配將其自身的過程匹配關(guān)系“投影”到任務(wù)A,任務(wù)A的X和Y之間的匹配反映的是任務(wù)B的過程匹配關(guān)系,這樣,任務(wù)A內(nèi)有了兩個(gè)可交織的過程匹配,這就是不可判定的來源#65377;同步匹配在這個(gè)不可判定問題中起了一個(gè)傳遞作用,將一個(gè)任務(wù)的過程匹配關(guān)系通過同步匹配關(guān)系“投影”到另一個(gè)并發(fā)的任務(wù)內(nèi)#65377;

        上面的分析使我們得到這樣一個(gè)直觀的認(rèn)識(shí):不可判定的表現(xiàn)形式是,在一個(gè)任務(wù)內(nèi)形成兩個(gè)可交織的過程匹配,其中一個(gè)過程匹配是另一個(gè)并發(fā)任務(wù)的過程匹配通過同步匹配的“投影”#65377;

        5 結(jié) 論

        過程間并發(fā)程序分析是一個(gè)不可判定問題#65377;理解這個(gè)不可判定問題的來源是發(fā)展一個(gè)有效的分析算法的基礎(chǔ)#65377;現(xiàn)有的證明通過構(gòu)造三個(gè)并發(fā)任務(wù)的PCP問題實(shí)例,證明了過程間并發(fā)程序分析過程間并發(fā)程序分析是一個(gè)不可判定問題#65377;本文利用反射的思想構(gòu)造了一個(gè)PCP問題實(shí)例,僅僅用兩個(gè)并發(fā)任務(wù)將該問題轉(zhuǎn)化為PCP問題,證明了在兩個(gè)并發(fā)任務(wù)的情況下,過程間并發(fā)程序分析是一個(gè)不可判定問題#65377;證明的構(gòu)造過程顯示了,發(fā)生在任務(wù)內(nèi)的過程匹配和發(fā)生在任務(wù)間的同步匹配如何產(chǎn)生相互影響:任務(wù)的同步匹配關(guān)系被并發(fā)的其他任務(wù)反射回該任務(wù)本身,從而造成同步匹配與過程匹配的相互影響#65377;進(jìn)一步的,本文指出,同步匹配關(guān)系被反射回自身后,實(shí)際上反映的是對(duì)應(yīng)的并發(fā)任務(wù)的過程匹配關(guān)系,不可判定的表現(xiàn)形式是,在一個(gè)任務(wù)內(nèi)形成兩個(gè)可交織的過程匹配,其中一個(gè)過程匹配是另一個(gè)并發(fā)任務(wù)的過程匹配通過同步匹配的“投影”#65377;我們下一步工作將對(duì)過程間并發(fā)程序分析問題進(jìn)行進(jìn)一步研究,尋求一種有效的分析算法,解決目前過程間并發(fā)程序分析的困難#65377;

        注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。

        成人无码视频| 91热视频在线观看| 91精品国产乱码久久久| 色婷婷综合激情| 国产在线一区二区视频免费观看| 国产日韩精品一区二区在线观看播放 | AV无码系列一区二区三区| av免费在线播放观看| 日日摸日日碰人妻无码| 熟妇人妻av无码一区二区三区| 日本一区二区精品88| 亚洲国产av剧一区二区三区| 一道之本加勒比热东京| 精品乱码一区内射人妻无码| 亚洲精品无码人妻无码| 99久久国语露脸国产精品| 国产精品视频白浆免费视频| 2019日韩中文字幕mv| 亚洲国产精品久久久久久久| 日本第一区二区三区视频| 黄片视频大全在线免费播放| 中文字幕无线码| 免费毛片在线视频| 蜜臀精品一区二区三区| 久久99精品久久久久婷婷| 中文字幕人妻丝袜乱一区三区| 亚洲欧美日韩综合在线观看| 国产一品二品三品精品久久| 国产精品一区二区三区专区| 国产成人综合久久亚洲精品| 欧美日韩一区二区三区色综合| 国产成人激情视频在线观看| 丁香花五月六月综合激情| 国精品无码一区二区三区在线蜜臀| 亚洲欧美另类自拍| 男女性搞视频网站免费| 97精品人妻一区二区三区蜜桃 | 国产精品 人妻互换| 精品国产福利在线观看网址2022| 亚洲不卡av不卡一区二区| 风韵犹存丰满熟妇大屁股啪啪|