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

    基于現(xiàn)代并發(fā)技術(shù)的測控系統(tǒng)軟件設(shè)計(jì)

    2018-11-05 02:54:54王越夏京川祁正興陸小龍
    機(jī)械制造與自動化 2018年5期
    關(guān)鍵詞:內(nèi)核線程測控

    王越,夏京川,祁正興,陸小龍

    (四川大學(xué) 制造科學(xué)與工程學(xué)院,四川 成都 610065)

    0 引言

    測控系統(tǒng)軟件設(shè)計(jì)質(zhì)量直接影響著測控系統(tǒng)穩(wěn)定運(yùn)行。其中,多個(gè)方面的因素決定了并發(fā)編程在現(xiàn)代測控系統(tǒng)軟件中的必要性:1) 數(shù)據(jù)采集量大,并需要進(jìn)行復(fù)雜算法處理,要求系統(tǒng)具有一定的可靠性、穩(wěn)定性和實(shí)時(shí)性;2) 系統(tǒng)復(fù)雜度與集成度的不斷提高增加了用戶與應(yīng)用程序交互的頻率,要求軟件具有良好的響應(yīng)能力;3) 現(xiàn)代測控系統(tǒng)網(wǎng)絡(luò)化發(fā)展趨勢以及云計(jì)算的需求,軟件中信息的傳輸速率需要進(jìn)一步提高[1-2]。本文描述了利用Windows系統(tǒng).Net Framework中的并發(fā)技術(shù)來設(shè)計(jì)測控系統(tǒng)軟件,增強(qiáng)系統(tǒng)的整體性能。

    1 并發(fā)編程技術(shù)簡介

    1.1 早期多線程技術(shù)

    Windows系統(tǒng)中并發(fā)編程通常采用多線程模式,線程是運(yùn)行在一個(gè)單一進(jìn)程上下文中的邏輯流,由內(nèi)核進(jìn)行調(diào)度,其共享所在進(jìn)程的整個(gè)虛擬地址空間。每一個(gè)線程都包括線程內(nèi)核對象、線程環(huán)境塊、用戶模式棧、內(nèi)核模式棧等內(nèi)容[3]。進(jìn)程在創(chuàng)建或終止任一線程時(shí),會調(diào)用進(jìn)程中加載的所有非托管DLL(dynamic linking library,動態(tài)鏈接庫)的DllMain方法。

    使用Thread編程模型,開發(fā)者能夠直接創(chuàng)建與操縱操作系統(tǒng)級別的線程[1]。然而,線程的每一次創(chuàng)建、終止過程都會產(chǎn)生巨大的開銷;同時(shí),一個(gè)CPU任一時(shí)刻只能運(yùn)行一個(gè)線程,過多的線程會導(dǎo)致頻繁的線程上下文切換,造成更為嚴(yán)重的性能損耗。通常程序開發(fā)者無法了解計(jì)算機(jī)運(yùn)行時(shí)特性,一味地增加線程必然會導(dǎo)致計(jì)算機(jī)資源的極大浪費(fèi)。

    Thread Pool模型則將線程管理工作移交到了操作系統(tǒng)本身,采取復(fù)用的方式(工作項(xiàng)在線程中排隊(duì),線程池線程執(zhí)行完當(dāng)前工作項(xiàng)后,繼續(xù)執(zhí)行下一個(gè)工作項(xiàng))來確保計(jì)算機(jī)中線程數(shù)量維持在一個(gè)合理的值。Thread Pool使用特定的探索方式來決定是否添加新的線程,以及保證線程池中最大線程數(shù)量。在較新的Net版本(4.0及以上)中,線程數(shù)量最大值由可利用內(nèi)存空間決定,這能充分利用現(xiàn)代計(jì)算機(jī)的多核CPU硬件資源[4]。

    1.2 任務(wù)與異步

    TPL(task parallel library,任務(wù)并行庫)是基于Thread Pool工作原理提出的一種新的并發(fā)編程模型,其提供了一個(gè)規(guī)范、更易理解的并發(fā)編程結(jié)構(gòu)。

    Task是一種抽象概念,代表并發(fā)工作的基本單元,即是指被創(chuàng)建活動運(yùn)行的同時(shí),主(創(chuàng)建)線程仍然在持續(xù)執(zhí)行[5]。Task可指定為工作線程或I/O線程,由Thread Pool進(jìn)行調(diào)度,內(nèi)置為后臺線程執(zhí)行并且不可改變。通過配置TaskCreationOptions與TaskScheduler選項(xiàng)可調(diào)整運(yùn)行時(shí)Task參數(shù),以適應(yīng)不同的工作需求。

    異步的核心理念是異步操作,啟動了的操作將會在一段時(shí)間后完成,該操作不會阻塞原來的線程,其結(jié)束時(shí)會通知原有線程操作已完成[6]。編譯器后臺采用FSM(有限狀態(tài)機(jī))原理,實(shí)現(xiàn)future模式或回調(diào)機(jī)制,以避免產(chǎn)生不必要的線程。實(shí)現(xiàn)異步的通用方式為創(chuàng)建一個(gè)Task并指定ContinueWith()方法,通過配置同步上下文(SynchronizationContext),可將完成后的延續(xù)任務(wù)(continuation)調(diào)回到原有線程中執(zhí)行?,F(xiàn)代的異步.Net程序則主要使用兩個(gè)關(guān)鍵字:async和await(.Net 4.5及以上)以簡化異步操作的調(diào)用。

    1.3 數(shù)據(jù)訪問與同步

    同一進(jìn)程的多個(gè)線程將共享絕大多數(shù)運(yùn)行資源與數(shù)據(jù)。當(dāng)多個(gè)線程想同時(shí)獲得同一個(gè)資源時(shí),將產(chǎn)生競爭;當(dāng)多段并發(fā)代碼想同時(shí)訪問一個(gè)數(shù)據(jù),并且至少有一段代碼在修改數(shù)據(jù)時(shí),數(shù)據(jù)將變得不安全或產(chǎn)生錯誤。在以上兩種情況下,都需要使用同步技術(shù)來協(xié)調(diào)多線程的執(zhí)行,保證線程間的調(diào)用安全。

    Windows提供了用戶與內(nèi)核模式構(gòu)造線程同步機(jī)制。用戶模式使用特殊CPU指令來協(xié)調(diào)線程,以確保數(shù)據(jù)變量呈現(xiàn)為原子性;而內(nèi)核模式由Windows自身提供,可根據(jù)線程運(yùn)行情況切換至等待、就緒、休眠等狀態(tài),有利于系統(tǒng)監(jiān)測與整體管理[2]。為在實(shí)現(xiàn)系統(tǒng)可進(jìn)行整體管理的同時(shí)最大化優(yōu)化線程同步性能,更合理的方式是混合使用用戶模式與內(nèi)核模式,其實(shí)現(xiàn)形式包括Monitor、Lock、ManualResetEventSlim、ReaderWriterLockSlim等。

    1.4 線程停止與任務(wù)取消

    當(dāng)程序并發(fā)運(yùn)行時(shí),用戶常常因?yàn)槟承┰蛑兄共l(fā)線程。早期技術(shù)如Abort()方法將強(qiáng)制退出線程,可能使進(jìn)程中共享資源處于無效狀態(tài)而導(dǎo)致后續(xù)的錯誤,Interrupt()方法僅在線程處于WaitSleepJoin狀態(tài)下完成,該狀態(tài)由于線程原因可能永遠(yuǎn)無法達(dá)到從而造成死鎖。在.Net 4.0中,提供CancellationTokenSource與CancellationToken來處理取消問題。其實(shí)現(xiàn)機(jī)制主要為協(xié)調(diào)取消請求與并發(fā)操作,在操作內(nèi)部定義可安全取消位置,僅當(dāng)程序運(yùn)行在安全位置(通常采用輪詢方式)時(shí)拋出異常并取消線程。

    2 并發(fā)技術(shù)在測控系統(tǒng)軟件中的應(yīng)用

    由上述可見,多線程的主要優(yōu)勢在于構(gòu)建性能良好、可伸縮、響應(yīng)靈敏的應(yīng)用程序。其核心理念在于將線程與任務(wù)分開,線程由框架根據(jù)操作系統(tǒng)特性創(chuàng)建并維護(hù),開發(fā)者僅需要創(chuàng)建可劃分為小塊的任務(wù),框架將自動地將任務(wù)調(diào)度到合適的線程并執(zhí)行。

    為實(shí)現(xiàn)以上目標(biāo),關(guān)鍵在于兩點(diǎn):1) 不手動創(chuàng)建額外的線程;2) 已創(chuàng)建的線程不應(yīng)該被阻塞以便更好地復(fù)用。

    2.1 系統(tǒng)體系結(jié)構(gòu)

    在某測控系統(tǒng)設(shè)計(jì)中,程序應(yīng)用劃分為多個(gè)模塊,其硬件結(jié)構(gòu)與軟件框架如圖1所示。

    圖1 系統(tǒng)體系結(jié)構(gòu)圖

    圖中每個(gè)實(shí)線矩形框表示一個(gè)軟件模塊和功能。為達(dá)到最佳應(yīng)用效果,各軟件模塊通常需要同時(shí)工作,程序應(yīng)運(yùn)行在多線程模式。本文以下內(nèi)容將著重介紹各個(gè)模塊并發(fā)狀態(tài)下的應(yīng)用技術(shù)與實(shí)現(xiàn)方法。

    2.2 數(shù)據(jù)采集模塊

    數(shù)據(jù)對于測控系統(tǒng)至關(guān)重要。通常而言,被測物理量(信號)通過傳感器采集,并在采集設(shè)備中對信號進(jìn)行處理(硬件濾波、數(shù)模轉(zhuǎn)換等);計(jì)算機(jī)通過軟件驅(qū)動采集設(shè)備,獲取信號進(jìn)行再次加工(如軟件濾波、數(shù)值轉(zhuǎn)換),得到控制信號后輸出到執(zhí)行機(jī)構(gòu)或視圖界面,完成對系統(tǒng)的控制或展現(xiàn)給用戶。

    為保證控制系統(tǒng)的有效可靠,必然要求采集模塊具有較高的實(shí)時(shí)性和穩(wěn)定性。通過任務(wù)和異步,能夠保證計(jì)算機(jī)在調(diào)度采集設(shè)備的同時(shí),并行執(zhí)行其他的業(yè)務(wù)邏輯。

    首先,對采集設(shè)備API進(jìn)行包裝,如:

    public class SomeDevice {

    SemaphoreSlim slim=new SemaphoreSlim(1,1);

    public async Task> GetAcquisitionAsync(object c){

    return await Task.Run( async () => {

    ...

    await slim.WaitAsync();

    ...//讀取數(shù)據(jù)

    slim.Release();

    return datas;//返回?cái)?shù)據(jù)

    });

    }

    }

    代碼中使用了SemaphoreSlim類型的一個(gè)信號量對象來實(shí)現(xiàn)資源同步,這是目前.Net平臺中唯一支持異步訪問的同步構(gòu)造。當(dāng)SemaphoreSlim最大計(jì)數(shù)為1時(shí),可對其保護(hù)的資源進(jìn)行互斥訪問。在應(yīng)用程序的其他業(yè)務(wù)中,使用如下方式來得到采集數(shù)據(jù):

    vardevice = new SomeDevice();

    var datas = await device.GetAcquisitionAsync(null);

    當(dāng)程序主線程執(zhí)行方法遇到await關(guān)鍵字后,會啟動另一個(gè)線程池線程執(zhí)行await后所帶的異步方法,而主線程無需阻塞,直接返回以執(zhí)行其它工作。當(dāng)異步方法結(jié)束,若之后還有操作,將會被包裝為一個(gè)Task返回至主線程的任務(wù)隊(duì)列,并通知主線程盡快執(zhí)行,主線程會在合適的時(shí)間對后續(xù)Task進(jìn)行調(diào)度。

    2.3 I/O操作模塊

    目前大多數(shù)的計(jì)算機(jī)與IO設(shè)備都能夠通過DMA(direct memory access,直接內(nèi)存存取)的方式來進(jìn)行數(shù)據(jù)傳輸,此時(shí)不需要消耗CPU資源,硬件會自動進(jìn)行讀寫數(shù)據(jù)并與內(nèi)存交換[7]。然而,若使用同步I/O,CPU通知硬件設(shè)備后,線程將會阻塞,直到硬件設(shè)備完成I/O操作,Windows再喚醒線程調(diào)度給CPU繼續(xù)執(zhí)行。在這個(gè)過程中線程處于休眠狀態(tài),若程序想完成其他工作,需要創(chuàng)建新的線程。當(dāng)休眠狀態(tài)被喚醒后,因?yàn)榧尤肓诵戮€程,運(yùn)行線程數(shù)量可能已超過最合適的值,計(jì)算機(jī)將會執(zhí)行的線程時(shí)間片切換,造成巨大的性能損耗。

    使用異步操作可避免以上情況。在.Net常用的IO操作,如文件讀取、寫入,Stream的應(yīng)用,數(shù)據(jù)庫Command的執(zhí)行中,有些已經(jīng)提供了異步方法,有些則提供了早期版本的BeginXxx/EndXxx方法與IAsyncResult接口,需要使用以下方式進(jìn)行包裝:

    var io = new IODevice(...);

    await Task.Factory.FromAsync(io.BeginXxx, io.EndXxx);

    對于未提供異步方法的IO操作,可手動進(jìn)行包裝。以下代碼提供了序列化操作的異步接口與序列化到xml文件的實(shí)現(xiàn):

    public interface IAsyncSerializer{ Task WriteAsync(string path, T obj);}

    public class XmlSerializer : IAsyncSerializer{

    ...

    public async Task WriteAsync(string path, T obj){

    return await Task.Run(()=>{

    using(var stream = File.Open(path, FileMode.OpenOrCreate)){

    var serializer = new XmlSerializer(obj.GetType());

    serializer.Serialize(stream, obj);

    }

    });

    }

    }

    2.4 UI操作與業(yè)務(wù)邏輯

    隨著測控系統(tǒng)軟件綜合化程度的提高,與操作者的交互頻率也將不可避免地增加。通常GUI框架(如MFC、WinForm、WPF等)的控件與創(chuàng)建者線程具有“線程相關(guān)性”,其他線程永遠(yuǎn)無法直接訪問用戶界面控件,這為基于多線程的GUI應(yīng)用程序帶來了困擾。通過異步的方式能夠解決該問題,并進(jìn)一步提高程序的響應(yīng)能力。

    可直接將異步操作注冊到控件(如Button)的事件中,如:

    CancellationTokenSource ctSource;

    private async void ButtonStartClick(object sender, EventArgs e){

    var model = new Experiment();

    this.textBox.Text = await model.Execute(ctSource.Token);

    }

    private void ButtonStopClick(object sender, EventArgs e){

    ctSource.Cancel();

    }

    在代碼中,Execute是一個(gè)返回Task的異步方法,它將在另一個(gè)線程池線程中執(zhí)行。執(zhí)行結(jié)束后,它將返回調(diào)用者線程(在此處是UI線程)繼續(xù)后面的工作,即textBox控件Text屬性的賦值過程在UI線程中執(zhí)行。同時(shí),注意代碼中Text的新值被聲明為Execute的返回值,從而使得UI與線程池線程不再共享數(shù)據(jù),起到可變量隔離作用,以避免執(zhí)行復(fù)雜的數(shù)據(jù)同步過程和帶來的性能損失。

    并且異步調(diào)用在Execute執(zhí)行的同時(shí),UI線程能夠響應(yīng)用戶的其他操作,不至于卡頓。此外,代碼在UI線程中聲明了CancellationTokenSource對象,它的Token屬性將被傳到Execute方法中。若Execute是一個(gè)費(fèi)時(shí)的操作,用戶可操作CancellationTokenSource(如這里的點(diǎn)擊Stop按鈕)取消Execute的執(zhí)行。任務(wù)將在一個(gè)安全的、可控制的位置停止,這是開發(fā)者可以操控的。此時(shí)Execute大致的結(jié)構(gòu)將如下:

    public async Task Execute(CancellationToken token){

    return await Task.Run(()=>{

    int totalTimes=10000;

    for(int times = 0;times

    ...//其他操作

    token.ThrowIfCancellationRequest();//拋出異常以停止

    }

    return "Completed";

    },token);

    }

    2.5 數(shù)據(jù)處理

    測控系統(tǒng)通常包含大量的數(shù)據(jù)處理,包括濾波、數(shù)值轉(zhuǎn)換、計(jì)算結(jié)果、圖形圖像處理等。這些過程通常為CPU密集型操作,創(chuàng)建多于CPU內(nèi)核數(shù)的線程將嚴(yán)重影響計(jì)算機(jī)性能。使用TPL中Parallel的For、ForEach方法,開發(fā)者將復(fù)雜的線程調(diào)度過程委托給操作系統(tǒng)執(zhí)行,能夠更關(guān)注于應(yīng)用邏輯并提升并行性能。

    IEnumerable datas = await acquirer.GetAcquisitionAsync();

    object lockObject = new object();

    double result = 0;

    Parallel.ForEach(data, () => 0, (item, state, returnValue) => ExecuteCompute(item), returnValue =>{Monitor.Enter(lockObject);

    result += returnValue;

    Monitor.Exit(lockObject);

    });

    以上代碼對集合datas中的每一項(xiàng)都進(jìn)行ExecuteCompute運(yùn)算,再將運(yùn)算結(jié)果統(tǒng)計(jì)至局部變量result中。其中,每一小塊都被劃分為一個(gè)任務(wù),被動態(tài)分配到空閑線程的任務(wù)隊(duì)列中以并行方式執(zhí)行,而操作系統(tǒng)則會根據(jù)硬件特性委派給不同的CPU,并根據(jù)當(dāng)前任務(wù)與線程數(shù)量決定是否增加新的線程。

    任何一項(xiàng)任務(wù)完成后,將會繼續(xù)執(zhí)行求和操作,涉及到的result是一個(gè)共享變量,需要進(jìn)行同步。此處使用Monitor構(gòu)造能得到較好性能。

    3 結(jié)語

    本文利用.Net Framework下的現(xiàn)代并發(fā)編程API,實(shí)現(xiàn)了某測控系統(tǒng)中軟件重要模塊的編寫。其中,異步方式有利于構(gòu)建IO設(shè)備模塊和實(shí)現(xiàn)反應(yīng)迅速的GUI交互界面;而并行則適用于需要CPU執(zhí)行的計(jì)算密集性操作,以保證充分利用當(dāng)代多核多處理器的硬件性能。以上技術(shù)的實(shí)現(xiàn)為構(gòu)造一個(gè)性能良好、可伸縮、響應(yīng)靈敏的應(yīng)用程序奠定了堅(jiān)實(shí)的基礎(chǔ)。

    猜你喜歡
    內(nèi)核線程測控
    萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
    強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
    基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
    Linux內(nèi)核mmap保護(hù)機(jī)制研究
    《測控電路》實(shí)踐教學(xué)改革探討
    電子測試(2018年22期)2018-12-19 05:12:58
    淺談linux多線程協(xié)作
    基于現(xiàn)代測控技術(shù)及其應(yīng)用分析
    向著新航程進(jìn)發(fā)——遠(yuǎn)望7號測控船首航記錄
    太空探索(2016年12期)2016-07-18 11:13:43
    基于USB2.0協(xié)議的通用測控通信接口設(shè)計(jì)
    Linux線程實(shí)現(xiàn)技術(shù)研究
    成人精品一区二区免费| 亚洲成人免费av在线播放| 亚洲精品一二三| 日本免费a在线| 一区在线观看完整版| 在线播放国产精品三级| 午夜福利影视在线免费观看| 三上悠亚av全集在线观看| 午夜免费观看网址| 日韩av在线大香蕉| 久久久精品国产亚洲av高清涩受| 看黄色毛片网站| 黄色 视频免费看| 午夜福利欧美成人| 久久精品人人爽人人爽视色| 操出白浆在线播放| 一级毛片精品| 纯流量卡能插随身wifi吗| 日韩欧美三级三区| 在线观看免费日韩欧美大片| 欧美成人免费av一区二区三区| 91在线观看av| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲欧美一区二区三区黑人| 欧美日韩亚洲国产一区二区在线观看| 老熟妇乱子伦视频在线观看| 日韩精品免费视频一区二区三区| 51午夜福利影视在线观看| 国产精品美女特级片免费视频播放器 | 午夜精品在线福利| 亚洲国产中文字幕在线视频| 久久国产精品影院| 一进一出好大好爽视频| 亚洲五月婷婷丁香| 精品国产乱子伦一区二区三区| 中文亚洲av片在线观看爽| 午夜福利一区二区在线看| 天堂中文最新版在线下载| 99久久精品国产亚洲精品| 看片在线看免费视频| 免费在线观看影片大全网站| 90打野战视频偷拍视频| 国产97色在线日韩免费| 在线十欧美十亚洲十日本专区| 欧美日本亚洲视频在线播放| 午夜亚洲福利在线播放| 成人三级做爰电影| 国产精品免费视频内射| 免费在线观看完整版高清| 中国美女看黄片| 多毛熟女@视频| 欧美不卡视频在线免费观看 | 国产av一区在线观看免费| 成年版毛片免费区| 亚洲精品一二三| www.www免费av| 黄色丝袜av网址大全| 国产精品99久久99久久久不卡| 日韩欧美一区视频在线观看| 久久久久九九精品影院| 免费观看精品视频网站| 神马国产精品三级电影在线观看 | 美女国产高潮福利片在线看| 国产精品免费一区二区三区在线| 制服诱惑二区| 美女福利国产在线| 在线视频色国产色| 国产精品 国内视频| 国产激情久久老熟女| 美女国产高潮福利片在线看| 精品乱码久久久久久99久播| 操出白浆在线播放| 在线十欧美十亚洲十日本专区| 日韩 欧美 亚洲 中文字幕| 最近最新中文字幕大全免费视频| 日本三级黄在线观看| 亚洲精品成人av观看孕妇| 两个人免费观看高清视频| 国产精品久久久久久人妻精品电影| av网站在线播放免费| 色婷婷久久久亚洲欧美| 美女午夜性视频免费| 久久久久久久精品吃奶| 色尼玛亚洲综合影院| 亚洲成人免费电影在线观看| 成人亚洲精品一区在线观看| 久久久国产一区二区| 亚洲午夜精品一区,二区,三区| av在线播放免费不卡| av网站免费在线观看视频| 日本三级黄在线观看| 一边摸一边做爽爽视频免费| 亚洲成av片中文字幕在线观看| 久久精品91无色码中文字幕| 欧美最黄视频在线播放免费 | 黄片大片在线免费观看| 99国产精品99久久久久| 男人舔女人下体高潮全视频| 久久性视频一级片| 国产亚洲精品一区二区www| 亚洲成人精品中文字幕电影 | 亚洲av片天天在线观看| 欧美在线黄色| 午夜免费激情av| 91老司机精品| 欧美一区二区精品小视频在线| 视频区欧美日本亚洲| 精品一区二区三区四区五区乱码| 激情在线观看视频在线高清| 国产91精品成人一区二区三区| 免费高清在线观看日韩| 国产精品久久久久久人妻精品电影| 午夜老司机福利片| 搡老乐熟女国产| 亚洲avbb在线观看| 国产成人啪精品午夜网站| 久久影院123| 国产99久久九九免费精品| 久久精品亚洲精品国产色婷小说| 欧美精品亚洲一区二区| 午夜免费成人在线视频| 国产精品免费一区二区三区在线| 大陆偷拍与自拍| 一级,二级,三级黄色视频| 热99re8久久精品国产| 午夜成年电影在线免费观看| 窝窝影院91人妻| 亚洲一区中文字幕在线| 涩涩av久久男人的天堂| 国产伦人伦偷精品视频| 日韩欧美在线二视频| 精品国产超薄肉色丝袜足j| 五月开心婷婷网| 最新在线观看一区二区三区| 97人妻天天添夜夜摸| 亚洲成av片中文字幕在线观看| 午夜老司机福利片| 亚洲精品成人av观看孕妇| 欧美日本中文国产一区发布| 久久草成人影院| av免费在线观看网站| 精品乱码久久久久久99久播| 性少妇av在线| 精品福利观看| 琪琪午夜伦伦电影理论片6080| 色婷婷av一区二区三区视频| 亚洲人成网站在线播放欧美日韩| 久久中文字幕人妻熟女| 最近最新中文字幕大全电影3 | av国产精品久久久久影院| 国产三级在线视频| 午夜免费激情av| 亚洲伊人色综图| 中文字幕人妻丝袜制服| 国产aⅴ精品一区二区三区波| 999精品在线视频| 国产精品爽爽va在线观看网站 | 性色av乱码一区二区三区2| 国产精品永久免费网站| 亚洲国产欧美日韩在线播放| 国产精品久久久久久人妻精品电影| 亚洲在线自拍视频| 免费少妇av软件| 久久精品成人免费网站| 91在线观看av| a级片在线免费高清观看视频| 精品熟女少妇八av免费久了| 757午夜福利合集在线观看| 在线观看一区二区三区| 久久这里只有精品19| 曰老女人黄片| 久久久国产精品麻豆| 欧美成人免费av一区二区三区| 亚洲 欧美 日韩 在线 免费| av在线天堂中文字幕 | 无遮挡黄片免费观看| а√天堂www在线а√下载| 久久午夜综合久久蜜桃| 在线观看一区二区三区激情| 一进一出抽搐动态| 亚洲精品一卡2卡三卡4卡5卡| 黄色视频不卡| 国内久久婷婷六月综合欲色啪| 欧美亚洲日本最大视频资源| 欧美在线一区亚洲| 看黄色毛片网站| 国产主播在线观看一区二区| 女警被强在线播放| 麻豆成人av在线观看| 国产一区二区在线av高清观看| 久久精品国产99精品国产亚洲性色 | 久久精品国产综合久久久| 久久狼人影院| 很黄的视频免费| 欧美日韩av久久| 国产三级黄色录像| 91大片在线观看| 伊人久久大香线蕉亚洲五| 男女下面插进去视频免费观看| 黄色怎么调成土黄色| 国产成人系列免费观看| 一区二区三区精品91| 精品国产国语对白av| 久久天堂一区二区三区四区| 精品午夜福利视频在线观看一区| 老汉色∧v一级毛片| 免费观看人在逋| 黄色丝袜av网址大全| 国产精品影院久久| 国产精品偷伦视频观看了| 咕卡用的链子| 国产欧美日韩精品亚洲av| 首页视频小说图片口味搜索| 女人被躁到高潮嗷嗷叫费观| 久久天躁狠狠躁夜夜2o2o| 成人精品一区二区免费| 国产精品一区二区三区四区久久 | 亚洲av第一区精品v没综合| 精品一区二区三区av网在线观看| 男女下面进入的视频免费午夜 | 五月开心婷婷网| 午夜成年电影在线免费观看| 在线视频色国产色| 国产麻豆69| 一级a爱视频在线免费观看| 欧美激情极品国产一区二区三区| 精品第一国产精品| 国产亚洲精品第一综合不卡| 18禁黄网站禁片午夜丰满| 亚洲一区中文字幕在线| 午夜福利在线免费观看网站| 黄片播放在线免费| 欧美黑人精品巨大| 性少妇av在线| 91字幕亚洲| 久久久久久久久久久久大奶| 亚洲va日本ⅴa欧美va伊人久久| 一区二区日韩欧美中文字幕| 国产97色在线日韩免费| 18禁观看日本| 国产色视频综合| 中文字幕精品免费在线观看视频| 亚洲av电影在线进入| 色尼玛亚洲综合影院| 亚洲五月天丁香| 亚洲激情在线av| 视频区欧美日本亚洲| e午夜精品久久久久久久| 精品国内亚洲2022精品成人| 神马国产精品三级电影在线观看 | 欧美乱妇无乱码| 亚洲av片天天在线观看| 久久精品aⅴ一区二区三区四区| 波多野结衣一区麻豆| 国产精品野战在线观看 | 麻豆国产av国片精品| 黄色毛片三级朝国网站| 女人高潮潮喷娇喘18禁视频| cao死你这个sao货| 脱女人内裤的视频| 亚洲国产看品久久| 久久精品亚洲av国产电影网| 99国产精品99久久久久| 99国产极品粉嫩在线观看| 极品教师在线免费播放| 国产成人欧美在线观看| 一边摸一边抽搐一进一出视频| 无遮挡黄片免费观看| 欧美成人性av电影在线观看| 欧美中文综合在线视频| 两性午夜刺激爽爽歪歪视频在线观看 | 日韩免费av在线播放| 亚洲九九香蕉| 中文字幕色久视频| 午夜日韩欧美国产| 最好的美女福利视频网| 男女之事视频高清在线观看| 亚洲欧美精品综合久久99| 手机成人av网站| 中文字幕人妻丝袜一区二区| 久久久精品国产亚洲av高清涩受| 老熟妇仑乱视频hdxx| 久久精品91无色码中文字幕| 国产精品一区二区精品视频观看| 精品免费久久久久久久清纯| 午夜91福利影院| 老司机靠b影院| 交换朋友夫妻互换小说| 中文字幕精品免费在线观看视频| av在线天堂中文字幕 | 宅男免费午夜| 天堂影院成人在线观看| 精品国产一区二区三区四区第35| 成年女人毛片免费观看观看9| 12—13女人毛片做爰片一| 丝袜人妻中文字幕| 一二三四在线观看免费中文在| 亚洲国产精品一区二区三区在线| 欧美性长视频在线观看| 日韩视频一区二区在线观看| 精品国产国语对白av| 欧美激情极品国产一区二区三区| 精品国内亚洲2022精品成人| 亚洲精品美女久久av网站| 国产精品永久免费网站| 少妇被粗大的猛进出69影院| 精品日产1卡2卡| 日韩精品青青久久久久久| 成人手机av| 激情在线观看视频在线高清| 欧美在线一区亚洲| 欧美日韩av久久| 日日干狠狠操夜夜爽| 国产亚洲精品一区二区www| 琪琪午夜伦伦电影理论片6080| 黄片播放在线免费| 日韩欧美一区视频在线观看| 成人亚洲精品av一区二区 | 欧美大码av| 一a级毛片在线观看| 亚洲成国产人片在线观看| 乱人伦中国视频| 99在线视频只有这里精品首页| 中文亚洲av片在线观看爽| 久久天躁狠狠躁夜夜2o2o| 成人永久免费在线观看视频| 国产在线观看jvid| 欧美日韩瑟瑟在线播放| 国产欧美日韩一区二区三区在线| 色综合站精品国产| 精品午夜福利视频在线观看一区| 久久精品91蜜桃| 99在线人妻在线中文字幕| 欧美日韩福利视频一区二区| 日韩大尺度精品在线看网址 | 久久久久国产精品人妻aⅴ院| 美女大奶头视频| 亚洲一区二区三区欧美精品| 人人妻人人添人人爽欧美一区卜| 嫩草影视91久久| 日韩av在线大香蕉| 午夜免费鲁丝| 人人妻,人人澡人人爽秒播| 免费观看人在逋| 久久午夜综合久久蜜桃| 大型黄色视频在线免费观看| 欧美日韩乱码在线| 成人18禁高潮啪啪吃奶动态图| 婷婷精品国产亚洲av在线| 最近最新免费中文字幕在线| 在线播放国产精品三级| 12—13女人毛片做爰片一| 一边摸一边抽搐一进一小说| 又紧又爽又黄一区二区| 国产精华一区二区三区| 免费在线观看影片大全网站| 女警被强在线播放| 亚洲精品在线观看二区| 亚洲成a人片在线一区二区| 日本五十路高清| 99久久国产精品久久久| 男女午夜视频在线观看| 在线av久久热| 亚洲国产精品999在线| 最新在线观看一区二区三区| 在线观看一区二区三区激情| 亚洲精品国产一区二区精华液| 在线观看一区二区三区激情| 亚洲国产中文字幕在线视频| 久久天堂一区二区三区四区| 淫妇啪啪啪对白视频| 亚洲久久久国产精品| xxx96com| 久久香蕉国产精品| 在线观看舔阴道视频| 欧美日韩亚洲综合一区二区三区_| 咕卡用的链子| 亚洲国产精品一区二区三区在线| 国产精品99久久99久久久不卡| 色精品久久人妻99蜜桃| 一级黄色大片毛片| 超色免费av| 国产精品一区二区精品视频观看| 桃红色精品国产亚洲av| 不卡一级毛片| 午夜老司机福利片| 精品久久久久久,| 久久久久国产一级毛片高清牌| 国产真人三级小视频在线观看| 高清av免费在线| 欧美黑人精品巨大| 两个人看的免费小视频| 99国产精品免费福利视频| 久久青草综合色| 久久精品影院6| 黄色毛片三级朝国网站| 黑丝袜美女国产一区| netflix在线观看网站| 黄色视频,在线免费观看| 欧美乱色亚洲激情| 欧美成人性av电影在线观看| 少妇 在线观看| 一边摸一边抽搐一进一小说| 又黄又爽又免费观看的视频| 极品教师在线免费播放| 国产免费现黄频在线看| 欧美人与性动交α欧美精品济南到| 久久 成人 亚洲| 亚洲精品久久成人aⅴ小说| 精品熟女少妇八av免费久了| 热99国产精品久久久久久7| 啦啦啦 在线观看视频| 欧美日韩亚洲国产一区二区在线观看| 999久久久国产精品视频| 亚洲国产欧美一区二区综合| 国产精品野战在线观看 | 色婷婷av一区二区三区视频| 热re99久久精品国产66热6| 久久99一区二区三区| 一级毛片精品| 日韩欧美三级三区| 亚洲avbb在线观看| 大型黄色视频在线免费观看| 男人的好看免费观看在线视频 | 88av欧美| 高清在线国产一区| 日本 av在线| 搡老乐熟女国产| 老汉色av国产亚洲站长工具| 在线观看舔阴道视频| 欧美成人性av电影在线观看| 亚洲欧美激情在线| 女警被强在线播放| 亚洲自拍偷在线| 91麻豆av在线| 亚洲第一青青草原| 一级毛片精品| 亚洲精品中文字幕一二三四区| 水蜜桃什么品种好| 男人操女人黄网站| 欧美日本亚洲视频在线播放| 一级a爱片免费观看的视频| 人妻久久中文字幕网| 一区二区日韩欧美中文字幕| 日韩大尺度精品在线看网址 | 最新在线观看一区二区三区| 久久精品国产亚洲av香蕉五月| 丰满迷人的少妇在线观看| 国产精品九九99| 久久精品国产综合久久久| 亚洲国产精品一区二区三区在线| 亚洲中文字幕日韩| 12—13女人毛片做爰片一| 国产麻豆69| 精品国产一区二区三区四区第35| 最近最新中文字幕大全电影3 | 婷婷精品国产亚洲av在线| 精品欧美一区二区三区在线| 黄片小视频在线播放| 黄色毛片三级朝国网站| 亚洲av第一区精品v没综合| 少妇 在线观看| 国产熟女午夜一区二区三区| 日韩成人在线观看一区二区三区| 久久伊人香网站| 岛国视频午夜一区免费看| 国产精品电影一区二区三区| 久久中文字幕人妻熟女| 在线观看66精品国产| 99香蕉大伊视频| 亚洲成人精品中文字幕电影 | 一级a爱片免费观看的视频| 久久久久精品国产欧美久久久| 欧美日本中文国产一区发布| 又黄又粗又硬又大视频| a在线观看视频网站| 日本免费一区二区三区高清不卡 | 两性午夜刺激爽爽歪歪视频在线观看 | 两个人看的免费小视频| 国产精品爽爽va在线观看网站 | 男女高潮啪啪啪动态图| 久久精品影院6| 成人永久免费在线观看视频| 99riav亚洲国产免费| 大型黄色视频在线免费观看| 高清av免费在线| 十八禁网站免费在线| 一本综合久久免费| 国产精品久久视频播放| 亚洲 国产 在线| 国产亚洲欧美精品永久| 88av欧美| 无限看片的www在线观看| 一边摸一边抽搐一进一小说| 国产深夜福利视频在线观看| 多毛熟女@视频| 成年人免费黄色播放视频| 免费在线观看视频国产中文字幕亚洲| 亚洲五月婷婷丁香| 亚洲美女黄片视频| 两个人看的免费小视频| 香蕉丝袜av| 一边摸一边做爽爽视频免费| 极品人妻少妇av视频| 久久精品国产亚洲av香蕉五月| 日日夜夜操网爽| 国产亚洲精品久久久久5区| 麻豆成人av在线观看| 99久久国产精品久久久| 两个人免费观看高清视频| 黄色毛片三级朝国网站| 啪啪无遮挡十八禁网站| 日本免费一区二区三区高清不卡 | 色婷婷久久久亚洲欧美| 99在线视频只有这里精品首页| 在线视频色国产色| 亚洲欧美日韩高清在线视频| 天堂√8在线中文| 国产激情欧美一区二区| 日韩免费av在线播放| 日韩三级视频一区二区三区| 精品国产乱子伦一区二区三区| 一区二区日韩欧美中文字幕| 中出人妻视频一区二区| 男女下面进入的视频免费午夜 | 久久精品国产清高在天天线| 脱女人内裤的视频| 成人亚洲精品一区在线观看| 日日摸夜夜添夜夜添小说| 国产一区二区在线av高清观看| 亚洲色图综合在线观看| 岛国视频午夜一区免费看| 级片在线观看| 亚洲视频免费观看视频| 一级片'在线观看视频| 国产野战对白在线观看| 老司机福利观看| 日韩欧美一区视频在线观看| 日韩大尺度精品在线看网址 | 高清av免费在线| 国产一区二区激情短视频| 午夜激情av网站| 国产精品秋霞免费鲁丝片| 国产不卡一卡二| 精品国内亚洲2022精品成人| 国产精品久久久久久人妻精品电影| 日韩免费av在线播放| www.精华液| 国产免费现黄频在线看| 一边摸一边做爽爽视频免费| 欧美黄色淫秽网站| 亚洲熟妇中文字幕五十中出 | 国产av又大| 在线视频色国产色| 欧美最黄视频在线播放免费 | 欧美乱色亚洲激情| 波多野结衣一区麻豆| 久久狼人影院| 精品高清国产在线一区| 国产精品久久视频播放| 国产野战对白在线观看| 怎么达到女性高潮| 一个人观看的视频www高清免费观看 | 亚洲专区国产一区二区| 亚洲成a人片在线一区二区| 亚洲av美国av| 亚洲一区中文字幕在线| 美女 人体艺术 gogo| 宅男免费午夜| 免费日韩欧美在线观看| 国产极品粉嫩免费观看在线| 亚洲视频免费观看视频| 国产精品久久久久成人av| 午夜精品久久久久久毛片777| 久久亚洲精品不卡| 午夜91福利影院| 久久九九热精品免费| 日韩 欧美 亚洲 中文字幕| 成人精品一区二区免费| 高清毛片免费观看视频网站 | 精品久久久久久电影网| 亚洲精品一二三| 热99国产精品久久久久久7| 久99久视频精品免费| 久久精品国产亚洲av香蕉五月| 久久精品国产综合久久久| 香蕉国产在线看| 国产一区在线观看成人免费| 日日爽夜夜爽网站| a级毛片在线看网站| 午夜影院日韩av| av国产精品久久久久影院| 久久精品91无色码中文字幕| 久久人人精品亚洲av| 精品国内亚洲2022精品成人| 1024视频免费在线观看| 在线视频色国产色| 国产1区2区3区精品| 亚洲人成电影观看| 美女大奶头视频| 真人做人爱边吃奶动态| 一区二区三区精品91| 久久狼人影院| 咕卡用的链子| 欧美日韩一级在线毛片| 国产一卡二卡三卡精品| 两性午夜刺激爽爽歪歪视频在线观看 | 女同久久另类99精品国产91| 中出人妻视频一区二区| 琪琪午夜伦伦电影理论片6080| 黄网站色视频无遮挡免费观看| 中出人妻视频一区二区| 露出奶头的视频| 激情视频va一区二区三区| 成熟少妇高潮喷水视频|