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

    VxWorks系統(tǒng)中內(nèi)存池的應(yīng)用

    2018-10-13 02:45:26安景新趙昶宇
    科技與創(chuàng)新 2018年19期
    關(guān)鍵詞:分配

    安景新,趙昶宇

    VxWorks系統(tǒng)中內(nèi)存池的應(yīng)用

    安景新1,趙昶宇2

    (1.海軍駐天津八三五七所軍事代表室,天津 300308;2.天津津航計(jì)算技術(shù)研究所,天津 300308)

    針對(duì)嵌入式軟件內(nèi)存管理具有快速性、可靠性和高效性的特點(diǎn),分析了VxWorks內(nèi)存管理機(jī)制,闡述了內(nèi)存池結(jié)構(gòu)和工作原理,深入剖析了內(nèi)存池的分配和釋放機(jī)制,并對(duì)VxWorks系統(tǒng)下的內(nèi)存管理提出了建議。

    嵌入式系統(tǒng);VxWorks;內(nèi)存管理;內(nèi)存池

    利用默認(rèn)的內(nèi)存管理函數(shù)new/delete或malloc/free在堆上分配和釋放內(nèi)存會(huì)有一些額外的開銷。如果應(yīng)用程序頻繁地在堆上分配和釋放內(nèi)存,則會(huì)導(dǎo)致性能的降低,并且會(huì)使系統(tǒng)中出現(xiàn)大量的內(nèi)存碎片,降低內(nèi)存的利用率。

    經(jīng)典的內(nèi)存池(MemPool)技術(shù)是一種用于分配大量大小相同的小對(duì)象的技術(shù)。該技術(shù)可以極大地加快內(nèi)存分配/釋放過程。如果合理地規(guī)劃內(nèi)存池的大小以及數(shù)量,可以減少動(dòng)態(tài)分配、釋放內(nèi)存時(shí)的消耗,并且可以有效減少內(nèi)存碎片,避免內(nèi)存泄漏。

    本文以VxWorks操作系統(tǒng)為例,重點(diǎn)分析了內(nèi)存池管理機(jī)制,并對(duì)內(nèi)存分配和釋放給出了解決方案。

    1 VxWorks內(nèi)存管理機(jī)制

    VxWorks采用用戶程序、內(nèi)核處于同一個(gè)地址空間的內(nèi)存管理策略,軟件開發(fā)人員在開發(fā)程序時(shí)必須保證不侵犯其他程序和內(nèi)核的地址空間,以免破壞系統(tǒng)的正常工作,或?qū)е缕渌绦虍惓_\(yùn)行。內(nèi)核負(fù)責(zé)為程序分配內(nèi)存、動(dòng)態(tài)分配內(nèi)存和回收內(nèi)存。VxWorks為用戶提供2種內(nèi)存區(qū)域,即內(nèi)存域region和內(nèi)存分區(qū)partition.region是可變長(zhǎng)的內(nèi)存區(qū),可以從創(chuàng)建的region中再分配段segment,region的特點(diǎn)是容易產(chǎn)生碎片,但靈活、不浪費(fèi);partition是定長(zhǎng)的內(nèi)存區(qū),用戶可以從創(chuàng)建的partition中分配內(nèi)存塊,或在某個(gè)內(nèi)存分區(qū)中再創(chuàng)建一個(gè)內(nèi)存分區(qū)。

    partition的特點(diǎn)是無碎片、效率高,但存在浪費(fèi)。通常情況下,VxWorks內(nèi)核和應(yīng)用程序?qū)?nèi)存的操作是基于內(nèi)存分區(qū)進(jìn)行的。內(nèi)存池是一塊連續(xù)的內(nèi)存區(qū)域,包含1個(gè)或多個(gè)內(nèi)存塊。內(nèi)存分區(qū)包含分區(qū)自身的描述信息(1個(gè)結(jié)構(gòu)體)和1個(gè)或多個(gè)內(nèi)存池,描述信息保存在系統(tǒng)內(nèi)存分區(qū)中,內(nèi)存池是該分區(qū)實(shí)際擁有的內(nèi)存空間。內(nèi)存分區(qū)剛創(chuàng)建完畢時(shí),只有1個(gè)內(nèi)存池,以后用戶程序可往該分區(qū)中添加內(nèi)存池。內(nèi)存池之間的地址不一定連續(xù),VxWorks在啟動(dòng)過程中會(huì)創(chuàng)建一個(gè)包含系統(tǒng)內(nèi)存池的系統(tǒng)內(nèi)存分區(qū),如圖1所示。

    圖1 VxWorks的內(nèi)存布局

    2 基于內(nèi)存池的內(nèi)存分配方案

    應(yīng)用程序可以通過系統(tǒng)的內(nèi)存分配調(diào)用預(yù)先一次性申請(qǐng)適當(dāng)大小的內(nèi)存作為1個(gè)內(nèi)存池,之后應(yīng)用程序?qū)?nèi)存的分配和釋放則可以通過內(nèi)存池來完成。內(nèi)存池技術(shù)申請(qǐng)內(nèi)存/釋放內(nèi)存均極其快,其內(nèi)存分配過程多數(shù)情況下復(fù)雜度為O(1),內(nèi)存釋放過程復(fù)雜度為O(1)。主要開銷在生成新的空閑內(nèi)存單元。

    2.1 內(nèi)存池結(jié)構(gòu)

    內(nèi)存池的結(jié)構(gòu)如圖2所示。

    定義內(nèi)存池控制塊T_MemoryPool數(shù)據(jù)結(jié)構(gòu)如下:

    Typedef struct MemoryPool{

    MemoryBlock* pBlock; /* 第一個(gè)block 的指針 */

    Unsigned short nUnitSize; /* 每個(gè)小內(nèi)存塊的字節(jié)數(shù) */

    Unsigned short nInitSize; /* 初始的Block 的內(nèi)存塊數(shù)目 */

    Unsigned short nGrowSize; /* 增加的Block 的內(nèi)存塊數(shù)目 */

    }T_MemoryPool;

    定義內(nèi)存塊T_MemoryBlock數(shù)據(jù)結(jié)構(gòu)如下:

    Typedef struct MemoryBlock{

    Unsigned short nSize; /* 內(nèi)存塊的大小 */

    Unsigned short nFree; /* 空閑塊數(shù) */

    Unsigned short nFirst; /* 第一個(gè)空閑塊 */

    MemoryBlock* pNext; /* 下一個(gè)Block */

    char aData[1]; /* 數(shù)據(jù)的初始位置 */

    }T_MemoryBlock;

    圖2 內(nèi)存池結(jié)構(gòu)

    2.2 內(nèi)存池工作原理

    在運(yùn)行過程中,MemoryPool內(nèi)存池可能會(huì)有多個(gè)用來滿足內(nèi)存申請(qǐng)請(qǐng)求的內(nèi)存塊,這些內(nèi)存塊是從進(jìn)程堆中開辟的一個(gè)較大的連續(xù)內(nèi)存區(qū)域,它由一個(gè)MemoryBlock結(jié)構(gòu)體和多個(gè)可供分配的空閑內(nèi)存單元組成,所有內(nèi)存塊組成了一個(gè)內(nèi)存塊鏈表,MemoryPool的pBlock是這個(gè)鏈表的頭。對(duì)每個(gè)內(nèi)存塊,都可以通過其頭部的MemoryBlock結(jié)構(gòu)體的pNext成員訪問緊跟在其后面的內(nèi)存塊。

    每個(gè)內(nèi)存塊由2部分組成,即1個(gè)MemoryBlock結(jié)構(gòu)體和多個(gè)內(nèi)存分配單元。這些內(nèi)存分配單元大小固定(由MemoryPool的nUnitSize表示),MemoryBlock結(jié)構(gòu)體有2個(gè)成員比較重要,即nFree和nFirst.

    nFree記錄這個(gè)內(nèi)存塊中還有多少個(gè)空閑單元,而nFirst則記錄下一個(gè)空閑單元的編號(hào)。每一個(gè)空閑單元的前兩個(gè)字節(jié)記錄了緊跟它之后的下一個(gè)空閑單元的編號(hào)。在此情況下,通過利用每個(gè)空閑單元的前兩個(gè)字節(jié),一個(gè)MemoryBlock中的所有空閑單元被連接起來。

    當(dāng)有新的內(nèi)存請(qǐng)求到來時(shí),MemoryPool會(huì)通過pBlock遍歷MemoryBlock鏈表,直到找到某個(gè)MemoryBlock所在的內(nèi)存塊,及其中的空閑單元(通過檢測(cè)MemoryBlock結(jié)構(gòu)體的nFree 成員是否大于0)。如果找到這樣的內(nèi)存塊,取得其MemoryBlock的nFirst值(此為該內(nèi)存塊中第一個(gè)空閑單元的編號(hào)),則根據(jù)這個(gè)編號(hào)定位到該空閑單元的起始位置(所有單元大小固定,因此,每個(gè)單元的起始位置都可以通過編號(hào)分配單元大小來偏移定位),這個(gè)位置就是用來滿足此次內(nèi)存申請(qǐng)請(qǐng)求的內(nèi)存起始地址。但在返回這個(gè)地址前,需要先將該位置開始的前兩個(gè)字節(jié)的值(這兩個(gè)字節(jié)值記錄其之后的下一個(gè)空閑單元的編號(hào))賦給本內(nèi)存塊的MemoryBlock的nFirst成員。在此情況下,下一次的請(qǐng)求就可被這個(gè)編號(hào)對(duì)應(yīng)的內(nèi)存單元來滿足,同時(shí),將此內(nèi)存塊的MemoryBlock的nFree遞減1,然后將定位到的內(nèi)存單元的起始位置作為此次內(nèi)存請(qǐng)求的返回地址返回給調(diào)用者。

    如果從現(xiàn)有的內(nèi)存塊中找不到一個(gè)自由的內(nèi)存分配單元(當(dāng)?shù)谝淮握?qǐng)求內(nèi)存以及現(xiàn)有的所有內(nèi)存塊中的內(nèi)存單元都已經(jīng)被分配時(shí),會(huì)發(fā)生這種情況),MemoryPool就會(huì)從進(jìn)程堆中申請(qǐng)1個(gè)內(nèi)存塊。

    當(dāng)某個(gè)被分配的單元因free操作需要回收時(shí),該單元并不會(huì)返回給進(jìn)程堆,而是返回給MemoryPool。返回時(shí),MemoryPool能獲取該單元的起始地址。此時(shí),MemoryPool開始遍歷其所維護(hù)的內(nèi)存塊鏈表,判斷該單元的起始地址是否落在某個(gè)內(nèi)存塊的地址范圍內(nèi)。如果不在所有內(nèi)存地址的范圍內(nèi),則此被回收的單元不屬于這個(gè)MemoryPool,將整個(gè)內(nèi)存塊返回給內(nèi)存堆;如果在某個(gè)內(nèi)存塊的地址范圍內(nèi),則它會(huì)將剛剛回收的分配單元加到這個(gè)內(nèi)存塊的MemoryBlock所維護(hù)的空閑單元鏈表頭部。

    2.3 內(nèi)存分配機(jī)制

    進(jìn)行內(nèi)存分配前,先判斷內(nèi)存池當(dāng)前內(nèi)存塊鏈表是否為空。如果為空,則意味著這是第一次內(nèi)存申請(qǐng)請(qǐng)求。此時(shí),從進(jìn)程堆中申請(qǐng)一個(gè)分配單元個(gè)數(shù)為nInitSize的內(nèi)存塊,并初始化該內(nèi)存塊。初始化的操作包括設(shè)置MemoryBlock的nSize為所有內(nèi)存分配單元的大小、nFree為-1、nFirst為1,并將編號(hào)為0的分配單元之后的所有空閑單元連接起來,即從aData位置開始,每隔nUnitSize大小取其最前面的兩個(gè)字節(jié),并記錄之后空閑單元的編號(hào)。

    如果該內(nèi)存塊申請(qǐng)成功,并初始化完畢,返回第一個(gè)分配單元給調(diào)用函數(shù)。第一個(gè)分配單元以MemoryBlock結(jié)構(gòu)體內(nèi)的最后一個(gè)字節(jié)為起始地址。

    當(dāng)內(nèi)存池中已有內(nèi)存塊時(shí),遍歷該內(nèi)存塊鏈表,尋找有空閑單元的內(nèi)存塊。如果找到有空閑單元的內(nèi)存塊,則“定位”該內(nèi)存塊為可用的空閑單元處,“定位”以MemoryBlock結(jié)構(gòu)體內(nèi)的最后一個(gè)字節(jié)位置aData為起始位置,以MemoryPool的nUnitSize為步長(zhǎng)來進(jìn)行;修改MemoryBlock nFree信息,以及修改此內(nèi)存塊的空閑單元鏈表信息。在找到的內(nèi)存塊中,nFirst為該內(nèi)存塊中自由存儲(chǔ)單元鏈表的表頭,其下一個(gè)空閑單元的編號(hào)存放在nFirst指示的空閑單元的前兩個(gè)字節(jié)。通過定位得到的位置,取其前兩個(gè)字節(jié)的值賦給nFirst,這就是此內(nèi)存塊空閑單元鏈表的新表頭,即下一次分配的空閑單元的編號(hào)。

    如果沒有找到有空閑單元的內(nèi)存塊,則需要重新向進(jìn)程堆申請(qǐng)一個(gè)內(nèi)存塊。此時(shí),由于不是第一次申請(qǐng)內(nèi)存塊,所以,申請(qǐng)的內(nèi)存塊包含的分配單元個(gè)數(shù)為nGrowSize,而不再是nInitSize。初始化這個(gè)新申請(qǐng)的內(nèi)存塊,并將此內(nèi)存塊插入MemoryPool的內(nèi)存塊鏈表的頭部,再將此內(nèi)存塊的第一個(gè)分配單元返回給調(diào)用函數(shù)。將此新內(nèi)存塊插入內(nèi)存塊鏈表頭部的原因是該內(nèi)存塊還有很多可供分配的空閑單元,放在頭部可以使下次接收到內(nèi)存申請(qǐng)時(shí),減少對(duì)內(nèi)存塊的遍歷時(shí)間。

    2.4 內(nèi)存釋放機(jī)制

    遍歷內(nèi)存池的內(nèi)存塊鏈表,確定該待回收分配單元(pFree)落在哪一個(gè)內(nèi)存塊的指針范圍內(nèi),可通過比較指針值來確定。找到的包含pFree所指向的待回收分配單元的內(nèi)存塊后,修改該內(nèi)存塊的空閑單元鏈表信息,將這個(gè)待回收分配單元的前兩個(gè)字節(jié)的值指向該內(nèi)存塊原先的第一個(gè)可分配的空閑單元的編號(hào),并將nFirst值改變?yōu)橹赶蜻@個(gè)待回收分配單元的編號(hào),該操作將待回收分配單元放在了空閑單元鏈表的頭部。需要注意的是,該單元的內(nèi)存地址并沒有改變,改變的只是其狀態(tài)(已分配/空閑),以及當(dāng)其處于空閑狀態(tài)時(shí)在空閑單元鏈表中的位置。

    回收后,考慮到資源的有效利用及后續(xù)操作的性能,內(nèi)存池的操作會(huì)繼續(xù)判斷:如果此內(nèi)存塊所有分配單元都是空閑的,則這個(gè)內(nèi)存塊就會(huì)從MemoryPool中被移出,并作為一個(gè)整體返回給進(jìn)程堆;如果該內(nèi)存塊中還有非空閑單元,則不將此內(nèi)存塊返回給進(jìn)程堆。但是因?yàn)閯倓傆幸粋€(gè)分配單元返回給了這個(gè)內(nèi)存塊,即這個(gè)內(nèi)存塊有空閑單元可供下次分配,則它會(huì)被移到MemoryPool維護(hù)的內(nèi)存塊的頭部。在此情況下,內(nèi)存請(qǐng)求到來,MemoryPool遍歷其內(nèi)存塊鏈表尋找空閑單元時(shí),第一次尋找就會(huì)找到這個(gè)內(nèi)存塊。因?yàn)檫@個(gè)內(nèi)存塊確實(shí)有空閑單元,這樣可以減少M(fèi)emoryPool的遍歷次數(shù)。

    3 問題和建議

    在使用內(nèi)存池機(jī)制管理內(nèi)存時(shí),需要注意以下幾點(diǎn):①判斷內(nèi)存塊的所有單元是否都處于空閑狀態(tài)時(shí),不用遍歷其所有單元,只需要判斷nFree乘以nUnitSize是否等于nSize、nSize內(nèi)存塊中所有分配單元的大?。ú话^部MemoryBlock結(jié)構(gòu)體的大小),這樣可快速檢查某個(gè)內(nèi)存塊中所有分配單元是否全部處于空閑狀態(tài)。②不能通過比較nFree與nInitSize或nGrowSize的大小來判斷某個(gè)內(nèi)存塊中所有分配單元都為空閑狀態(tài),這是因?yàn)榈谝淮畏峙涞膬?nèi)存塊(分配單元個(gè)數(shù)為nInitSize)可能被移到鏈表的后面,甚至有可能在移動(dòng)到鏈表后面之后,因?yàn)槟硞€(gè)時(shí)間其所有單元都處于空閑狀態(tài)而被整個(gè)返回給進(jìn)程堆,即在回收分配單元時(shí),無法判定某個(gè)內(nèi)存塊中的分配單元個(gè)數(shù)是nInitSize還是nGrowSize,也就無法通過比較nFree與nInitSize或nGrowSize的大小,來判斷內(nèi)存塊的所有分配單元是否都為空閑狀態(tài)。③在進(jìn)行內(nèi)存釋放操作后,雖然pFree被“回收”,但是pFree仍然指向當(dāng)前已“回收”的單元,這個(gè)單元在回收過程中,其前兩個(gè)字節(jié)被覆寫,但其他部分的內(nèi)容并沒有改變。且從整個(gè)進(jìn)程的內(nèi)存使用角度看,該“回收”的單元的狀態(tài)仍然是“有效的”。因?yàn)檫@里的“回收”只是回收給了內(nèi)存池,而并沒有回收給進(jìn)程堆,因此,程序仍然可以通過pFree訪問此單元。但這是一個(gè)很危險(xiǎn)的操作,因?yàn)樵搯卧诨厥者^程中的前兩個(gè)字節(jié)已被覆寫,且該單元可能很快會(huì)被內(nèi)存池重新分配。因此,回收后通過pFree指針對(duì)這個(gè)單元的訪問都是錯(cuò)誤的,讀操作會(huì)讀到錯(cuò)誤的數(shù)據(jù),寫操作則可能會(huì)破壞程序中的其他數(shù)據(jù),需要注意此問題。

    4 結(jié)束語

    內(nèi)存的申請(qǐng)和釋放對(duì)一個(gè)應(yīng)用程序的整體性能影響極大,甚至在很多時(shí)候會(huì)成為某個(gè)應(yīng)用程序的瓶頸。消除內(nèi)存申請(qǐng)和釋放瓶頸的方法往往是針對(duì)內(nèi)存使用的實(shí)際情況,提供合適的內(nèi)存池。通過性能測(cè)試表明,內(nèi)存池具有malloc/free進(jìn)行內(nèi)存申請(qǐng)/釋放的方式快、不會(huì)產(chǎn)生或很少產(chǎn)生堆碎片、可避免內(nèi)存泄漏等明顯特性。以上所描述的基于內(nèi)存池的內(nèi)存管理方法具有很大的實(shí)用價(jià)值,希望能給嵌入式軟件工作者啟發(fā),從而設(shè)計(jì)出更好的內(nèi)存管理方法。

    [1]顧勝元,楊丹,黃海倫.嵌入式實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理機(jī)制研究與應(yīng)用[J].重慶工學(xué)院學(xué)報(bào)(自然科學(xué)),2009(01): 117-121.

    [2]許健,于鴻洋.一種Linux多線程應(yīng)用下內(nèi)存池的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(11):146-149.

    [3]何煦嵐,何曉嵐.基于多鏈表結(jié)構(gòu)的嵌入式系統(tǒng)內(nèi)存管理[J].計(jì)算機(jī)應(yīng)用與軟件,2008,25(04):58-60.

    〔編輯:張思楠〕

    2095-6835(2018)19-0145-03

    TP316.2

    A

    10.15913/j.cnki.kjycx.2018.19.145

    安景新(1990—),男,工學(xué)碩士,助理工程師,從事裝備質(zhì)量監(jiān)督與檢驗(yàn)驗(yàn)收方面的工作與研究。趙昶宇(1982—),男,陜西漢中人,工學(xué)碩士,高級(jí)工程師,主要從事嵌入式系統(tǒng)軟件測(cè)試方面的研究。

    猜你喜歡
    分配
    分配正義:以弱勢(shì)群體為棱鏡
    基于可行方向法的水下機(jī)器人推力分配
    應(yīng)答器THR和TFFR分配及SIL等級(jí)探討
    Crying Foul
    遺產(chǎn)的分配
    一種分配十分不均的財(cái)富
    你知道電壓的分配規(guī)律嗎
    績(jī)效考核分配的實(shí)踐與思考
    收入分配視閾下的共享發(fā)展思考
    浙江績(jī)效分配改革觀察
    精品一区二区免费观看| 久久久国产欧美日韩av| 99久久综合免费| 80岁老熟妇乱子伦牲交| 亚洲国产av影院在线观看| 久久99一区二区三区| 日韩在线高清观看一区二区三区| 99热这里只有是精品在线观看| 国产成人av激情在线播放| 久久99蜜桃精品久久| 国产免费现黄频在线看| 伊人久久国产一区二区| 精品久久久精品久久久| 久久人人爽人人爽人人片va| 美女大奶头黄色视频| 亚洲久久久国产精品| av线在线观看网站| a 毛片基地| 美女xxoo啪啪120秒动态图| 日本色播在线视频| 91午夜精品亚洲一区二区三区| 亚洲一区二区三区欧美精品| 丝袜人妻中文字幕| 汤姆久久久久久久影院中文字幕| 亚洲国产精品一区二区三区在线| 看免费成人av毛片| 国产日韩欧美在线精品| 女的被弄到高潮叫床怎么办| 国产精品熟女久久久久浪| 国产日韩一区二区三区精品不卡| 国产精品国产三级国产av玫瑰| 看十八女毛片水多多多| 午夜视频国产福利| 丝瓜视频免费看黄片| 国产精品99久久99久久久不卡 | 成人18禁高潮啪啪吃奶动态图| 日本vs欧美在线观看视频| 亚洲熟女精品中文字幕| 1024视频免费在线观看| 国产免费一级a男人的天堂| 99国产综合亚洲精品| 成人亚洲精品一区在线观看| 免费人成在线观看视频色| 激情视频va一区二区三区| 亚洲国产av新网站| 人体艺术视频欧美日本| 蜜桃在线观看..| tube8黄色片| 久热久热在线精品观看| www日本在线高清视频| 天美传媒精品一区二区| 国产男女内射视频| 国产 一区精品| 国产成人精品无人区| 大香蕉久久网| 久久97久久精品| 国产熟女欧美一区二区| 久久久久久久亚洲中文字幕| 亚洲国产欧美日韩在线播放| 国产精品久久久久久精品电影小说| 免费大片18禁| 一级片'在线观看视频| 欧美日韩精品成人综合77777| av网站免费在线观看视频| 性高湖久久久久久久久免费观看| 日韩欧美一区视频在线观看| 狠狠精品人妻久久久久久综合| 女性被躁到高潮视频| 免费观看无遮挡的男女| 黑人欧美特级aaaaaa片| 亚洲精品国产色婷婷电影| 一级片'在线观看视频| 日韩伦理黄色片| 99香蕉大伊视频| 欧美日韩视频精品一区| 国产黄频视频在线观看| a级毛片在线看网站| 成人毛片60女人毛片免费| 肉色欧美久久久久久久蜜桃| 天堂中文最新版在线下载| 大陆偷拍与自拍| 久久久久久久久久人人人人人人| 免费大片黄手机在线观看| 欧美激情国产日韩精品一区| 国产xxxxx性猛交| 精品一品国产午夜福利视频| 国产xxxxx性猛交| 国产精品久久久av美女十八| 亚洲综合色惰| 日本与韩国留学比较| 大香蕉久久成人网| 亚洲精品日韩在线中文字幕| 天天躁夜夜躁狠狠久久av| 午夜福利在线观看免费完整高清在| 国产精品一区二区在线观看99| 国产在线免费精品| 日本黄色日本黄色录像| 在线精品无人区一区二区三| 全区人妻精品视频| 天堂中文最新版在线下载| 满18在线观看网站| 久久久久久久久久久久大奶| 午夜日本视频在线| 日本与韩国留学比较| 波多野结衣一区麻豆| 十分钟在线观看高清视频www| 全区人妻精品视频| 久久国产精品大桥未久av| 汤姆久久久久久久影院中文字幕| 日韩精品有码人妻一区| 亚洲av中文av极速乱| 男的添女的下面高潮视频| 午夜福利在线观看免费完整高清在| 亚洲人成77777在线视频| 大香蕉久久网| 亚洲国产日韩一区二区| 国产伦理片在线播放av一区| 国产av一区二区精品久久| 精品视频人人做人人爽| 欧美97在线视频| 亚洲欧美色中文字幕在线| 黑人巨大精品欧美一区二区蜜桃 | 捣出白浆h1v1| 国产伦理片在线播放av一区| 亚洲精品一二三| 赤兔流量卡办理| 在线观看免费视频网站a站| 美女中出高潮动态图| 国产又爽黄色视频| 精品一区二区三卡| 国产xxxxx性猛交| 成人综合一区亚洲| 久久精品熟女亚洲av麻豆精品| 国产一区有黄有色的免费视频| 国产亚洲精品久久久com| 高清不卡的av网站| 王馨瑶露胸无遮挡在线观看| 咕卡用的链子| 国产精品久久久久成人av| 性色avwww在线观看| 最后的刺客免费高清国语| 久久午夜福利片| 咕卡用的链子| 99久国产av精品国产电影| 免费日韩欧美在线观看| 一本大道久久a久久精品| 亚洲欧美中文字幕日韩二区| 久久精品夜色国产| 久久人人爽人人片av| 久久99热6这里只有精品| 久久久精品区二区三区| 建设人人有责人人尽责人人享有的| 久久久久久人人人人人| 伊人久久国产一区二区| 涩涩av久久男人的天堂| 免费人成在线观看视频色| 最近中文字幕2019免费版| 亚洲一区二区三区欧美精品| 色婷婷av一区二区三区视频| 一本色道久久久久久精品综合| 高清av免费在线| 中文字幕最新亚洲高清| 啦啦啦中文免费视频观看日本| 久久国产亚洲av麻豆专区| 欧美国产精品va在线观看不卡| 97人妻天天添夜夜摸| 成年av动漫网址| 久久av网站| av播播在线观看一区| 国产视频首页在线观看| 女性被躁到高潮视频| 丝袜喷水一区| 99视频精品全部免费 在线| 久久久久久伊人网av| 99久久综合免费| 黑人巨大精品欧美一区二区蜜桃 | 日本色播在线视频| 亚洲精品国产色婷婷电影| 日韩 亚洲 欧美在线| 午夜福利视频在线观看免费| 欧美激情极品国产一区二区三区 | 99热这里只有是精品在线观看| 精品视频人人做人人爽| 男女下面插进去视频免费观看 | 久久久精品94久久精品| 两个人看的免费小视频| 中文字幕制服av| 亚洲经典国产精华液单| 各种免费的搞黄视频| 亚洲欧美中文字幕日韩二区| 蜜桃在线观看..| 一区二区三区精品91| 国产综合精华液| 亚洲伊人色综图| 国产福利在线免费观看视频| 狂野欧美激情性xxxx在线观看| 美女视频免费永久观看网站| 久久久久久久久久久免费av| 18禁裸乳无遮挡动漫免费视频| a 毛片基地| 日韩电影二区| 免费高清在线观看视频在线观看| 黄片播放在线免费| 999精品在线视频| 欧美人与善性xxx| 99热国产这里只有精品6| 亚洲高清免费不卡视频| 涩涩av久久男人的天堂| av网站免费在线观看视频| 综合色丁香网| 涩涩av久久男人的天堂| 国产精品 国内视频| 久久人人爽av亚洲精品天堂| 晚上一个人看的免费电影| 国产精品久久久久久久电影| 97在线视频观看| 晚上一个人看的免费电影| 国产精品.久久久| 亚洲精品乱久久久久久| 久久久久国产精品人妻一区二区| 欧美激情极品国产一区二区三区 | 夜夜骑夜夜射夜夜干| av线在线观看网站| 欧美xxⅹ黑人| 国产男女内射视频| 亚洲国产色片| 国产毛片在线视频| 久久久久精品久久久久真实原创| 美国免费a级毛片| 午夜视频国产福利| 日韩中字成人| 午夜老司机福利剧场| 日韩一区二区视频免费看| 欧美日韩视频精品一区| 国产成人a∨麻豆精品| 国产一区有黄有色的免费视频| 91午夜精品亚洲一区二区三区| 天堂8中文在线网| 超碰97精品在线观看| 色网站视频免费| 夫妻午夜视频| 成年av动漫网址| 成人亚洲欧美一区二区av| 18禁裸乳无遮挡动漫免费视频| 久久人人爽人人片av| 高清视频免费观看一区二区| 国产一区二区三区av在线| 大片免费播放器 马上看| 久久婷婷青草| 精品国产乱码久久久久久小说| 9色porny在线观看| 高清在线视频一区二区三区| 一级,二级,三级黄色视频| 日本av手机在线免费观看| videos熟女内射| 欧美精品人与动牲交sv欧美| 国产成人av激情在线播放| 久久精品国产亚洲av天美| 永久网站在线| 天美传媒精品一区二区| 久久精品国产亚洲av涩爱| 免费人妻精品一区二区三区视频| 丰满迷人的少妇在线观看| 精品99又大又爽又粗少妇毛片| 九九在线视频观看精品| 久久午夜综合久久蜜桃| 国产精品一二三区在线看| 国产免费现黄频在线看| 久久久国产一区二区| 国产无遮挡羞羞视频在线观看| 日韩在线高清观看一区二区三区| 亚洲熟女精品中文字幕| 亚洲 欧美一区二区三区| 亚洲国产欧美日韩在线播放| 国产精品不卡视频一区二区| 亚洲色图 男人天堂 中文字幕 | 黄网站色视频无遮挡免费观看| 91精品三级在线观看| 人人妻人人澡人人看| 国产在视频线精品| 巨乳人妻的诱惑在线观看| 国产永久视频网站| 中文字幕最新亚洲高清| 另类精品久久| 久久国产精品大桥未久av| 最近最新中文字幕免费大全7| 色婷婷久久久亚洲欧美| 国产av一区二区精品久久| 男人操女人黄网站| 久久精品国产综合久久久 | 亚洲四区av| 少妇高潮的动态图| 亚洲 欧美一区二区三区| 97超碰精品成人国产| 日韩av免费高清视频| 99热网站在线观看| 亚洲国产欧美日韩在线播放| 亚洲熟女精品中文字幕| 成人二区视频| 欧美日韩视频精品一区| 久久人人爽人人片av| 边亲边吃奶的免费视频| a级毛片黄视频| 中文字幕另类日韩欧美亚洲嫩草| av国产久精品久网站免费入址| 精品熟女少妇av免费看| 日韩欧美精品免费久久| 人体艺术视频欧美日本| 人妻人人澡人人爽人人| 久久国产精品大桥未久av| 亚洲精品av麻豆狂野| 一本一本久久a久久精品综合妖精 国产伦在线观看视频一区 | 男女边吃奶边做爰视频| 久久婷婷青草| 男女边吃奶边做爰视频| 成人午夜精彩视频在线观看| 日本猛色少妇xxxxx猛交久久| 男女午夜视频在线观看 | 精品一品国产午夜福利视频| 一级片'在线观看视频| 丝袜喷水一区| 国产欧美另类精品又又久久亚洲欧美| 久久久久久久亚洲中文字幕| 大码成人一级视频| 男人添女人高潮全过程视频| 久久人人爽人人爽人人片va| 国产精品麻豆人妻色哟哟久久| 99热网站在线观看| 乱码一卡2卡4卡精品| 亚洲美女视频黄频| 国产在线一区二区三区精| 国产极品粉嫩免费观看在线| 亚洲av综合色区一区| 久久99精品国语久久久| 国产亚洲一区二区精品| 香蕉国产在线看| 三级国产精品片| 22中文网久久字幕| 在线免费观看不下载黄p国产| av网站免费在线观看视频| 亚洲精品日本国产第一区| 天堂中文最新版在线下载| 国产在视频线精品| 欧美日韩一区二区视频在线观看视频在线| 春色校园在线视频观看| 你懂的网址亚洲精品在线观看| av国产久精品久网站免费入址| 国产白丝娇喘喷水9色精品| 啦啦啦视频在线资源免费观看| 国产在线视频一区二区| 亚洲精品av麻豆狂野| 国产精品蜜桃在线观看| 亚洲精品日韩在线中文字幕| 人妻系列 视频| 最新的欧美精品一区二区| 狂野欧美激情性bbbbbb| 最新的欧美精品一区二区| 亚洲五月色婷婷综合| 国产永久视频网站| 韩国av在线不卡| 亚洲av中文av极速乱| 侵犯人妻中文字幕一二三四区| 亚洲精品aⅴ在线观看| 亚洲国产色片| 午夜日本视频在线| 啦啦啦啦在线视频资源| 少妇被粗大猛烈的视频| 亚洲图色成人| 成人国产av品久久久| 久久热在线av| 十八禁高潮呻吟视频| 香蕉丝袜av| 久久久久人妻精品一区果冻| 国产深夜福利视频在线观看| 天天躁夜夜躁狠狠久久av| 黄色毛片三级朝国网站| 国产日韩欧美在线精品| 一区二区三区精品91| 亚洲精品国产av成人精品| 免费在线观看完整版高清| 18禁裸乳无遮挡动漫免费视频| 欧美成人午夜精品| 精品国产露脸久久av麻豆| 搡老乐熟女国产| 91成人精品电影| 成人手机av| www日本在线高清视频| 久久久久国产网址| 97在线视频观看| 高清在线视频一区二区三区| 香蕉国产在线看| 欧美人与性动交α欧美软件 | 国产视频首页在线观看| 精品亚洲成a人片在线观看| 这个男人来自地球电影免费观看 | 一本大道久久a久久精品| 天堂中文最新版在线下载| 国产老妇伦熟女老妇高清| 精品福利永久在线观看| 在线免费观看不下载黄p国产| 最新的欧美精品一区二区| 天堂俺去俺来也www色官网| 制服诱惑二区| av线在线观看网站| av又黄又爽大尺度在线免费看| 亚洲三级黄色毛片| 久久午夜综合久久蜜桃| 久久鲁丝午夜福利片| 国产av国产精品国产| 亚洲经典国产精华液单| 国内精品宾馆在线| 亚洲精品自拍成人| 蜜桃国产av成人99| 精品久久久久久电影网| 另类精品久久| 成人国产麻豆网| 涩涩av久久男人的天堂| 国产激情久久老熟女| 午夜免费男女啪啪视频观看| 日本爱情动作片www.在线观看| 少妇高潮的动态图| 我要看黄色一级片免费的| 亚洲精品aⅴ在线观看| 免费黄色在线免费观看| 欧美人与性动交α欧美精品济南到 | 国产精品一区二区在线不卡| 亚洲国产日韩一区二区| 性色avwww在线观看| 亚洲一码二码三码区别大吗| 99热6这里只有精品| 日本与韩国留学比较| 18禁动态无遮挡网站| 色婷婷av一区二区三区视频| 日韩精品免费视频一区二区三区 | 男女无遮挡免费网站观看| 国产国拍精品亚洲av在线观看| 国产亚洲精品久久久com| 亚洲第一区二区三区不卡| av女优亚洲男人天堂| 亚洲精品自拍成人| 国产精品久久久久久精品古装| 国产精品偷伦视频观看了| 欧美xxxx性猛交bbbb| 九九在线视频观看精品| 18禁在线无遮挡免费观看视频| 捣出白浆h1v1| 视频中文字幕在线观看| 亚洲丝袜综合中文字幕| 久久这里只有精品19| 香蕉精品网在线| 国产极品天堂在线| 99久国产av精品国产电影| 国产成人精品在线电影| 免费大片18禁| 免费看不卡的av| 夫妻午夜视频| 夜夜爽夜夜爽视频| 我的女老师完整版在线观看| 亚洲美女搞黄在线观看| 69精品国产乱码久久久| 热re99久久精品国产66热6| 亚洲精品日韩在线中文字幕| av女优亚洲男人天堂| 亚洲欧美精品自产自拍| 咕卡用的链子| 欧美最新免费一区二区三区| 亚洲精品av麻豆狂野| 久久久久精品人妻al黑| 国产成人av激情在线播放| 中国美白少妇内射xxxbb| 丰满乱子伦码专区| 亚洲精品久久成人aⅴ小说| 一边亲一边摸免费视频| 国产色婷婷99| 精品午夜福利在线看| 一个人免费看片子| 免费久久久久久久精品成人欧美视频 | 边亲边吃奶的免费视频| 亚洲精品456在线播放app| 亚洲国产av新网站| 精品人妻在线不人妻| 久久久久久久精品精品| 日本免费在线观看一区| 三级国产精品片| 日本wwww免费看| 一级爰片在线观看| 欧美日韩视频高清一区二区三区二| 免费高清在线观看日韩| 最近的中文字幕免费完整| 最黄视频免费看| 国产成人精品一,二区| 亚洲av电影在线观看一区二区三区| 欧美激情极品国产一区二区三区 | 国产黄频视频在线观看| 十八禁高潮呻吟视频| 国产精品欧美亚洲77777| 久久鲁丝午夜福利片| 99久久精品国产国产毛片| 日产精品乱码卡一卡2卡三| 韩国精品一区二区三区 | 九草在线视频观看| 色婷婷久久久亚洲欧美| 一区在线观看完整版| 国产亚洲精品第一综合不卡 | 亚洲成色77777| a 毛片基地| 观看av在线不卡| 日本欧美视频一区| 久久久久久久精品精品| 日本黄大片高清| 婷婷色av中文字幕| 一本色道久久久久久精品综合| 18禁国产床啪视频网站| 咕卡用的链子| 免费人妻精品一区二区三区视频| av在线app专区| 久久ye,这里只有精品| 90打野战视频偷拍视频| 侵犯人妻中文字幕一二三四区| 搡女人真爽免费视频火全软件| 精品国产一区二区三区四区第35| 91在线精品国自产拍蜜月| 亚洲av日韩在线播放| 蜜桃国产av成人99| 国产精品人妻久久久影院| 亚洲久久久国产精品| 欧美 亚洲 国产 日韩一| 国产极品天堂在线| 精品亚洲成a人片在线观看| 久久久久人妻精品一区果冻| 精品国产露脸久久av麻豆| 黄网站色视频无遮挡免费观看| 国产成人免费观看mmmm| 国产毛片在线视频| av不卡在线播放| 黄片无遮挡物在线观看| 久久久a久久爽久久v久久| 亚洲情色 制服丝袜| 国产av精品麻豆| 99热这里只有是精品在线观看| 七月丁香在线播放| 亚洲,欧美,日韩| 我要看黄色一级片免费的| 国产精品无大码| 一级爰片在线观看| 亚洲色图综合在线观看| 男女下面插进去视频免费观看 | 久久人人爽人人爽人人片va| 久久久久国产网址| 国产精品99久久99久久久不卡 | 亚洲av欧美aⅴ国产| 久久精品夜色国产| 蜜臀久久99精品久久宅男| 亚洲精品第二区| 18在线观看网站| 国产亚洲精品久久久com| 亚洲精品aⅴ在线观看| 亚洲人与动物交配视频| av在线观看视频网站免费| 欧美亚洲日本最大视频资源| 亚洲欧洲国产日韩| 国产高清三级在线| 午夜久久久在线观看| kizo精华| av国产精品久久久久影院| 波野结衣二区三区在线| 中文字幕精品免费在线观看视频 | 男人爽女人下面视频在线观看| 1024视频免费在线观看| 亚洲精品中文字幕在线视频| 搡女人真爽免费视频火全软件| 在线观看人妻少妇| 久久人人爽人人爽人人片va| 国产不卡av网站在线观看| 国产成人av激情在线播放| 国产免费现黄频在线看| 亚洲av免费高清在线观看| 午夜日本视频在线| 天天躁夜夜躁狠狠躁躁| 久久ye,这里只有精品| av.在线天堂| 中文字幕亚洲精品专区| 男女国产视频网站| 欧美日韩一区二区视频在线观看视频在线| 国产精品久久久久久久久免| 欧美国产精品一级二级三级| 九九在线视频观看精品| 国产一级毛片在线| 自拍欧美九色日韩亚洲蝌蚪91| 97超碰精品成人国产| 国精品久久久久久国模美| 国产在线免费精品| 各种免费的搞黄视频| 午夜免费男女啪啪视频观看| 国产免费视频播放在线视频| 美女脱内裤让男人舔精品视频| 亚洲,一卡二卡三卡| 九九在线视频观看精品| 亚洲精品第二区| 又大又黄又爽视频免费| 久久久a久久爽久久v久久| 免费久久久久久久精品成人欧美视频 | 久久久久久久久久成人| 日韩欧美精品免费久久| 亚洲精品乱码久久久久久按摩| 亚洲国产欧美日韩在线播放| 夫妻性生交免费视频一级片| 咕卡用的链子| 国产女主播在线喷水免费视频网站| 考比视频在线观看| 成人国语在线视频| 欧美变态另类bdsm刘玥| 久久 成人 亚洲| 日本黄大片高清| 少妇人妻精品综合一区二区|