《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于分布式環境的子進程監控軟件設計與實現
基于分布式環境的子進程監控軟件設計與實現
來源:微型機與應用2013年第7期
張 虎,黃海于
(西南交通大學 信息科學與技術學院,四川 成都 610031)
摘要: 針對分布式系統環境下,計算資源代理對其子進程監控的方法單一,且不能準確獲取子進程運行狀態的問題,提出了一種根據子進程的窗口句柄定時檢測子進程運行狀態的方法。該方法首先根據子進程的不同類型采用不同的方法獲取子進程的窗口句柄,然后根據子進程的窗口句柄定時獲取子進程的運行狀態,最后將傳統的等待子進程退出的方法引入到本應用中。運行結果表明,本方法可以及時準確檢測出Windows環境下子進程的運行狀態,并在子進程異常退出時,可以準確地獲取其異常退出碼。
Abstract:
Key words :

摘  要: 針對分布式系統環境下,計算資源代理對其子進程監控的方法單一,且不能準確獲取子進程運行狀態的問題,提出了一種根據子進程的窗口句柄定時檢測子進程運行狀態的方法。該方法首先根據子進程的不同類型采用不同的方法獲取子進程的窗口句柄,然后根據子進程的窗口句柄定時獲取子進程的運行狀態,最后將傳統的等待子進程退出的方法引入到本應用中。運行結果表明,本方法可以及時準確檢測出Windows環境下子進程的運行狀態,并在子進程異常退出時,可以準確地獲取其異常退出碼。
關鍵詞: 分布式系統;Windows運行環境;代理;子進程的管理和監控;窗口句柄

 隨著高速列車仿真模擬、物聯網應用等領域對計算機計算速度要求的不斷提高,單個的計算機已無法滿足高計算速度的要求。將一個大的計算任務分解成若干個小的計算任務,并利用分布式系統[1]將各計算任務分散到不同的計算機上,以獨立進程的形式進行并行計算是一種比較好的解決方法。而對各獨立進程的運行狀態的實時監控和管理是實現分布式系統高效運行和管理的基礎。但是傳統的子進程監控只能對子進程是否正在運行或者退出做出判斷,無法判斷子進程是否處在掛起狀態,也無法及時地獲取子進程的退出碼。
 針對上述需求,本文提出了一種根據子進程的窗口句柄來檢測當前子進程運行狀態的方法,并結合傳統的子進程管理監控方法,設計并實現了一種實時的子進程管理監控軟件。該軟件用于啟動和監控分布式系統中任務調度器分配給本機的任務。目前該軟件可以檢測子進程的三個狀態:正常運行、退出、掛起;可以及時的將子進程的退出碼[2]反饋給分布式系統的任務調度器,為任務調度器[3]高效利用計算資源提供了一定的依據;并且為開發人員根據進程的異常退出碼對程序進行查錯提供了方便。
1 傳統子進程監控方法
 通常Windows系統使用CreateProcess函數來新建一個子進程。其中CreateProcess函數的最后一個參數的類型是LPPROCESS_INFORMATION結構體,成功創建子進程后,子進程的基本信息就存儲在該結構體中。在Windows API的定義中,該結構體包含了子進程的進程句柄、進程ID、主線程句柄和主線程ID。創建子進程成功后可以通過子進程的句柄和Windows提供的wait[4]系列函數等待子進程或者子進程組變為signaled狀態,從而立刻獲知該進程或進程組退出。
 傳統的子進程監控方法的好處是:如果子進程確實正常退出,則該方法能夠及時地獲知子進程已經退出,并且可以通過Windows提供的API函數GetExitCodeProcess獲取子進程的退出碼。但是在大量的實際應用過程中,該方法暴露出了其不足之處。例如,創建一個有錯的(如除0錯誤)MFC程序,然后通過以上方法啟動這個有錯的進程,再用wait系列函數等待子進程退出。當子進程運行到錯誤的語句時會彈出一個錯誤窗口,如圖1所示。

 這時wait系列函數沒有返回,說明子進程還處在nonsignaled狀態。用GetExitCodeProcess函數獲取該子進程的退出碼時,得到的退出碼為STILL_ACTIVE,也就是說父進程認為子進程還在正常運行,無法獲取子進程的退出碼。
 如果在分布式系統中出現這種子進程明明已經出錯導致無法繼續運行,但是其監控系統認為其還在正常運行的情況,會嚴重影響分布式系統的負載均衡,不利于分布式系統高效的運行和管理。
2 判斷子進程的類型
 Windows支持兩種類型的應用程序。一種是基于圖形用戶界面(GUI)的應用程序,另一種是基于控制臺用戶界面(CUI)的應用程序[5]。
 基于控制臺的應用程序屬于文本操作的應用程序。它通常不能用于創建窗口和處理消息,并且不需要圖形用戶界面。雖然基于CUI的應用程序包含在屏幕上的窗口中,但是窗口只包含文本。命令外殼程序CMD.exe是典型的基于CUI的應用程序。基于GUI的應用程序有一個圖形前端程序,它能創建窗口,擁有菜單,可以通過對話框與用戶打交道,并且可以使用所有的標準Windows組件。
 這兩種類型的應用程序之間的界限是非常模糊的,所以Windows沒有提供API用來判斷一個程序是基于GUI的還是CUI的。但是可以通過應用程序在運行時加載的動態庫[6]來判斷應用程序的類型。
 user32.dll和comctl32.dll兩個模塊[7]是Windows用戶界面相關應用程序接口,包括窗口消息處理,基本用戶界面等特性。結合大量的測試得出,基于GUI的應用程序在運行時肯定會加載這兩個模塊,而單純的基于CUI的應用程序在運行時是不會加載這兩個模塊的。因此,可以通過檢測代理,新啟動的應用程序是否加載了user32.dll和comctl32.dll這兩個模塊來區分應用程序類型。
 接下來的工作就是如何檢測新啟動的進程加載了哪些模塊。在Windows API中提供了枚舉一個進程所加載模塊句柄的接口:EnumProcessModules函數。該函數的原型為:
BOOL WINAPI EnumProcessModules(
  __in          HANDLE     hProcess,
  __out         HMODULE * lphModule,
  __in          DWORD      cb,
  __out         LPDWORD   lpcbNeeded
);
 該函數接收一個進程的句柄,輸出該進程所加載的所有模塊的句柄數組,并且通過lpcbNeeded參數輸出所有模塊的句柄所占的字節數。因為在啟動子進程的時候,肯定能夠得到子進程的進程ID和進程句柄,所以通過EnumProcessModules函數可以方便地得到某個特定的進程所加載模塊的句柄。但是通過模塊的句柄,還無法直觀的得到進程加載的模塊的名稱。這種情況下,可以通過vc提供的另外一個接口:GetModuleFileNameEx函數來獲取各模塊的名稱。GetModuleFileNameEx的函數原型為:
DWORD WINAPI GetModuleFileNameEx(
  __in          HANDLE   hProcess,
  __in          HMODULE hModule,
  __out         LPTSTR    lpFilename,
  __in          DWORD    nSize
);
 該函數接收一個進程的句柄和模塊的句柄,通過lpFilename參數以字符串的形式輸出模塊的具體名稱。進程的句柄在啟動進程時就可以獲得,模塊的句柄就是之前通過EnumProcessModules函數獲得模塊句柄數組。
 計算資源上運行的代理通過這兩個API的配合使用,可以準確獲得啟動的子進程所加載的模塊具體的名稱,也就能夠確定子進程是否加載了user32.dll和comctl32.dll兩個模塊。這樣代理就可以確定子進程是基于GUI的應用程序還是基于CUI的應用程序。在確定了應用程序的類型之后,根據各種類型應用程序的不同特點,采用不同的子進程監控方法對其進行監控。
3 基于窗口句柄對子進程監控的方法
 在Windows系統中不論是GUI應用程序還是CUI應用程序,在程序啟動時都會生成一個窗口。不同的是,GUI應用程序是根據自己的程序需求生成窗口,CUI應用程序是系統為其加載的一個文本控制臺窗口。系統為每一個窗口生成了唯一的標示,即窗口句柄。而且Windows提供了一個通過窗口句柄來檢測應用程序是否處于掛起狀態的API函數,該函數的原型為:BOOL IsHungAppWindow(HWND hWnd)。該函數接收一個窗口句柄作為輸入參數,并且判斷該窗口所屬的進程是否處于掛起狀態。當進程處于掛起狀態時,函數返回TRUE;當進程處于非掛起狀態時,函數返回FALSE。只要能獲取到進程所對應的窗口句柄,就能夠通過定時調用IsHungAppWindow函數判斷GUI應用程序是否處于掛起狀態。
 但是,在子進程創建的過程中,父進程只能獲取到該子進程的進程句柄和該進程的主線程句柄,無法獲取到子進程所對應的窗口句柄。所以,如何獲取子進程所對應的窗口句柄是基于GUI的應用程序監控方法的關鍵。
 獲取窗口句柄的方法有很多種,本應用中針對GUI應用程序和CUI應用程序的不同特點采用了不同的方法獲取這兩種應用程序的窗口句柄。
3.1 獲取GUI應用程序的窗口句柄
 如果應用程序是一個基于GUI的應用程序,則操作系統在啟動的過程中不會為應用程序創建控制臺窗口,而只是加載應用程序。當基于GUI的應用程序啟動之后,就根據程序自身的需要生成特定的窗口。這樣窗口的進程ID即為應用程序的進程ID。
 針對GUI應用程序的窗口進程ID即為應用程序進程ID的特點,獲取GUI應用程序窗口句柄采用的方法是在創建子進程之后遍歷系統中所有窗口,在遍歷的過程中根據窗口的句柄來獲取窗口所對應的進程的ID;將獲取到的窗口進程ID與創建的子進程的ID進行匹配。如果匹配成功則該窗口就是子進程創建的窗口,可以通過該窗口的句柄調用IsHungAppWindow函數來判斷該子進程是否處于掛起的狀態。
 在遍歷窗口句柄時,是通過GetTopWindow和GetNextWindow這兩個API函數協同工作完成的;而根據窗口句柄來獲取窗口所對應的進程ID是通過GetWindowThreadProcessId函數實現的。具體的實現代碼如下:
HWND GetWindowHandleByPid(DWORD dwProcessID)
{
    HWND h=GetTopWindow(0);
    while(h)
    {
        DWORD pid=0;
        DWORD dwThreadID=GetWindowThreadProcessId(h,&pid);
        if(dwThreadID!=0)
        {
            if(pid==dwProcessID)
            {
                return h;
            }
        }
        h=GetNextWindow(h,GW_HWNDNEXT);
    }
    return NULL;
 }
 該函數的輸入參數為需要獲取窗口句柄的進程的ID。如果查找成功則返回進程所對應窗口的窗口句柄;如果不成功則返回NULL。
3.2 獲取CUI應用程序的窗口句柄
 通常情況下,基于CUI的應用程序不會創建窗口和處理消息,并且不需要圖形用戶界面。但是Windows系統會為CUI的應用程序自動加載一個文本控制臺窗口的外殼程序。CUI應用程序的標準輸入輸出都是在這個外殼程序中完成的,所以也可以通過判斷該控制臺窗口是否處于掛起狀態來判斷CUI應用程序的狀態,即通過IsHungAppWindow函數來判斷應用程序是否掛起。
 但是,Windows對CUI應用程序的這種處理方式使得CUI程序與CUI程序的窗口具有不同的進程ID。這樣就不能通過匹配程序進程ID和窗口進程ID的方法來確定某一個窗口是否屬于某一個應用程序。
針對CUI應用程序的以上特點,本應用獲取CUI應用程序窗口句柄的方法是通過檢測窗口的標題來確定該窗口是否屬于某一個CUI程序。采用這種方法的原因是基于CUI的窗口標題肯定為該CUI程序的絕對路徑,并且在分布式計算的環境下,各個任務的子進程可能同名但是肯定是存在于不同的目錄下的。所以通過標題來確定一個窗口是否屬于CUI程序在本應用環境下完全可行。
基于CUI子進程的監控方法是在啟動子進程之后,根據子進程的絕對路徑調用FindWindow系統函數來獲取該CUI子進程的窗口句柄,這樣就可以通過定時調用IsHungAppWindow函數來檢測應用程序的運行狀態。
4 與傳統方法相結合的子進程監控方法
 以上介紹了通過窗口句柄對各種子進程運行狀態監控的可行性。但是,基于窗口句柄檢測子進程運行狀態的方法是定時檢測子進程的運行狀態。所以如果定時檢測的時間較長時,則缺乏好的實時性;如果定時檢測的時間較短時,則增加了計算資源的負載。本應用在綜合考慮了以上問題之后,采用了定時檢測子進程的運行狀態和開辟新的線程等待子進程退出兩種手段相結合的方法來監控子進程的運行狀態。這樣同時確保了檢測子進程運行狀態的實時性又彌補了傳統子進程檢測方法在子進程出現掛起狀態時無法檢測的問題。
在分布式計算環境下,計算資源上的代理啟動子進程的時間不確定,并且可能同時管理多個子進程。所以為了方便管理,在本應用中建立了帶頭結點的子進程信息鏈表用于同時管理多個子進程。鏈表的結構體定義如下:
struct ProcessInfoList
{
     short int ProjectID; //進程工程號
     short int ConditionID; //進程工況號
     short int ModuleID;   //進程模塊號
     short int flag;    //進程運行狀態。-1為未響應;
 //0為已退出;1為正在運行
 HWND hProcessWND;     //進程對應的窗口句柄
 int ProcessType; //進程的類型。1為GUI應用程序;
 //0為CUI應用程序
 int SendFlag;     
   //用于標示是否已經提示調度器該進程已掛起
     PROCESS_INFORMATION  ProcessInfo; 
 //進程的信息,包括進程句柄和進程ID等
     DWORD ExitCode;   //進程退出時的退出碼
     TaskHistoryList *next;
};
 其中ProjectID、ConditionID、ModuleID在整個分布式計算系統中確定唯一一個子進程,并且子進程的可執行文件根據這三個值的不同而存放在不同的目錄下。SendFlag變量是用于提示調度器該進程是否已掛起,當該值為1時,說明已經提示調度器該進程掛起,不用重復提醒;當該值為0時,說明還未提示調度器該進程已掛起。
4.1 定時檢測子進程的運行狀態
 代理啟動時會創建子進程信息鏈表頭結點,并會創建定時器T,定時遍歷子進程信息鏈表。當子進程信息鏈表中除頭結點外沒有其他的結點時,則等待下一次定時的到來;當子進程信息鏈表中除頭結點外還有其他進程的信息結點,則首先關閉定時器T;然后遍歷鏈表各個結點中的窗口句柄信息,根據進程的窗口句柄判斷進程是否處于掛起的狀態,如果進程處于掛起的狀態,則及時將該進程的信息及進程的當前運行狀態發送給調度器,如果進程沒有處于掛起狀態,則繼續遍歷下一個結點,最后遍歷完成之后重新創建定時器T,定時遍歷子進程信息鏈表。經過大量的實驗,最終將定時器的定時時間設為3 s,即每3 s檢查所有子進程是否處于掛起狀態。
4.2 創建新的線程等待子進程退出
 當有任務提交給代理時,代理首先啟動相應的應用程序,然后創建新的線程等待子進程的退出,最后判斷子進程的類型,獲取進程的窗口句柄,為新啟動的應用程序創建子進程鏈表節點。其中等待子進程退出線程中所做的工作有:(1)根據新啟動進程的進程句柄調用WaitForSingleObject函數,等待子進程的退出;(2)當子進程退出后獲取進程的退出碼,并存放在相應的子進程信息鏈表結點中;(3)獲取退出碼之后,將該子進程的基本信息、子進程的當前狀態、子進程的退出碼發送給調度器,線程結束。
 以上介紹了在Windows系統環境下對基于GUI和基于CUI子進程監控的實現方法。該方法主要是通過定時檢測子進程對應的窗口是否掛起以及開辟新的線程等待子進程退出兩種手段相結合的方式實現對子進程的監控。雖然通過定時檢測窗口是否掛起的方法存在缺乏實時性的問題,但是通過縮短定時時間也可以將時間控制在毫秒級,在絕大多數的分布式計算應用系統中是可以接受的。
該方法解決了傳統的子進程檢測方法無法檢測子進程掛起狀態的問題。對子進程運行狀態的檢測更準確,提高了分布式計算環境下的資源利用率。
參考文獻
[1] 葛澎.分布式計算技術概述[J].微電子學與計算機,2012(5):201-204.
[2] DAVE T. Understanding exit codes[J]. Linux Journal, 2010(197):24-25.
[3] Xie Tao, Qin Xiao. A Security-qriented task scheduler for heterogeneous distributed systems[J]. Lecture Notes in Computer Science, 2006(4297):35-46.
[4] STRVENS W R, RAGO S A. UNIX環境高級編程(第2版)[M].尤晉元,張亞英,戚正偉譯.北京:人民郵電出版社, 2005:179-182.
[5] RICHTER J, NASARRE C. Windows核心編程(第5版)[M].葛子昂,周靖,廖敏譯.北京:清華大學出版社,2008:69-72.
[6] 高連生,盛柏林.動態鏈接庫在組態軟件中的應用[J].工業控制計算機,2010(6):21-22.
[7] 周超.Windows和Linux動態鏈接庫研究及應用[D].上海:華東理工大學,2007.
[8] Microsoft. QIsHungAppWindow function(Windows) [OL]. [2012-11-28]. http://msdn.microsoft.com/ZH-CN/library/windows/desktop/ms633526(v=vs.85).aspx

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 99精品国产一区二区三区2021 | 饥渴少妇色诱水电工 | 亚洲精品aaaaa| 中文在线а√天堂官网 | 国产午夜激情视频 | а天堂中文最新一区二区三区 | 国产91 在线播放 | 久久精品一区二区三区四区毛片 | 91精品久久久久久综合 | 日本免费在线视频 | 九色国产精品入口 | 久国久产久精永久网页 | 国产女主播在线播放 | 中文字幕乱码一区av久久不卡 | 精品国产1区 | 91天天干| 欧美一级免费在线观看 | 中文字幕不卡在线观看 | 国产igao为爱做激情在线观看 | 亚洲三级欧美 | 99在线观看免费视频 | 91黄色影视 | 美女网站黄频 | 国产熟妇高潮呻吟喷水 | 想看一级黄色片 | 欧美性猛交乱大交 | 婷婷激情小说网 | 明日叶三叶 | 欧美一区二区三区在线观看视频 | 日本伦理一区 | 国产性自拍| 中文字幕乱码视频32 | 亚洲国产欧美视频 | 乱码精品国产成人观看免费 | 石原莉奈av调教中文字幕 | 蜜月va乱码一区二区三区 | 少妇一级淫片bbb | 在线国产区| 麻豆一区二区三区精品视频 | 老子影院午夜伦不卡大全 | 亚洲综合不卡 | 狠狠操精品视频 | 精品国产品香蕉在线 | 天天躁日日躁狠狠很躁 | 中文字幕免费观看视频 | 国产精品久久久久久久久绿色 | 女人下边被添全过视频的网址 | 91康先生在线国内精品 | av在线资源网 | 黑人邻居太猛中文字幕hd | 亚洲欧洲精品一区 | 日韩在线播放中文字幕 | 操伊人| 18禁无遮挡羞羞污污污污免费 | 欧洲精品久久 | 精品国产一级片 | 国产大屁股喷水视频在线观看 | 亚洲自拍在线观看 | 亚洲免费天堂 | 午夜67194| 视频在线观看网站免费 | 狠狠色噜噜狠狠狠狠色综合久av | 午夜影视大全 | 日韩伊人久久 | 国产精品51麻豆cm传媒的特点 | 又嫩又硬又黄又爽的视频 | 99免费精品视频 | 色哟哟在线免费观看 | 丰满的少妇xxxxx人伦理 | 日本老熟妇毛茸茸 | 成人性生交大片免费看视 | 国产亚洲精品久 | 神马久久午夜 | 中日躁夜夜躁 | 国产熟睡乱子伦午夜视频 | 日本午夜免费福利视频 | 久久人人玩人妻潮喷内射人人 | 国产无遮挡又黄又爽免费网站 | 辽宁熟女高潮狂叫视频 | 日本边舌吻边做爽的视频 | 色呦呦在线免费观看 | 天天做天天爱天天综合网2021 | 自拍亚洲一区欧美另类 | 天天躁日日躁狠狠躁av麻豆男男 | 孕妇怀孕高潮潮喷视频孕妇 | 黄色av一区 | 久久99精品久久久久久秒播放器 | 性高湖久久久久久久久 | 国产chinese精品av | 欧美大肥婆bbbww欧出奶水 | 日韩欧美在线一级 | 一级片毛片 | 成年性生交大片免费看 | 成年片色大黄全免费网站久久 | 国产一二三区av | 国产99久久精品一区二区永久免费 | 免费一区视频 | 91最新在线| 粗大猛烈进出高潮视频 | 久久精品国产最新地址 | 国产欧美一区二区精品秋霞影院 | 真人啪啪高潮喷水呻吟无遮挡 | 国产主播福利在线 | 超碰在线图片 | 国产精品 欧美日韩 | 九九久久在线看 | 亚洲视频手机在线 | 色呦呦麻豆 | 日本疯狂做爰xxxⅹ高潮视频 | 台湾佬美性中文网 | 精品国产91 | 中文字幕一区二 | 日韩av在线免费播放 | 东京热无码av男人的天堂 | 伊人av超碰久久久麻豆 | 成人在线观看免费网站 | 国产精品色综合 | 2018天天操| 亚洲va国产va天堂va久久 | 黄色精品一区二区三区 | 欧洲成人一区二区 | 天天夜夜久久 | yy111111少妇嫩草影院 | 五月激情综合网 | 窝窝午夜理论片影院 | 国产精品国产精品国产专区不卡 | 国产suv精品一区二区33 | 亚洲精品一品区二品区三品区 | 欧美成人午夜视频 | 黄网站免费在线观看 | www噜噜噜 | 国产又粗又猛又大爽 | 国产精品久久久久精女同 | 伊人春色影院 | www国产亚洲精品久久麻豆 | 久久久久女教师免费一区 | 久久久精品在线观看 | 国产三级无码内射在线看 | 国产中文字幕第一页 | 免费在线看黄色片 | 国产裸体永久免费视频网站 | 一级特级片| 黄色大片毛片 | 亚洲 欧美 变态 另类 综合 | 亚洲精品视频一区二区三区 | 国产一区二区三区四区五区精品 | 四虎在线免费观看 | 欧美交a欧美精品喷水 | 色片免费观看 | 欧美精品aa | 福利在线免费 | 五月激情小说 | 伊人伊人网 | 欧美性猛交xxxⅹ乱大交小说一 | 亚洲热在线观看 | 麻豆妓女爽爽一区二区三 | 国产精品成人av片免费看 | 性色av香蕉一区二区 | 欧美在线免费观看 | 国产精品亚洲一区二区三区 | 国产小视频在线观看免费 | 大黄毛片 | 在线亚洲观看 | 一级色视频 | 777午夜福利理伦电影网 | 中国少妇xxxⅹ性xxxx | 伊人加勒比 | 男人影院在线观看 | 人摸人人人澡人人超碰97 | 一个人看的www日本高清视频 | 成人自拍视频网 | 久久久欧美 | 中文字幕无码人妻少妇免费 | 日韩av高清在线看片 | 男男军官互攻互受h啪肉np文 | 久热精品在线观看视频 | 调教性瘾双性高清冷美人 | 一区二区高清视频在线观看 | 91成人在线播放 | 在线亚洲观看 | 日本免费黄色 | 91亚洲人人在字幕国产 | 天天射综合 | 亚洲一区二区三区在线 | 亚洲精品美女久久久久网站 | 亚洲色图另类图片 | 少妇艳梅交换系列 | 大波大胸video巨乳日本 | 男女黄网站 | 亚洲天堂男人 | 国产精品亚洲欧美日韩在线观看 | 黑人巨大精品欧美 | 日本少妇翘臀啪啪无遮挡 | 婷婷中文字幕 | 日韩在线视频免费看 | 久草女人 | 国产高清www| 日韩av免费在线播放 | 国产精品国产精品国产专区不片 | 高h破瓜受孕龙精 | 国产精品久久久久av | 国产男女精品视频 | 国产免费拔擦拔擦8x高清在线人 | 国产麻豆天美果冻无码视频 | 午夜私人影院网站 | av在线三区 | 久久99精品久久久久久按摩秒播 | 亚洲大尺度在线观看 | 成人精品视频在线 | 香港台湾日本三级大全 | 欧美日韩一卡二卡 | 999色综合| 男人巨茎大战欧美白妇 | 国产在线拍揄自揄拍无码视频 | 久久视频精品 | 神马影院午夜伦理 | 亚洲 另类 熟女 字幕 | 人妻精品无码一区二区三区 | 日韩成人免费在线 | 无码精品黑人一区二区三区 | 国产日批| 色噜噜国产精品视频一区二区 | av免费不卡国产观看 | 在线看片黄 | 一级久久久久 | 九九天堂 | 大胸喷奶水www视频妖精网站 | 国产成人免费视频 | 一区二区三区免费在线 | ktv疯狂做爰视频 | 国产诱惑av | 激情欧美一区二区 | 亚洲乱亚洲乱妇24p 国产精品丝袜高跟鞋 | 欧美大胸大乳人奶波霸 | 成人在线一区二区三区 | 欧美日韩一区二区成人午夜电影 | 大黄毛片 | 97人人干| 老湿午夜免费yin22xyz | 国产真实伦种子 | 麻豆av在线看 | 国产尤物网站 | 欧洲亚洲女同hd | 亚洲第一综合色 | 少妇视频一区二区三区 | 日本高清二区 | 性——交——性——乱免费的 | 久草在线香蕉 | 国产亚洲自拍av | 久久久久久久久久久久 | 日本少妇搡bbbb搡bbb | 特级黄色大片 | 日韩一区二区三区欧美 | 亚洲无人区码一码二码三码的含义 | 成人免费在线观 | 亚洲欧美高清 | 99国产精品久久久久久久 | 久久久新视频 | 丝袜足脚交91精品 | 亚洲黄色第一页 | 日本6一12娇小xxxⅹhd | 中文字幕在线免费观看视频 | 精品网站999www | 91一区二区视频 | 99re8在线精品视频免费播放 | 中文字幕精品视频在线观看 | 秋霞亚洲 | 久色91 | 鲁死你av资源站 | 999久久久免费精品国产 | 又粗又大又黄又硬又爽免费看 | 欧美亚精品suv | 男人天堂视频在线 | 欧美成人精品a∨在线观看 香蕉av福利精品导航 | 人人艹人人爽 | 九九热精品视频在线播放 | 久久久经典 | 久久亚洲综合网 | av无毛 | 免费在线观看毛片视频 | 中文字幕av一区中文字幕天堂 | 中文字幕亚洲综合久久 | 欧美国产综合欧美视频 | 国产一区二区日本欧美精品久久久 | 视频在线观看h | 亚洲熟女一区二区三区 | 日韩欧美不卡视频 | 交专区videossex非洲 | 免费无码一区二区三区a片 亚洲欧美日韩国产成人 | 国产精品天堂avav在线 | 欧美视频第一页 | 男人的天堂一区 | 天天干天天日 | 国产欧美日韩三区 | 99久久久99久久国产片鸭王 | 亚洲激情在线 | 色偷偷亚洲 | 亚洲国产剧情 | www312aⅴ欧美在线看 | 377p日本欧洲亚洲大胆张筱雨 | 少妇高潮惨叫久久久久电影69 | 亚洲免费三区 | 欧美日韩精品一区二区在线视频 | 日韩欧美成人免费观看 | av片在线观看免费 | 最新欧美大片 | 欧美videos最新极品 | 久久久亚洲国产天美传媒修理工 | 国产h视频在线观看 | 性开放淫合集 | 芭乐视频色 | 免费99精品国产自在在线 | 日韩欧美在线播放 | 九九九小视频 | 国产又黄又大视频 | 99精品久久久久久久久久综合 | 久久久中文久久久无码 | www.欧美色图| 欧美激情 亚洲 | 国产二级一片内射视频播放 | 国产精品白丝喷水在线观看 | av网址在线 | 少妇又紧又爽视频 | 国产精品户外野外 | 法国伦理少妇愉情 | 精品热| 午夜激情毛片 | 欧美另类第一页 | 色999韩| 日本不卡网 | 好了av四色综合无码 | 中文字幕精品视频 | 国产图区 | 国产午夜精品av一区二区麻豆 | 欧美一a | 日日夜夜精品免费 | 久久免费看少妇高潮 | 青青草欧美 | 性生交大片免费全片 | 啪啪网站免费 | 成人自拍视频网 | 色网站在线观看视频 | 精产国品一二三产区m553麻豆 | 国产资源在线视频 | 国产亚洲精品精华液 | 北条麻妃一对7黑人mv | 亚洲日韩一页精品发布 | 日本猛少妇色xxxxx猛叫 | 国产精品黄视频 | 精品久久久久国产 | 激情欧美日韩一区二区 | 亚洲视频a | 日本少妇做爰大尺裸体网站 | 久久精品一区二区视频 | 国产精品人人爱一区二区白浆 | 成人精品免费在线观看 | www亚洲人 | 精品国产美女福到在线不卡 | 天堂精品一区二区三区 | 人善交video另类hd国产片 | 2019日韩中文字幕 | 免费的黄色片 | 91在线91拍拍在线91 | 欧美丰满熟妇xxxxx | 在线日韩国产 | 色琪琪一区二区三区亚洲区 | 精品无码av人在线观看 | 区二三区四区精华日产一线二线三 | 国产美女操 | 国精品人妻无码一区二区三区蜜柚 | 免费看黄色小视频 | 九九在线观看视频 | 日日噜狠狠噜天天噜av | а√在线中文网新版地址在线 | 色老汉av一区二区三区 | 无码人妻精品一区二区三18禁 | 苍井空一区二区波多野结衣av | 激情久久久 | 亚洲乱码日产精品一二三 | 韩日精品在线 | 久久精品视频观看 | 国产精品无码制服丝袜 | 精品无人码麻豆乱码1区2区 | 国产成熟人妻换╳╳╳╳ | 在线视频 中文字幕 | 久久xxxx| 日韩乱码人妻无码中文字幕久久 | 日韩精品久久久久久久软件91 | 国产成人一级片 | 啪啪av大全导航福利网址 | 古代性色禁片在线播放 | 动漫av一区二区在线观看 | 国语自产拍91在线a拍拍 | 成熟女人牲交片免费观看视频 | 亚洲一区 欧美 | 天天5g天天爽免费观看 | 东京无码熟妇人妻av在线网址 | 亚洲精品无码永久在线观看你懂的 | 成人网站在线进入爽爽爽 | 国产小屁孩cao大人 亚洲国产精品久久精品 | 深爱激情综合 | 日本黄大片在线观看 | av片亚洲 | 久久蜜臀精品av | 成人在线免费观看网站 | 在线干 | 午夜视频免费在线观看 | 91成人精品视频 | 三级大片在线观看 | 久久久久国产精品www | 国产欧美日韩精品a在线观看 | 国语对白嫖老妇videos | 中日韩高清无专码区2021 | 午夜在线影院 | 自拍偷在线精品自拍偷99 | 最新的黄色网址 | 亚洲1区 | 免费观看成人欧美www色 | 午夜少妇一级福利 | 久久爽久久爽久久av东京爽 | av大片免费观看 | 欧美老熟妇xb水多毛多 | 国产精品美女乱子伦高 | 一级片网址 | 俺去俺来也在线www色官网 | 久久久婷婷成人综合激情 | 福利小视频在线播放 | 9l视频自拍蝌蚪9l视频成人 | 爽好多水快深点欧美视频 | 肉色丝袜足j视频国产 | 国产精品亚洲欧美日韩在线观看 | 在线播放毛片 | a视频| 精品国产欧美 | 亚洲国产长腿丝袜av天堂 | 国模叶桐尿喷337p人体 | 久久久久久国产精品高清 | 狠狠综合久久av一区二区小说 | 一级黄毛片 | 日韩国产综合 | 国产欠欠欠18一区二区 | 成熟女人毛片www免费版在线 | 日韩人妻熟女中文字幕a美景之屋 | 欧美三级韩国三级日本一级 | 神马久久久久久 | 中文字幕中文字幕 | 国产欧美一区二区三区视频 | 国产精品美女久久久久久 | 色多多导航 | 久久成人a毛片免费观看网站 | 国产毛片欧美毛片久久久 | 国产精品高潮呻吟久久aⅴ码 | 亚洲免费激情视频 | 97超碰超碰久久福利超碰 | 日日噜噜夜夜狠狠久久蜜桃 | 亚洲乱亚洲乱妇无码麻豆 | 亚洲精品婷婷 | 老子午夜精品无码 | 在线播放毛片 | 成人激情开心网 | wwwcom毛片| 黄色三级网站 | 亚洲成色www久久网站瘦与人 | 91原创国产| 黄色大片一级片 | 寂寞少妇让水电工爽了视频 | 久久91精品久久久久清纯 | 神秘马戏团在线观看免费高清中文 | 亚洲第一极品精品无码 | 一级做a爰片久久毛片潮喷 一级做a爰片欧美激情床 | 日产国产精品亚洲系列 | 日韩一区在线视频 | 国产精品伦一区二区三级视频永妇 | 超碰在线观看91 | 91成人入口 | 久久99热狠狠色一区二区 | 欧美性生活免费视频 | 男人添女人高潮免费网站打开网站 | 亚洲人精品午夜射精日韩 | ts人妖在线 | 性欧洲精品videos' | 午夜性色福利在线视频福利 | www.日韩系列 | 18pao国产成视频永久免费 | 十八禁无遮挡99精品国产 | 免费的黄色网 | 中文字幕乱码视频 | 国产精品99久久久久久小说 | 果冻传媒mv国产董小宛主演是谁 | 免费asmr色诱娇喘呻吟欧美 | 国产56页| 久久亚洲国产成人精品性色 | 国产黄色自拍 | 中国毛片基地 | 免费一级做a爰片久久毛片潮 | 欧美精品一区在线观看 | 久久免费一区 | 天天干妹子 | 成人一区二区毛片 | 午夜视频 | 国产亚洲精品久久久久蜜臀 | 日本黄色特级片 | 男女激情免费网站 | 日本一区二区视频在线播放 | 久久久久国产视频 | 亚洲乱码av中文一二区软件 | 美女mm131爽爽爽 | 992tv又爽又黄的免费视频 | 国产69精品久久久久99 | av免费影院| 狠狠爱免费视频 | 成人看片网| 久久久九九九九 | a级成人毛片 | 九九热在线视频观看这里只有精品 | 五月天婷婷综合网 | 明日花绮罗576空乘在线播放 | 国产麻豆一区二区三区在线观看 | 日韩在线视频精品 | 九九99久久精品在免费线bt | 欲求不满 希岛あいり在线看 | 少妇被又大又粗又爽毛片久久黑人 | 久草网视频在线观看 | 久久久一本精品99久久精品66 | 日韩成人在线观看视频 | 日韩精品视频在线观看免费 | 中文字幕亚洲精品一区 | 成年人在线视频观看 | 国产一线av | 无码专区aaaaaa免费视频 | 中文字幕国产亚洲 | 一级aa毛片| 欧美又粗大人妖一进一出 | 91福利一区二区 | 91久久国产精品视频 | 2020亚洲天堂 | 十八岁以下禁止观看黄下载链接 | 国产高清不卡无码视频 | 加勒比久久综合网天天 | 天天躁狠狠躁狠狠躁夜夜躁68 | 久久男人av资源网站无码 | 亚洲一区二区在线视频 | 人人干av| 久久久久人妻一区二区三区 | 亚洲男人天堂网站 | japanese av在线| 久久成人 久久鬼色 | 欧美精品xxx| 午夜小视频在线 | 性色av蜜臀av牛牛影院 | av大片免费观看 | 亚洲精品无码专区在线在线播放 | 一区二区视频免费看 | 亚洲免费色图 | 欧美日韩不卡在线 | 亚洲视频免费观看 | 日本一本久草 | 少妇高潮av久久久久久 | 亚洲免费人成 | 羞羞涩涩视频 | 国产精品午夜福利视频234区 | 国产第一页浮力影院入口 | 午夜精品久久久内射近拍高清 | 一级大片在线观看 | 日日av色欲香天天综合网 | 久久久久高潮毛片免费全部播放 | 欧美成人h版 | 欧美大片免费播放器 | av无码久久久久不卡蜜桃 | 特黄特色的大片观看免费视频 | 成人五区| 综合av第一页| 日韩欧美猛交xxxxx无码 | 男女做爰猛烈叫床高潮的书 | 超碰人人草 | 精品人妻av区乱码 | 日韩欧美群交p片內射中文 三级4级全黄60分钟 | 青青草97 | 激情综合色五月丁香六月亚洲 | 精品国产一区二区三区色欲 | 久久99精品久久久秒播软件优势 | 精品成人免费一区二区在线播放 | 大又大又粗又硬又爽少妇毛片 | 国产香蕉在线观看 | 欧美精品人人做人人爱视频 | 美女超碰在线 | 色欧美片视频在线观看 | 国产综合欧美 | 中文字幕高清一区 | 国产情侣91 | 视频一区二区三区免费 | 国产精品综合视频 | 亚洲成av人片在线播放无码 | 久久激情久久 | 亚洲人色婷婷成人网站在线观看 | 欧洲熟妇色xxxxx视频 | 日日爽天天 | 欧美久久久久久久久久久久 | 天天躁日日躁狠狠躁av麻豆 | 免费观看成年人视频 | 中文字幕第68页 | 白嫩初高中害羞小美女 | 国产高跟黑色丝袜在线 | 丰满少妇人妻久久久久久 | 夜夜爽一区二区三区 | 51精品国产人成在线观看 | 色01看片网 | 成人观看视频 | 亚洲人妖女同在线播放 | 六月成人网 | 欧美性动态图 | 婷婷丁香五月激情综合 | 亚洲精品国产精品乱码不99 | 很很干很很日 | 蜜乳av国精产品一二三产区 |