• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    并發(fā)程序中數(shù)據(jù)競爭檢測方法

    2019-08-01 01:35張楊梁亞楠張冬雯孫仕欣
    計(jì)算機(jī)應(yīng)用 2019年1期

    張楊 梁亞楠 張冬雯 孫仕欣

    摘 要:針對數(shù)據(jù)競爭檢測過程中的誤報(bào)和漏報(bào)問題,提出一種靜態(tài)數(shù)據(jù)競爭檢測方法。首先,使用控制流分析自動構(gòu)造線程內(nèi)和線程間函數(shù)調(diào)用圖;然后,收集線程內(nèi)變量訪問事件信息,定義競爭產(chǎn)生條件并分析檢測出所有可能的競爭;其次,為了提高檢測的準(zhǔn)確率,進(jìn)行別名變量和別名鎖的分析降低漏報(bào)和誤報(bào);最后,通過控制流分析來抽象訪問事件之間的時(shí)序關(guān)系,并結(jié)合程序切片技術(shù)對訪問事件的發(fā)生序關(guān)系進(jìn)行判斷,以此避免因忽略線程交互帶來的誤報(bào)。依據(jù)該方法,使用Java語言在Soot軟件分析框架下實(shí)現(xiàn)了一個(gè)數(shù)據(jù)競爭檢測工具。在實(shí)驗(yàn)中,對JGF和IBM Contest基準(zhǔn)測試套件中的raytracer和airline等程序進(jìn)行數(shù)據(jù)競爭檢測,并與目前已有的數(shù)據(jù)競爭檢測算法和工具(HB算法和RVPredict)進(jìn)行對比。實(shí)驗(yàn)結(jié)果表明,與HB算法和RVPredict工具相比,該方法檢測到的數(shù)據(jù)競爭總數(shù)分別增加了81%和16%,數(shù)據(jù)競爭檢測的準(zhǔn)確率分別提升了約14%和19%,有效地避免了數(shù)據(jù)競爭檢測中的漏報(bào)和誤報(bào)現(xiàn)象。

    關(guān)鍵詞:并發(fā)程序;數(shù)據(jù)競爭;控制流分析;別名分析;程序切片

    中圖分類號: TP311.53

    文獻(xiàn)標(biāo)志碼:A

    Abstract: Aiming at the problems of false positive and false negatives in data race detection, a novel static data race detection approach was proposed. Firstly, intra-thread and inter-thread function call graphs were automatically constructed via control flow analysis. Secondly, the information of variable-access events within thread were collected, and possible races were detected based on the defined data race conditions. Then, in order to improve the detection accuracy, alias variables and alias locks were analyzed to reduce false negatives and false positives, respectively. Finally, the sequential relationship between access events was abstracted through control flow analysis, and program slicing was used to determine the happens-before relationship of access events, thereby reducing false positives caused by ignoring thread interactions. A data race detection tool was implemented by Java and Soot framework based on this approach. In the experimentation, several benchmarks from JGF and IBM Contest benchmark suites, such as raytracer and airline, were selected for evaluation, and the results were compared with existing data race detection algorithm and tool (HB (Happens-Before) and RVPredict). The experimental results show that, compared with algorithm HB and tool RVPredict, total number of data races detected by the proposed approach are increased by 81% and 16% respectively, the accuracy of this approach for data race detection are respectively increased by 14% and 19%, which effectively avoids false negatives and false positives.

    Key words: concurrent program; data race; control flow analysis; alias analysis; program slicing

    0 引言

    隨著多核處理器的普及和眾核處理器的發(fā)展,越來越多的人開始使用并發(fā)編程來提高程序的性能。并發(fā)編程具有很多優(yōu)勢,它不僅可以減少程序的運(yùn)行時(shí)間,而且可以提高程序的吞吐量和多核處理器的利用率。

    雖然并發(fā)編程帶了很多好處,但并發(fā)程序內(nèi)部的并發(fā)性和不確定性仍然會導(dǎo)致一些難以避免的問題,包括死鎖、數(shù)據(jù)競爭、原子性違背和順序違背等,這些并發(fā)問題都有著難以檢測、調(diào)試和修復(fù)的特點(diǎn)[1]。在這些并發(fā)問題中,數(shù)據(jù)競爭是指在多線程程序中,兩個(gè)或多個(gè)線程在無時(shí)序限制情況下訪問同一內(nèi)存位置并且至少有一個(gè)線程執(zhí)行寫操作[2]。數(shù)據(jù)競爭常常是引起其他非死鎖并發(fā)缺陷的根本原因,并且在所有并發(fā)缺陷中占有較大比例[3-4]。

    依據(jù)檢測的時(shí)機(jī),數(shù)據(jù)競爭檢測分為靜態(tài)分析和動態(tài)分析兩種。動態(tài)分析通過插樁來獲取變量和別名的準(zhǔn)確信息,但由于線程調(diào)度策略不同,程序的執(zhí)行結(jié)果可能不同[5],這使得動態(tài)檢測覆蓋面不全,往往存在很多的漏報(bào),并且檢測開銷很大。與動態(tài)分析相比,靜態(tài)分析具有速度快、檢測更加全面等優(yōu)點(diǎn),但由于靜態(tài)分析的不可判定性,靜態(tài)檢測算法只是一種不完備的近似算法[6]。

    很多國內(nèi)外學(xué)者對數(shù)據(jù)競爭檢測的問題進(jìn)行了研究。其中動態(tài)檢測主要分為三種:基于發(fā)生序關(guān)系的檢測方法、基于鎖集的檢測方法、二者結(jié)合進(jìn)行檢測的方法?;诎l(fā)生序關(guān)系方法中具有代表性的方法是Djit+[7],它使用向量時(shí)鐘進(jìn)行數(shù)據(jù)競爭分析,F(xiàn)astTrack[8]和LOFT[9]等都是在向量時(shí)鐘基礎(chǔ)上進(jìn)行的改進(jìn)。Savage等[10]提出基于鎖集的檢測工具Eraser,通過共享變量持有的鎖集情況判斷競爭。ACCULOCK[11]是第一個(gè)采用輕量級邏輯時(shí)鐘平衡檢測精度與覆蓋率的二者混合方法。在靜態(tài)檢測方面,常用的檢測工具包括RacerX[12]、LOCKSMITH[13]和RELAY[14]。其中:RacerX利用流敏感和過程間分析檢測數(shù)據(jù)競爭和死鎖;LOCKSMITH首先使用標(biāo)簽流約束和抽象控制流圖約束來進(jìn)行鎖集分析,然后展開共享變量分析,最后結(jié)合線性分析檢測出數(shù)據(jù)競爭;RELAY由于其擴(kuò)展性堪稱優(yōu)良,能夠應(yīng)用在百萬級別代碼量的程序上,實(shí)際使用中獲得了高度認(rèn)可和廣泛接受。雖然很多學(xué)者在數(shù)據(jù)競爭檢測方面進(jìn)行了相關(guān)研究,但針對競爭檢測出現(xiàn)的誤報(bào)和漏報(bào)現(xiàn)象有待于進(jìn)一步研究與分析。

    為了降低數(shù)據(jù)競爭檢測的誤報(bào)率和漏報(bào)率,本文提出一個(gè)面向并發(fā)程序的靜態(tài)數(shù)據(jù)競爭檢測方法。該方法在Soot軟件分析框架[15]下使用控制流分析、別名分析、時(shí)序分析、程序切片等分析技術(shù)對并發(fā)程序中的數(shù)據(jù)競爭進(jìn)行檢測,并開發(fā)了相應(yīng)的檢測工具。在實(shí)驗(yàn)中,將本文方法和HB(Happens-Before)算法[16]、RVPredict[17]工具進(jìn)行了對比,實(shí)驗(yàn)結(jié)果表明,相對于其他兩種方法,本文方法能夠有效地發(fā)現(xiàn)并發(fā)程序中的數(shù)據(jù)競爭,可以改善檢測過程中的誤報(bào)和漏報(bào)問題。

    1 相關(guān)工作

    HB的概念最初由Lamport[16]是哪個(gè)文獻(xiàn)?是文獻(xiàn)16嗎?請明確。若不是文獻(xiàn)16,注意在正文中的文獻(xiàn)的依次引用順序。提出,Lamport使用HB來定義分布式系統(tǒng)中事件之間的偏序關(guān)系,并且提出了一個(gè)分布式算法用于同步邏輯時(shí)鐘系統(tǒng),將偏序關(guān)系擴(kuò)展為事件的某種全序關(guān)系。

    FastTrack是一個(gè)精確、有效的基于發(fā)生序關(guān)系的動態(tài)檢測方法,它是在經(jīng)典的HB方法Djit+上進(jìn)行的改進(jìn)。Djit+使用向量時(shí)鐘進(jìn)行數(shù)據(jù)競爭分析,而FastTrack采用基于epoch的輕量級邏輯時(shí)鐘將Djit+的時(shí)間復(fù)雜度從O(n)降到接近于O(1)。

    由于發(fā)生序關(guān)系對線程交錯(cuò)比較敏感,單純使用這一方法會導(dǎo)致很多漏報(bào)。鎖集算法通過判斷訪問操作發(fā)生時(shí)的鎖集情況來進(jìn)行數(shù)據(jù)競爭分析,它不敏感于線程交錯(cuò),而單純使用鎖集算法會忽略其他的一些同步原語,導(dǎo)致很多誤報(bào),因此結(jié)合鎖集算法和發(fā)生序關(guān)系的混合算法應(yīng)運(yùn)而生。ACCULOCK采用二者混合的方法,使用FastTrack中提到的輕量級邏輯時(shí)鐘來進(jìn)行發(fā)生序關(guān)系分析,同時(shí)對解鎖操作增加時(shí)間戳,根據(jù)鎖集的時(shí)間戳去掉一些冗余的分析。由于該方法保留的是共享內(nèi)存最后一次讀和寫相關(guān)的epoch和鎖集,因此也存在一定的誤報(bào)和漏報(bào)。

    在靜態(tài)檢測方面,Choi等[18]實(shí)現(xiàn)了對并發(fā)程序作自動分析的靜態(tài)工具。它以訪問事件為中心,分別對特定路徑和所有路徑作別名分析,得到確定的競爭和可能競爭的對象對,但是由于它沒有對線程間訪問事件的發(fā)生序關(guān)系進(jìn)行抽象分析(start/join原語等),因此會導(dǎo)致很多誤報(bào)。

    RacerX對C語言的競爭按模式匹配檢測,它是一個(gè)靜態(tài)工具,使用流敏感的過程間分析來檢測競爭。RacerX用于在大型復(fù)雜的多線程系統(tǒng)中,且分析速度很快,但是它不進(jìn)行別名分析,只是根據(jù)經(jīng)驗(yàn)對分析產(chǎn)生的競爭對按照可能性等級排列,所以準(zhǔn)確度比較低。

    吳萍等[19]提出了一種精確、有效的對多線程程序靜態(tài)檢測的框架JTool,它的分析算法將競爭問題分解為跨線程的控制流分析,應(yīng)用了上下文敏感和流敏感的別名分析,并靜態(tài)模擬了訪問事件的時(shí)序關(guān)系以進(jìn)行約束求解。

    近幾年,出現(xiàn)了很多數(shù)據(jù)競爭預(yù)測分析工具,RVPredict采用因果預(yù)測分析方法,將抽象化的控制流信息添加到執(zhí)行模型中,把競爭檢測作為一個(gè)約束求解問題,利用SMT(Satisfiability Modulo Theories)求解器來查找競爭。Liu等[20]利用指針分析對預(yù)測分析方法進(jìn)行了改進(jìn),實(shí)現(xiàn)了一個(gè)競爭預(yù)測分析工具。它是第一個(gè)允許改變訪問位置的預(yù)測分析工具,通過指針分析和預(yù)測分析的結(jié)合來解決訪問變量依賴于訪問位置的問題,并采用了混合編碼方式以提高實(shí)用性。

    2 競爭檢測

    2.1 檢測框架

    本文利用Soot分析工具對Java源代碼進(jìn)行中間轉(zhuǎn)換,采用Jimple作為中間表示(Intermediate Representation, IR),通過控制流分析構(gòu)造線程內(nèi)和線程間的函數(shù)調(diào)用關(guān)系圖,收集線程內(nèi)的所有訪問事件;通過定義數(shù)據(jù)競爭產(chǎn)生的條件,并依據(jù)條件收集所有可能產(chǎn)生競爭的訪問事件對;為了提高檢測的精確度,對所有的競爭訪問事件進(jìn)行別名分析和發(fā)生序關(guān)系分析,別名分析不僅考慮了別名變量的影響,還考慮到了別名鎖帶來的誤報(bào)問題;在發(fā)生序關(guān)系分析中,本文采用控制流分析抽象線程內(nèi)和線程間訪問事件的時(shí)序關(guān)系,對訪問事件進(jìn)行切片分析并定義發(fā)生序關(guān)系產(chǎn)生的條件,完成兩個(gè)事件的發(fā)生序關(guān)系判斷,排除某些因線程交互造成的假競爭。競爭檢測框架如圖1所示。

    2.2 Soot分析

    本文提出的框架使用Soot軟件分析工具輔助完成。Soot框架提供了一組用于分析和變換的中間表示Jimple,它是一個(gè)緊湊、無棧、類型化的三地址代碼中間表示法。在Jimple的基礎(chǔ)上,Soot不僅提供了一系列類和方法用于源程序的分析,還提供了以Pack為中心的擴(kuò)展機(jī)制,一個(gè)Pack包括若干個(gè)變換,用戶可以自行設(shè)計(jì)新的變換,將其加入到Soot的調(diào)度執(zhí)行過程中以實(shí)現(xiàn)特定的功能。例如,本文利用Soot工具提供的類ReachableMethods和TransitiveTargets中的若干方法獲取線程的所有直接和間接調(diào)用函數(shù),并自定義方法排除調(diào)用函數(shù)中無變量訪問操作以及那些屬于Java開發(fā)工具包(Java Development Kit, JDK)的函數(shù),最后將本文的函數(shù)調(diào)用圖分析作為一個(gè)新的轉(zhuǎn)換添加的Soot的調(diào)度過程中,完成線程內(nèi)和線程間的函數(shù)調(diào)用關(guān)系圖分析。

    2.3 訪問事件

    由于競爭檢測經(jīng)常發(fā)生在一對事件之間,所以本文使用“訪問事件對”來描述數(shù)據(jù)競爭檢測情況。使用Soot擴(kuò)展機(jī)制進(jìn)行控制流分析,構(gòu)建主線程和子線程關(guān)于線程內(nèi)和線程間的函數(shù)調(diào)用關(guān)系圖,每個(gè)線程對變量進(jìn)行一次訪問操作記作一個(gè)訪問事件。從每個(gè)線程的函數(shù)調(diào)用圖中收集該線程的所有訪問事件。

    將一個(gè)訪問事件表示為:

    其中:threadID為訪問線程的ID,accessObject表示線程的訪問變量,iswrite(布爾型)表示訪問操作是否為寫操作,lockset表示訪問操作發(fā)生時(shí)所擁有的鎖集。

    下面給出一個(gè)可能存在數(shù)據(jù)競爭的示例程序,如圖2所示(第4行與第9行代碼存在競爭)。該示例程序包含3個(gè)線程:main、t1和t2。主線程main創(chuàng)建了兩個(gè)子線程t1和t2;線程t1在第5行和第7行分別獲取鎖和釋放鎖,因此第4行的訪問操作不受鎖保護(hù);線程t2在第8行獲取鎖之后該線程中的變量訪問操作均受鎖保護(hù),直至第11行釋放鎖。第1行在沒有鎖保護(hù)的情況下,主線程main對變量x的域g進(jìn)行了寫操作,記作訪問事件ACCESS1:〈main,x.g,1,{null}〉;類似地,線程t1在第4行和第6行的訪問事件分別為ACCESS4:〈t1,x.g,1,{null}〉和ACCESS6:〈t1,x.f,1,{lock(a)}〉;線程t2在第9行和第10行的訪問事件分別為ACCESS9:〈t2,y.g,1,{lock(b)}〉和ACCESS10:〈t2,y.f,1,{lock(b)}〉。

    2.4 數(shù)據(jù)競爭判定條件

    兩個(gè)訪問事件ACCESSi和ACCESSj存在數(shù)據(jù)競爭當(dāng)且僅當(dāng)它們滿足以下條件:

    依據(jù)數(shù)據(jù)競爭發(fā)生的條件,對訪問事件進(jìn)行判斷,能夠得到所有可能的數(shù)據(jù)競爭。

    2.5 別名分析

    別名現(xiàn)象是指兩個(gè)互為別名的引用變量共同指向同一個(gè)對象時(shí),其中一個(gè)引用對象改變,另一個(gè)引用變量的對象值也會跟著改變。

    對兩個(gè)訪問事件的訪問對象進(jìn)行別名分析,目的是判斷兩個(gè)變量訪問操作所指向的內(nèi)存位置是否一致,避免因忽略變量的別名現(xiàn)象而帶來的漏報(bào)。假設(shè)圖2中x,y是一對別名,那么第4行和第9行的訪問對象x.g和y.g將指向的是同一內(nèi)存位置;而假如沒有考慮到x,y互為別名的現(xiàn)象,在競爭檢測過程中,x.g和y.g被作為兩個(gè)不同的訪問對象,那么會導(dǎo)致線程t1,t2之間實(shí)際的數(shù)據(jù)競爭〈ACCESS4,ACCESS9〉被漏報(bào)。

    別名現(xiàn)象還存在于鎖集分析中,對鎖集進(jìn)行別名分析,能夠在一定程度上降低誤報(bào)。例如,圖2中第6行和第10行的競爭訪問對:〈ACCESS6,ACCESS10〉,兩個(gè)訪問操作所持有的鎖集分別為{lock(a)}和{lock(b)}。假設(shè)a,b是一對別名,那么lockset6∧lockset10≠null(其中,lockseti表示第i條語句所在的鎖集),根據(jù)鎖的排他性,那么線程t1和t2將不可能同時(shí)訪問域f。如果不考慮別名現(xiàn)象,那么兩個(gè)訪問事件的鎖集的交集為null,該訪問事件對很可能被報(bào)告為一個(gè)真實(shí)競爭,這會導(dǎo)致誤報(bào),因此,針對鎖的別名分析能夠避免某些誤報(bào)情況的發(fā)生,提高數(shù)據(jù)競爭檢測的精確度。

    2.6 控制流分析

    本文基于Jimple構(gòu)造并發(fā)程序的控制流圖(Control Flow Graph, CFG)。CFG為用在編譯器中的一個(gè)抽象數(shù)據(jù)結(jié)構(gòu),它是一個(gè)有向圖,可以用G=(N,E,nentry,nexit)表示。其中,N為節(jié)點(diǎn)集,N= {n1, n2,…},程序中每條語句對應(yīng)圖中的一個(gè)節(jié)點(diǎn);E為有向邊集,E= {〈n1, n2〉| n1,n2∈N},且n1執(zhí)行后可能立即執(zhí)行n2;nentry和nexit分別為程序的入口和出口節(jié)點(diǎn)。

    對圖2示例程序進(jìn)行控制流圖分析,可以得到:

    基于所在線程,對N中所有節(jié)點(diǎn)進(jìn)行分類;通過收集每個(gè)節(jié)點(diǎn)的出度邊,對E中所有邊進(jìn)行分類,得到如表1所示的基于線程的節(jié)點(diǎn)集和邊集。

    2.7 發(fā)生序關(guān)系分析

    2.7.1 時(shí)序關(guān)系圖

    通過相應(yīng)的有向邊將程序中的節(jié)點(diǎn)連接起來,能夠得到各節(jié)點(diǎn)之間的時(shí)序關(guān)系圖,圖3中每一個(gè)節(jié)點(diǎn)代表程序中語句的一次執(zhí)行,有向邊表明了各節(jié)點(diǎn)之間的執(zhí)行順序。線程內(nèi)的有向邊用實(shí)線箭頭表示,〈2,4〉和〈3,8〉為跨線程有向邊,用虛線箭頭表示。

    在一個(gè)時(shí)序關(guān)系圖中,當(dāng)兩個(gè)訪問事件的節(jié)點(diǎn)之間能夠通過一個(gè)或多個(gè)有向邊單向連接時(shí),它們之間是存在發(fā)生序關(guān)系的。兩個(gè)訪問事件ACCESSi和ACCESSj存在發(fā)生序關(guān)系當(dāng)且僅當(dāng)它們滿足以下條件:

    1)ACCESSi能夠通過若干有向邊到達(dá)ACCESSj(保證連接性);

    2)ACCESSj不能通過有向邊到達(dá)ACCESSi(保證單向性)。

    例如,對于圖3中節(jié)點(diǎn)1和節(jié)點(diǎn)4(訪問事件對〈ACCESS1,ACCESS4〉),雖然訪問對象相同均為x.g,但兩者可以通過若干有向邊單向連接,因此具有發(fā)生序關(guān)系,不會產(chǎn)生競爭;而節(jié)點(diǎn)4和節(jié)點(diǎn)9(不能通過若干有向邊單向連接)之間不具有發(fā)生序關(guān)系。

    2.7.2 訪問事件切片分析

    本文方法對時(shí)序關(guān)系圖中的訪問事件進(jìn)行程序切片,然后定義產(chǎn)生發(fā)生序關(guān)系的條件,依據(jù)所得的切片是否滿足特定條件判斷是否具有發(fā)生序關(guān)系。程序P的切片S是一個(gè)可執(zhí)行的程序,對某個(gè)程序點(diǎn)s處的變量v而言(〈s,v〉稱為切片準(zhǔn)則),S由程序P中可能影響s處變量v的值的所有語句構(gòu)成[21]。例如,對于節(jié)點(diǎn)1和節(jié)點(diǎn)4(即針對訪問事件對〈ACCESS1,ACCESS4〉),分別以切片準(zhǔn)則〈1,g〉和〈4,g〉向后進(jìn)行程序切片,收集所有通過有向邊可達(dá)的可能影響變量g的節(jié)點(diǎn),分別得到切片S1:〈1,4,9〉和S4:〈4〉。

    針對任意兩個(gè)訪問事件的切片,定義產(chǎn)生發(fā)生序關(guān)系的條件。當(dāng)兩個(gè)訪問事件分別以〈si,v〉和〈sj,v〉作為切片準(zhǔn)則得到程序切片Si和Sj時(shí),它們具有發(fā)生序關(guān)系需要滿足的條件1)和2)可以抽象定義為:(si∈Sj)∧(sjSi)。

    例如,對于訪問事件對〈ACCESS1,ACCESS4〉,由于兩個(gè)訪問事件存在start原語產(chǎn)生的線程交互,因此兩個(gè)訪問事件不可能同時(shí)發(fā)生。對兩者的切片進(jìn)行發(fā)生序關(guān)系條件的判斷,得到(4∈S1)∧(1S4),所以節(jié)點(diǎn)1和節(jié)點(diǎn)4之間具有發(fā)生序關(guān)系,〈ACCESS1,ACCESS4〉為假競爭。同理,可以對節(jié)點(diǎn)4和節(jié)點(diǎn)9進(jìn)行切片并進(jìn)行條件判斷,能發(fā)現(xiàn)〈ACCESS4,ACCESS9〉不具有發(fā)生序關(guān)系。

    由此可見,發(fā)生序關(guān)系分析能夠?qū)€程交互造成的訪問事件之間的時(shí)序限制進(jìn)行分析,排除部分假競爭,提高檢測的準(zhǔn)確度。

    3 實(shí)驗(yàn)

    3.1 實(shí)驗(yàn)環(huán)境與測試程序

    在實(shí)驗(yàn)中,使用了Dell Z820工作站,該工作站中配備了兩個(gè)Intel Xeon E5-2650處理器,主頻為2.60GHz,每一個(gè)CPU有8個(gè)處理核,每個(gè)處理核均支持超線程,可支持32個(gè)線程同時(shí)運(yùn)行,內(nèi)存128GB。在軟件方面,使用了64位Windows 7操作系統(tǒng),JDK版本是1.8.0_31。

    在測試程序的選擇上,本文從JGF(Java Grande Forum)基準(zhǔn)測試套件[22]中選取了光線追蹤程序raytracer和蒙特卡羅程序montecarlo,這兩個(gè)測試程是JGF測試程序中較大規(guī)模的測試程序,它們分別提供了SizeA和SizeB兩種輸入,在實(shí)驗(yàn)中選擇使用較大數(shù)據(jù)集SizeB作為輸入,這兩個(gè)測試程序分別存在一個(gè)已知的數(shù)據(jù)競爭;此外,本文從IBM Contest基準(zhǔn)測試套件[23]中選取了3個(gè)測試程序,分別是bufwrite、mergesort和airline。表2對實(shí)驗(yàn)選取的測試程序的相關(guān)屬性進(jìn)行了說明。

    3.2 實(shí)驗(yàn)結(jié)果與分析

    為了驗(yàn)證本文提出的方法的有效性,將本文方法分別與HB算法和RVPredict方法進(jìn)行了比較。在實(shí)驗(yàn)中,對檢測的數(shù)據(jù)競爭數(shù)和檢測所耗費(fèi)的時(shí)間進(jìn)行了測試,實(shí)驗(yàn)結(jié)果如表3所示。

    從表3的實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn):

    1)本文方法能夠有效地發(fā)現(xiàn)潛在的數(shù)據(jù)競爭,從而更大限度地避免漏報(bào)。

    對于測試程序bufwrite,三種方法檢測的數(shù)據(jù)競爭數(shù)相同;而對于mergesort、airline和montecarlo三個(gè)測試程序,本文方法檢測的數(shù)據(jù)競爭數(shù)均多于HB算法和RVPredict。其中最為明顯的是mergesort測試程序,本文方法檢測到數(shù)據(jù)競爭15個(gè),而HB算法和RVPredict檢測結(jié)果均不足10個(gè)。為了保證檢測結(jié)果的正確性,對相關(guān)代碼進(jìn)行了分析,經(jīng)過確認(rèn),這些數(shù)據(jù)競爭均真實(shí)有效。

    綜上,能夠看出本文方法具有較高的檢測覆蓋率,能夠更大限度地避免漏報(bào)現(xiàn)象。這是因?yàn)椋罕疚耐ㄟ^構(gòu)造時(shí)序約束圖來進(jìn)行發(fā)生序關(guān)系分析,在時(shí)序約束圖中并沒有指定訪問事件的執(zhí)行路徑;而HB算法對線程調(diào)度比較敏感,線程調(diào)度不同,訪問事件的執(zhí)行路徑不同,因此存在很多漏報(bào);RVPredict將執(zhí)行路徑抽象為一系列訪問事件序列,因此也可能會遺漏某些路徑而導(dǎo)致漏報(bào)。此外,本文方法中別名變量的分析也在一定程度上降低了漏報(bào)的發(fā)生。

    2)本文方法能夠顯著避免誤報(bào)的發(fā)生。

    對于測試程序raytracer,已知實(shí)際有害競爭數(shù)為1,本文方法檢測的數(shù)據(jù)競爭數(shù)為1,而HB算法和RVPredict檢測的數(shù)據(jù)競爭數(shù)分別為3和5,這表明本文方法不僅能夠準(zhǔn)確檢測實(shí)際競爭,而且還能夠避免誤報(bào)。從檢測結(jié)果總數(shù)來看,本文檢測到的競爭共29個(gè),與RVPredict相比,本文方法檢測到的數(shù)據(jù)競爭總數(shù)增加了16%;與HB算法相比,本文方法的檢測競爭總數(shù)甚至增加了約81%。從檢測的準(zhǔn)確率來看,本文方法檢測準(zhǔn)確率為100%,而HB算法和RVPredict的準(zhǔn)確率分別為87.5%和84%,與這兩種方法相比,準(zhǔn)確率分別提升了約14%和19%。這說明本文方法在提高數(shù)據(jù)競爭檢測覆蓋率的同時(shí),能夠保證檢測的正確性,避免誤報(bào)的發(fā)生。

    本文方法中對于別名鎖的分析能夠降低某些數(shù)據(jù)競爭的誤報(bào)現(xiàn)象,此外,通過時(shí)序約束圖和程序切片的結(jié)合進(jìn)行發(fā)生序關(guān)系分析能夠避免那些因忽略線程交互帶來的誤報(bào)。

    3)從檢測時(shí)間上看,本文提出的方法沒有明顯的開銷,而且大多數(shù)情況優(yōu)于其他兩種方法。

    對于bufwrite、mergesort程序,本文方法比HB方法的檢測時(shí)間略長,但是少于RVPredict的檢測時(shí)間;對于airline和montecarlo程序,本文方法的檢測時(shí)間明顯少于其他兩種檢測方法;對于raytracer程序,本文方法的檢測時(shí)間略長??偟膩碚f,盡管本文方法對于某些程序的檢測時(shí)間多于其他兩種方法,但是這些檢測時(shí)間也都在可接受的時(shí)間范圍之內(nèi),本文方法并沒有產(chǎn)生明顯的開銷。

    4 結(jié)語

    本文提出了一種面向并發(fā)程序的靜態(tài)數(shù)據(jù)競爭檢測方法,該方法采用控制流分析、別名分析、時(shí)序分析以及程序切片技術(shù)對數(shù)據(jù)競爭進(jìn)行檢測,降低數(shù)據(jù)競爭檢測過程中的誤報(bào)和漏報(bào)。在實(shí)驗(yàn)中本文通過5個(gè)基準(zhǔn)測試程序驗(yàn)證了該方法的有效性,并與HB算法和RVPredict工具進(jìn)行實(shí)驗(yàn)對比,結(jié)果表明在沒有增加檢測開銷的前提下,本文方法不僅能夠有效地檢測數(shù)據(jù)競爭,而且能夠降低誤報(bào)率和漏報(bào)率。進(jìn)一步研究包括選取更多樣化以及規(guī)模更大的基準(zhǔn)程序?qū)Ρ疚牡姆椒ㄟM(jìn)行測試。

    參考文獻(xiàn) (References)

    [1] YANG J, JIANG B, CHAN W K. HistLock+: precise memory access maintenance without lockset comparison for complete hybrid data race detection [J]. IEEE Transactions on Reliability, 2018, 68(3): 786-801.

    [2] 禹振,楊振,蘇小紅,等.多線程程序數(shù)據(jù)競爭檢測和驗(yàn)證方法研究綜述![J].智能計(jì)算機(jī)與應(yīng)用,2017,7(3):123-126.(YU Z, YANG Z, SU X H, et al. A survey on methods of data race detection and verification on multithreaded program [J]. Intelligent Computer & Applications, 2017, 7(3): 123-126.)

    [3] 蘇小紅,禹振,王甜甜,等.并發(fā)缺陷暴露、檢測與規(guī)避研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2015,38(11):2215-2233.(SU X H, YU Z, WANG T T, et al. A survey on exposing, detecting and avoiding concurrency bugs [J]. Chinese Journal of Computers, 2015, 38(11): 2215-2233.)

    [4] LU S, PARK S, SEO E, et al. Learning from mistakes: a comprehensive study on real world concurrency bug characteristics [J]. ACM SIGARCH Computer Architecture News, 2008, 44(3): 11-21.

    [5] 吳俞伯,郭俊霞,李征,等.基于并發(fā)程序數(shù)據(jù)競爭故障的變異策略[J].計(jì)算機(jī)應(yīng)用,2016,36(11):3170-3177.(WU Y B, GUO J X, LI Z, et al. Mutation strategy based on concurrent program data racing fault [J]. Journal of Computer Applications, 2016, 36(11): 3170-3177.)

    [6] 張昱,郝允允.Java程序數(shù)據(jù)競爭的增量式檢測[J].西安交通大學(xué)學(xué)報(bào),2009,43(8):22-27.(ZHANG Y, HAO Y Y. Incremental detection of data race for Java programs [J]. Journal of Xian JiaoTong University, 2009, 43(8): 22-27.)

    [7] POZNIANSKY E, SCHUSTER A. MultiRace: efficient on-the-fly data race detection in multithreaded C++ programs [J]. Concurrency & Computation Practice & Experience, 2007, 19(3): 327-340.

    [8] FLANAGAN C, FREUND S N. FastTrack: efficient and precise dynamic race detection [C]// Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation. New York: ACM, 2009: 121-133.

    [9] CAI Y, CHAN W K. LOFT: redundant synchronization event removal for data race detection [C]// Proceedings of the 2011 IEEE 22nd International Symposium on Software Reliability Engineering. Washington, DC: IEEE Computer Society, 2011: 160-169.

    [10] SAVAGE S, BURROWS M, NELSON G, et al. Eraser: a dynamic data race detector for multi-threaded programs [J]. ACM Transactions on Computer Systems, 1997, 31(5): 27-37.

    [11] XIE X, XUE J. ACCULOCK: accurate and efficient detection of data races [J]. Software Practice & Experience, 2013, 43(5): 543-576.

    [12] ENGLER D, ASHCRAFT K. RacerX: effective, static detection of race conditions and deadlocks [C]// SOSP 03: Proceedings of the 19th ACM Symposium on Operating Systems Principles. New York: ACM, 2003: 237-252.

    [13] PRATIKAKIS P, FOSTER J S, HICKS M. LOCKSMITH: context-sensitive correlation analysis for race detection [J]. ACM SIGPLAN Notices, 2006, 41(6): 320-331.

    [14] VOUNG J W, JHALA R, LERNER S. RELAY: static race detection on millions of lines of code [C]// Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. New York: ACM, 2007: 205-214.

    [15] LAM P, VERBRUGGE C, POMINVILLE P, et al. Soot (poster session): a Java bytecode optimization and annotation framework [C]// OOPSLA00: Proceedings of the 2000 Conference on Object-Oriented Programming, Systems, Languages, and Applications. New York: ACM, 2000: 113-114.

    [16] LAMPORT L. Time, clocks, and the ordering of events in a distributed system [J]. Communications of the ACM, 2008, 21(7): 558-565.

    [17] HUANG J, MEREDITH P O, ROSU G. Maximal sound predictive race detection with control flow abstraction [J]. ACM SIGPLAN Notices, 2014, 49(6): 337-348.

    [18] CHOI J D, LOGINOV A, SARKAR V. Static datarace analysis for multithreaded object-oriented programs [R]. Yorktown Heights, NY: IBM Research Division, 2001: 1-18.

    [19] 吳萍,陳意云,張健.多線程程序數(shù)據(jù)競爭的靜態(tài)檢測[J].計(jì)算機(jī)研究與發(fā)展,2006,43(2):329-335.(WU P, CHEN Y Y, ZHANG J. Static data-race detection for multithread programs [J]. Journal of Computer Research and Development, 2006, 43(2): 329-335.)

    [20] LIU P, TRIPP O, ZHANG X. IPA: improving predictive analysis with pointer analysis [C]// Proceedings of the 2016 International Symposium on Software Testing and Analysis. New York: ACM, 2016: 59-69.

    [21] WEISER M. Program slicing [J]. IEEE Transactions on Software Engineering, 1984, SE-10(4): 352-357.

    [22] SMITH L A, BULL J M, OBDRIZALEK J. A parallel Java grande benchmark suite [C]// Proceedings of the 2001 ACM/IEEE Conference of Supercomputing. Piscataway, NJ: IEEE, 2001: 8-8.

    [23] FARCHI E, NIR Y, UR S. Concurrent bug patterns and how to test them [C]// Proceedings of the 2003 International Symposium on Parallel and Distributed Processing. Washington, DC: IEEE Computer Society, 2003: 286-296.

    欧美精品高潮呻吟av久久| 性色avwww在线观看| 久久久午夜欧美精品| 黄色毛片三级朝国网站 | 久久精品久久久久久久性| 男女边吃奶边做爰视频| xxx大片免费视频| 视频区图区小说| 蜜臀久久99精品久久宅男| 国产免费福利视频在线观看| 熟女电影av网| 亚洲av二区三区四区| 免费av不卡在线播放| 国产精品一区二区在线观看99| 三级经典国产精品| 美女脱内裤让男人舔精品视频| 久久亚洲国产成人精品v| 亚洲国产欧美日韩在线播放 | 亚洲精品国产成人久久av| www.色视频.com| 国产日韩欧美在线精品| 欧美丝袜亚洲另类| 久久精品国产亚洲网站| 人妻少妇偷人精品九色| 在线 av 中文字幕| 中文字幕精品免费在线观看视频 | 18+在线观看网站| 日韩电影二区| 高清在线视频一区二区三区| 中文字幕人妻熟人妻熟丝袜美| 日韩在线高清观看一区二区三区| www.av在线官网国产| 欧美精品一区二区大全| 亚洲伊人久久精品综合| 91久久精品国产一区二区成人| 简卡轻食公司| 丝瓜视频免费看黄片| 国产精品人妻久久久久久| 大陆偷拍与自拍| 欧美区成人在线视频| 亚洲精品,欧美精品| 亚州av有码| 久久99热这里只频精品6学生| 欧美日韩av久久| 成年av动漫网址| 亚洲精品一二三| 免费人成在线观看视频色| 国产精品一区二区三区四区免费观看| 国产一区二区三区av在线| 一边亲一边摸免费视频| 国模一区二区三区四区视频| 欧美日韩亚洲高清精品| 日韩成人伦理影院| 亚洲精品亚洲一区二区| 日韩中文字幕视频在线看片| 一二三四中文在线观看免费高清| 成人二区视频| 人人妻人人爽人人添夜夜欢视频 | 国产成人免费观看mmmm| 久久国产亚洲av麻豆专区| 亚洲精品第二区| 纯流量卡能插随身wifi吗| av视频免费观看在线观看| 最近中文字幕2019免费版| 国产精品偷伦视频观看了| 一边亲一边摸免费视频| 下体分泌物呈黄色| 中文字幕久久专区| 国产女主播在线喷水免费视频网站| 日韩伦理黄色片| 亚洲国产精品一区三区| 简卡轻食公司| 欧美97在线视频| 波野结衣二区三区在线| 久久久久精品久久久久真实原创| 色视频在线一区二区三区| 国产精品一区www在线观看| 韩国高清视频一区二区三区| 欧美老熟妇乱子伦牲交| 午夜福利网站1000一区二区三区| 国产成人免费观看mmmm| 最近手机中文字幕大全| 乱码一卡2卡4卡精品| 亚洲国产日韩一区二区| 国产欧美日韩综合在线一区二区 | 热re99久久精品国产66热6| 久久精品国产a三级三级三级| 国产色爽女视频免费观看| 久久久久久久久久久免费av| 午夜av观看不卡| 91久久精品国产一区二区三区| 免费观看的影片在线观看| 久久久久精品性色| 少妇熟女欧美另类| 国产色爽女视频免费观看| 久久这里有精品视频免费| 熟女av电影| 国产成人freesex在线| 亚洲经典国产精华液单| 亚洲精品日韩在线中文字幕| 亚洲国产精品专区欧美| 国产亚洲欧美精品永久| av免费观看日本| 黄色一级大片看看| 国产在线一区二区三区精| 韩国高清视频一区二区三区| 夜夜骑夜夜射夜夜干| 日日爽夜夜爽网站| 国产视频首页在线观看| 亚洲国产欧美在线一区| 日韩中字成人| 高清av免费在线| 久久久久人妻精品一区果冻| 狂野欧美激情性xxxx在线观看| 嫩草影院新地址| av国产久精品久网站免费入址| 99久久精品国产国产毛片| 最近的中文字幕免费完整| 国产91av在线免费观看| 欧美最新免费一区二区三区| 中国三级夫妇交换| 国产精品嫩草影院av在线观看| 亚洲精品成人av观看孕妇| 成人午夜精彩视频在线观看| 汤姆久久久久久久影院中文字幕| 久久综合国产亚洲精品| 男人狂女人下面高潮的视频| 久久久国产精品麻豆| 国产极品粉嫩免费观看在线 | 欧美97在线视频| 久久人妻熟女aⅴ| 十分钟在线观看高清视频www | 精品视频人人做人人爽| 天天操日日干夜夜撸| 777米奇影视久久| 大香蕉97超碰在线| 精品一品国产午夜福利视频| 亚洲精品视频女| 丰满乱子伦码专区| 亚洲欧美中文字幕日韩二区| 久久久a久久爽久久v久久| 黑丝袜美女国产一区| 日韩制服骚丝袜av| 免费观看的影片在线观看| 精品亚洲成国产av| 成人毛片a级毛片在线播放| xxx大片免费视频| 麻豆成人午夜福利视频| 在线观看免费视频网站a站| 天堂中文最新版在线下载| 日本午夜av视频| 美女xxoo啪啪120秒动态图| 国产乱来视频区| 中文字幕免费在线视频6| 国产成人精品一,二区| 精品熟女少妇av免费看| 777米奇影视久久| 色婷婷久久久亚洲欧美| 18+在线观看网站| 日本欧美视频一区| 男女免费视频国产| 国产国拍精品亚洲av在线观看| 男人爽女人下面视频在线观看| 精品久久久噜噜| 亚洲av欧美aⅴ国产| 色哟哟·www| 乱系列少妇在线播放| 精品亚洲成国产av| 亚洲精品乱码久久久久久按摩| a级毛片免费高清观看在线播放| 亚洲国产精品成人久久小说| 日日摸夜夜添夜夜添av毛片| 一区二区三区精品91| 免费av中文字幕在线| 91精品伊人久久大香线蕉| 九九爱精品视频在线观看| 国产又色又爽无遮挡免| 欧美日韩在线观看h| 高清av免费在线| 亚洲欧美一区二区三区国产| 在线观看免费视频网站a站| 亚洲av中文av极速乱| 9色porny在线观看| 男人狂女人下面高潮的视频| 国产白丝娇喘喷水9色精品| 成人国产麻豆网| av国产久精品久网站免费入址| 欧美 日韩 精品 国产| 亚洲经典国产精华液单| 午夜久久久在线观看| 狂野欧美激情性bbbbbb| 女人久久www免费人成看片| 国产精品秋霞免费鲁丝片| 18禁在线无遮挡免费观看视频| 国产精品蜜桃在线观看| 免费观看av网站的网址| 搡老乐熟女国产| 欧美 日韩 精品 国产| .国产精品久久| 国产精品人妻久久久影院| 亚洲精品久久午夜乱码| 丝瓜视频免费看黄片| 国产伦在线观看视频一区| 免费观看a级毛片全部| 国产免费视频播放在线视频| 国产免费又黄又爽又色| 一区二区三区精品91| 免费观看无遮挡的男女| 一个人免费看片子| 久久久亚洲精品成人影院| 9色porny在线观看| 精品人妻一区二区三区麻豆| freevideosex欧美| 国产成人免费无遮挡视频| 中文在线观看免费www的网站| 成年美女黄网站色视频大全免费 | 天美传媒精品一区二区| 在线亚洲精品国产二区图片欧美 | 久久久午夜欧美精品| 久久久久久久精品精品| 亚洲国产成人一精品久久久| 国产熟女欧美一区二区| 国产欧美另类精品又又久久亚洲欧美| 高清不卡的av网站| 久久精品久久久久久久性| 精品一区二区三卡| 十八禁网站网址无遮挡 | 精品一区在线观看国产| videossex国产| 亚洲国产欧美日韩在线播放 | 亚洲,欧美,日韩| 人体艺术视频欧美日本| 如日韩欧美国产精品一区二区三区 | 免费观看无遮挡的男女| 99热全是精品| 亚洲三级黄色毛片| 夫妻性生交免费视频一级片| 精品久久久久久久久亚洲| 伦理电影免费视频| 麻豆成人午夜福利视频| 国产在线视频一区二区| 日韩大片免费观看网站| 热re99久久精品国产66热6| 国产精品.久久久| 一本色道久久久久久精品综合| 少妇人妻精品综合一区二区| 国产白丝娇喘喷水9色精品| 777米奇影视久久| 亚洲成人一二三区av| 国产av码专区亚洲av| 国产精品三级大全| 建设人人有责人人尽责人人享有的| 中文字幕免费在线视频6| 精品少妇久久久久久888优播| 国产成人精品一,二区| 3wmmmm亚洲av在线观看| 只有这里有精品99| 欧美bdsm另类| 亚洲欧美一区二区三区国产| 日本免费在线观看一区| 国产免费视频播放在线视频| 午夜免费男女啪啪视频观看| 久久久国产一区二区| 在线亚洲精品国产二区图片欧美 | 日日撸夜夜添| 色视频www国产| 我的老师免费观看完整版| 毛片一级片免费看久久久久| 久久久久久久久久成人| 91久久精品国产一区二区三区| 精品亚洲成国产av| 精品久久久久久电影网| 中文字幕亚洲精品专区| 国产 一区精品| 91精品国产国语对白视频| 97超碰精品成人国产| 一本—道久久a久久精品蜜桃钙片| 亚洲成人一二三区av| 欧美精品一区二区大全| 午夜老司机福利剧场| 不卡视频在线观看欧美| 国产高清国产精品国产三级| 日韩一区二区视频免费看| 久久久久久伊人网av| 亚洲精品456在线播放app| 日韩欧美 国产精品| 在线观看免费高清a一片| 免费少妇av软件| 国产伦精品一区二区三区视频9| 韩国高清视频一区二区三区| 久久久午夜欧美精品| 在线 av 中文字幕| 成年美女黄网站色视频大全免费 | 丝瓜视频免费看黄片| av在线观看视频网站免费| 色婷婷久久久亚洲欧美| 免费观看在线日韩| 午夜老司机福利剧场| 人妻制服诱惑在线中文字幕| 在线观看美女被高潮喷水网站| 日韩欧美一区视频在线观看 | 亚洲人成网站在线观看播放| 午夜久久久在线观看| 精品亚洲成国产av| 国产成人91sexporn| 国产精品久久久久久久久免| 中文欧美无线码| 狂野欧美激情性bbbbbb| 久久久久久久久久久久大奶| 国产精品久久久久久精品电影小说| av天堂中文字幕网| 亚洲婷婷狠狠爱综合网| 国产精品一区二区在线观看99| 亚洲情色 制服丝袜| 男女无遮挡免费网站观看| 亚洲伊人久久精品综合| 精品亚洲乱码少妇综合久久| 草草在线视频免费看| 免费看av在线观看网站| 欧美精品一区二区免费开放| 三级国产精品片| 交换朋友夫妻互换小说| 亚洲欧美中文字幕日韩二区| 天天操日日干夜夜撸| 婷婷色综合www| 黄色日韩在线| 卡戴珊不雅视频在线播放| 日日摸夜夜添夜夜添av毛片| 在线观看国产h片| h视频一区二区三区| 亚州av有码| 伊人久久国产一区二区| 国产一区二区在线观看av| 嘟嘟电影网在线观看| 免费人妻精品一区二区三区视频| 乱系列少妇在线播放| 国产成人精品久久久久久| 一区二区三区乱码不卡18| 女人久久www免费人成看片| 国产黄片视频在线免费观看| 国产探花极品一区二区| 免费观看性生交大片5| 中国美白少妇内射xxxbb| 丰满乱子伦码专区| 国产精品人妻久久久久久| 多毛熟女@视频| 日本欧美视频一区| 国产国拍精品亚洲av在线观看| 少妇精品久久久久久久| 免费不卡的大黄色大毛片视频在线观看| av线在线观看网站| 国产伦精品一区二区三区视频9| 国产欧美日韩一区二区三区在线 | 人人妻人人添人人爽欧美一区卜| 在线观看www视频免费| 男人舔奶头视频| 欧美精品亚洲一区二区| 亚洲精品视频女| 亚洲欧美一区二区三区国产| 婷婷色麻豆天堂久久| 中文字幕精品免费在线观看视频 | 国产成人一区二区在线| 国产高清国产精品国产三级| 高清在线视频一区二区三区| 哪个播放器可以免费观看大片| 日本欧美国产在线视频| 亚洲久久久国产精品| 最近最新中文字幕免费大全7| 国产淫片久久久久久久久| 亚洲,欧美,日韩| 国产成人91sexporn| 97精品久久久久久久久久精品| 国产伦理片在线播放av一区| 色吧在线观看| 少妇 在线观看| av福利片在线观看| 丰满乱子伦码专区| 老女人水多毛片| 国产精品无大码| 日韩亚洲欧美综合| av福利片在线观看| 国产综合精华液| 亚洲精品一区蜜桃| 蜜臀久久99精品久久宅男| 热99国产精品久久久久久7| 精品人妻熟女毛片av久久网站| av又黄又爽大尺度在线免费看| 97超视频在线观看视频| 秋霞在线观看毛片| 一级毛片黄色毛片免费观看视频| 综合色丁香网| 亚洲人成网站在线观看播放| 菩萨蛮人人尽说江南好唐韦庄| 天堂俺去俺来也www色官网| 国产av码专区亚洲av| 高清不卡的av网站| 国产日韩欧美视频二区| h日本视频在线播放| a级毛片免费高清观看在线播放| 精品亚洲乱码少妇综合久久| 男人舔奶头视频| 99久久综合免费| 国产午夜精品一二区理论片| 最新中文字幕久久久久| 久久久久国产精品人妻一区二区| 黄色日韩在线| av天堂久久9| .国产精品久久| 久久久久国产网址| 日韩精品有码人妻一区| 午夜老司机福利剧场| 国产精品人妻久久久久久| 亚洲av成人精品一二三区| 国产在线免费精品| 各种免费的搞黄视频| 亚洲精品456在线播放app| 熟女电影av网| 久久精品久久精品一区二区三区| 精品一区二区三卡| 日本色播在线视频| 男人爽女人下面视频在线观看| 久久女婷五月综合色啪小说| 美女xxoo啪啪120秒动态图| a级片在线免费高清观看视频| 18禁在线播放成人免费| 女性生殖器流出的白浆| 大香蕉97超碰在线| 午夜日本视频在线| 91精品国产九色| 人人妻人人澡人人看| 97在线人人人人妻| 国产亚洲欧美精品永久| 中国美白少妇内射xxxbb| 久久久久人妻精品一区果冻| 精品一区二区三卡| 中国三级夫妇交换| 极品少妇高潮喷水抽搐| 国产一区二区在线观看日韩| 国产黄色视频一区二区在线观看| 午夜福利在线观看免费完整高清在| 中文字幕av电影在线播放| 欧美激情国产日韩精品一区| 少妇的逼好多水| 内地一区二区视频在线| 成人无遮挡网站| 亚洲国产精品999| √禁漫天堂资源中文www| 老女人水多毛片| 视频区图区小说| 嘟嘟电影网在线观看| 2022亚洲国产成人精品| 男人爽女人下面视频在线观看| 国产熟女欧美一区二区| 在线观看免费高清a一片| 熟女电影av网| 精品人妻熟女av久视频| 亚洲一区二区三区欧美精品| 欧美日韩亚洲高清精品| 亚洲精品乱久久久久久| 国产精品国产av在线观看| 日韩成人av中文字幕在线观看| 三级经典国产精品| 亚洲精品日本国产第一区| 亚洲精品日韩在线中文字幕| 亚洲国产欧美日韩在线播放 | 如何舔出高潮| 一本—道久久a久久精品蜜桃钙片| 久久精品熟女亚洲av麻豆精品| 在线观看国产h片| 大香蕉久久网| 免费观看的影片在线观看| 日韩av不卡免费在线播放| 国产一级毛片在线| 一本—道久久a久久精品蜜桃钙片| h视频一区二区三区| 人人澡人人妻人| 日韩熟女老妇一区二区性免费视频| 一级毛片我不卡| 久久热精品热| 国产一级毛片在线| 免费不卡的大黄色大毛片视频在线观看| 成人午夜精彩视频在线观看| 国精品久久久久久国模美| 色网站视频免费| 国产精品99久久99久久久不卡 | 美女xxoo啪啪120秒动态图| 久久久久久久久久久免费av| 在线 av 中文字幕| 少妇人妻一区二区三区视频| 一个人免费看片子| 成人18禁高潮啪啪吃奶动态图 | 在线天堂最新版资源| 欧美xxxx性猛交bbbb| av福利片在线| 亚洲三级黄色毛片| 日本av手机在线免费观看| 成人亚洲欧美一区二区av| 卡戴珊不雅视频在线播放| 男女免费视频国产| 男人狂女人下面高潮的视频| 一本色道久久久久久精品综合| 两个人免费观看高清视频 | 亚洲欧美精品自产自拍| 99热这里只有是精品在线观看| 亚洲美女视频黄频| 久热这里只有精品99| 99九九线精品视频在线观看视频| 最近中文字幕2019免费版| 国产 精品1| 成人黄色视频免费在线看| 精品亚洲成国产av| 99九九线精品视频在线观看视频| 最近中文字幕2019免费版| 国产亚洲精品久久久com| 亚洲欧美精品自产自拍| 亚洲精品中文字幕在线视频 | 欧美 日韩 精品 国产| 黑人高潮一二区| 日日摸夜夜添夜夜添av毛片| 精品久久久精品久久久| 久久99精品国语久久久| 精品亚洲成国产av| 9色porny在线观看| 欧美三级亚洲精品| 啦啦啦啦在线视频资源| 中国三级夫妇交换| 亚洲,欧美,日韩| 中文字幕精品免费在线观看视频 | 日本-黄色视频高清免费观看| 麻豆精品久久久久久蜜桃| 日韩制服骚丝袜av| 精品亚洲成a人片在线观看| 各种免费的搞黄视频| 久久国产精品男人的天堂亚洲 | 大码成人一级视频| 国产在线一区二区三区精| 日韩制服骚丝袜av| 精品亚洲乱码少妇综合久久| av专区在线播放| 国产一区二区在线观看日韩| 香蕉精品网在线| 五月伊人婷婷丁香| 纯流量卡能插随身wifi吗| 亚洲av日韩在线播放| 最新中文字幕久久久久| 国产一级毛片在线| 少妇被粗大猛烈的视频| 亚洲av综合色区一区| 只有这里有精品99| 另类精品久久| av福利片在线| 国产精品久久久久久精品电影小说| 99热全是精品| 午夜日本视频在线| 青春草国产在线视频| 日韩av在线免费看完整版不卡| 欧美xxxx性猛交bbbb| 91午夜精品亚洲一区二区三区| 国产中年淑女户外野战色| 婷婷色麻豆天堂久久| 一级黄片播放器| 国产亚洲5aaaaa淫片| 国产精品久久久久久久久免| 国内揄拍国产精品人妻在线| videos熟女内射| 又粗又硬又长又爽又黄的视频| 国产伦精品一区二区三区四那| 国产精品一区二区在线不卡| 久久久久久久久久成人| 久久韩国三级中文字幕| 欧美日韩一区二区视频在线观看视频在线| 99久久精品国产国产毛片| 亚洲av欧美aⅴ国产| 人妻系列 视频| 久久精品国产自在天天线| 精品人妻一区二区三区麻豆| 亚洲av福利一区| 亚洲精品一二三| 久久97久久精品| 国产精品免费大片| 亚洲精华国产精华液的使用体验| 在线观看美女被高潮喷水网站| 黄色日韩在线| 亚洲国产色片| 日本与韩国留学比较| 老熟女久久久| 又粗又硬又长又爽又黄的视频| 另类亚洲欧美激情| 天美传媒精品一区二区| 免费av不卡在线播放| 欧美 亚洲 国产 日韩一| 天堂中文最新版在线下载| 少妇裸体淫交视频免费看高清| 久久精品国产鲁丝片午夜精品| 国产一区亚洲一区在线观看| 久久精品夜色国产| 日本wwww免费看| 久久这里有精品视频免费| 人人妻人人添人人爽欧美一区卜| .国产精品久久| 日本欧美国产在线视频| 制服丝袜香蕉在线| 毛片一级片免费看久久久久| 亚洲第一区二区三区不卡| 99热这里只有是精品在线观看| 日本vs欧美在线观看视频 | 亚洲欧洲国产日韩| 一级毛片aaaaaa免费看小| 日日摸夜夜添夜夜爱| 亚洲国产精品一区二区三区在线| 人妻系列 视频| 亚洲伊人久久精品综合| a级一级毛片免费在线观看| 午夜免费鲁丝| 免费观看在线日韩|