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

    Nucleus PLUS的動(dòng)態(tài)內(nèi)存管理機(jī)制研究

    2018-04-11 09:13:50,,,,
    關(guān)鍵詞:鏈表越界空閑

    ,,,,

    (許繼電氣,許昌 461000)

    引 言

    Nucleus為搶先式多任務(wù)操作系統(tǒng),Nucleus PLUS為其系統(tǒng)內(nèi)核,具有可移植性、易用性、可配置性等特點(diǎn)。Nucleus PLUS提供一系列系統(tǒng)服務(wù),比如:任務(wù)控制、任務(wù)通信、任務(wù)同步、內(nèi)存管理、可編程的定時(shí)器、標(biāo)準(zhǔn)的輸入/輸出設(shè)備接口等。

    Nucleus PLUS內(nèi)存管理沒有使用虛擬內(nèi)存技術(shù),采用的是實(shí)存儲(chǔ)器管理技術(shù):對內(nèi)存地址的訪問不需要經(jīng)過MMU,直接送到地址線上輸出,程序中訪問的地址都是實(shí)際的物理地址[1]。這種內(nèi)存管理策略雖然降低了系統(tǒng)的安全性,但是內(nèi)存分配快速、高效,避免了虛存系統(tǒng)中地址轉(zhuǎn)換及非常耗時(shí)的磁盤I/O操作,是許多嵌入式設(shè)備的選擇。

    Nucleus PLUS提供兩種內(nèi)存管理方式,一種是分區(qū)內(nèi)存管理(Partition Memory Pools),另一種是動(dòng)態(tài)內(nèi)存管理(Dynamic Memory Pools)[2]。本文針對某版本Nucleus PLUS,詳細(xì)研究了其動(dòng)態(tài)內(nèi)存管理機(jī)制及實(shí)現(xiàn)細(xì)節(jié),介紹了其測試思路和測試用例設(shè)計(jì),最后對Nucleus PLUS動(dòng)態(tài)內(nèi)存管理機(jī)制進(jìn)行評價(jià),并針對該機(jī)制存在的內(nèi)存訪問越界時(shí)保存在內(nèi)存頭的內(nèi)存管理信息被破壞,進(jìn)而導(dǎo)致動(dòng)態(tài)內(nèi)存管理機(jī)制系統(tǒng)性失效的缺點(diǎn),提出了改進(jìn)建議及內(nèi)存越界檢測方法。

    1 Nucleus PLUS動(dòng)態(tài)內(nèi)存管理機(jī)制研究

    Nucleus PLUS動(dòng)態(tài)內(nèi)存管理組件(DM)負(fù)責(zé)所有的動(dòng)態(tài)內(nèi)存管理。一個(gè)動(dòng)態(tài)內(nèi)存池包括用戶指定數(shù)目的字節(jié),提供了從動(dòng)態(tài)內(nèi)存池中分配或釋放可變長度內(nèi)存塊的服務(wù)。內(nèi)存分配采用first-fit策略(首次適配策略)。

    1.1 數(shù)據(jù)結(jié)構(gòu)

    1.1.1內(nèi)存池控制塊鏈表

    內(nèi)存池通過動(dòng)態(tài)內(nèi)存池控制塊(DM_PCB,見1.1.2節(jié))管理。所有創(chuàng)建的內(nèi)存池的DM_PCB通過一個(gè)雙向循環(huán)鏈表鏈接起來,即內(nèi)存池控制塊鏈表。全局變量DMD_Created_Pools_List為該鏈表的頭指針。動(dòng)態(tài)內(nèi)存池可以動(dòng)態(tài)刪除和創(chuàng)建,每創(chuàng)建一個(gè)動(dòng)態(tài)內(nèi)存池,其DB_PCB加入到鏈表尾端;每刪除一個(gè)動(dòng)態(tài)內(nèi)存池,其在鏈表中對應(yīng)的DB_PCB節(jié)點(diǎn)就會(huì)從鏈表中刪除。內(nèi)存池控制塊鏈表如圖1所示。

    圖1 內(nèi)存池控制塊鏈表

    1.1.2內(nèi)存池控制塊(DM_PCB)

    DM_PCB用于管理內(nèi)存池,它包含了內(nèi)存池的狀態(tài)和控制信息,屬性見表1。

    表1 內(nèi)存池控制塊主要屬性

    DM_PCB的dm_suspension_list鏈表的每個(gè)節(jié)點(diǎn)為一個(gè)內(nèi)存池阻塞結(jié)構(gòu),其定義見DM_SUSPEND。它主要包含如下信息:

    ① dm_memory_pool:內(nèi)存池控制塊指針,指示阻塞哪個(gè)內(nèi)存池上。

    ② dm_suspended_task:任務(wù)控制塊指針,指示哪個(gè)任務(wù)被阻塞。

    ③ dm_request_size:任務(wù)請求內(nèi)存的大小。

    1.1.3內(nèi)存池內(nèi)存布局

    內(nèi)存池的內(nèi)存由內(nèi)存塊組成,分為空閑內(nèi)存塊和已分配內(nèi)存塊。每個(gè)內(nèi)存塊都有一個(gè)內(nèi)存頭數(shù)據(jù)結(jié)構(gòu)(DM_HEADER,見1.1.4節(jié)),用以描述該內(nèi)存塊的基本信息以及用于鏈接其它內(nèi)存塊的指針信息,內(nèi)存頭與用戶數(shù)據(jù)連續(xù)存在一起。內(nèi)存池內(nèi)存中存在兩個(gè)雙向鏈表:①“全部內(nèi)存塊鏈表”:鏈接了全部內(nèi)存塊,包括已分配內(nèi)存塊和空閑內(nèi)存塊。②“空閑內(nèi)存塊鏈表”:只鏈接了空閑內(nèi)存塊。“全部內(nèi)存塊鏈表”的頭指針保存在內(nèi)存池控制塊的dm_start_address中,通過DM_HEADER的dm_next_memory和dm_previous_memory指針將所有內(nèi)存塊雙向鏈接起來。“空閑內(nèi)存塊鏈表”的頭指針保存在內(nèi)存控制塊的dm_memory_list中,通過DM_HEADER的dm_next_free和dm_previous指針將空閑內(nèi)存塊雙向鏈接起來。圖2為內(nèi)存池布局圖。

    圖2 內(nèi)存池布局圖

    內(nèi)存池剛創(chuàng)建后,只有一個(gè)空閑塊和一個(gè)Trailer塊,隨著該內(nèi)存池中內(nèi)存的不斷申請和釋放,內(nèi)存池便被分割成許多內(nèi)存塊。

    1.1.4內(nèi)存頭數(shù)據(jù)結(jié)構(gòu)(DM_HEADER)

    內(nèi)存頭存儲(chǔ)了內(nèi)存塊基本信息以及用于鏈接其它內(nèi)存塊的指針信息。主要屬性如表2所列。

    表2 DM_HEADER主要屬性

    DM_HEADER數(shù)據(jù)類型的大小為24, 但是所占內(nèi)存開銷的大小(見DM_OVERHEAD)卻定義16,少了8個(gè)字節(jié)。原因是:對于已分配內(nèi)存塊,DM_HEADER中不存儲(chǔ)dm_next_free和dm_previous_free這兩個(gè)共占8個(gè)字節(jié)的指針。對于空閑內(nèi)存塊,dm_next_free、dm_previous_free這個(gè)指針只是暫時(shí)存儲(chǔ)在其可用內(nèi)存中,當(dāng)該內(nèi)存塊被分配出去時(shí),這兩個(gè)指針?biāo)诘膬?nèi)存也在分配范圍內(nèi)。

    DM_HEADER中并沒有定義表示內(nèi)存塊內(nèi)存大小的數(shù)據(jù)。但是內(nèi)存塊內(nèi)存的大小是可以推算出來的。對于某個(gè)內(nèi)存塊(pt指針指向該內(nèi)存塊),計(jì)算方法如下:

    (char)pt->dm_next_memory - (char)pt - DM_OVERHEAD。

    對于Trailer內(nèi)存塊,只包含了一個(gè)內(nèi)存頭,且dm_memory_free為非空閑狀態(tài)。設(shè)置Trailer內(nèi)存塊的作用是:充當(dāng)一條屏障,防止當(dāng)內(nèi)存池第一塊內(nèi)存塊和最后一塊內(nèi)存塊均空閑時(shí)而發(fā)生的內(nèi)存合并(見1.2.2內(nèi)存釋放)。

    1.2 系統(tǒng)函數(shù)功能

    本節(jié)主要介紹了內(nèi)存池創(chuàng)建、內(nèi)存分配、內(nèi)存釋放等接口函數(shù)的功能和實(shí)現(xiàn)細(xì)節(jié)。

    1.2.1內(nèi)存池創(chuàng)建

    NU_Create_Memory_Pool函數(shù)提供內(nèi)存創(chuàng)建功能。內(nèi)存池的內(nèi)存由參數(shù)start_address、pool_size決定。該塊內(nèi)存應(yīng)事先從系統(tǒng)內(nèi)存池(Application_Initialize的mem_pool參數(shù))中分配。內(nèi)存池的創(chuàng)建會(huì)建立一個(gè)屬性由傳入?yún)?shù)決定的DM_PCB,并將其加入到“內(nèi)存控制塊鏈表”中。內(nèi)存池創(chuàng)建后,其內(nèi)存的初始布局為:一個(gè)空閑內(nèi)存塊和一個(gè)Trailer。

    1.2.2內(nèi)存分配

    內(nèi)存分配采用first-fit策略(首次適配策略)。第一個(gè)滿足需求的可用內(nèi)存塊被分配。如果沒有可用內(nèi)存滿足內(nèi)存分配請求,任務(wù)可能被掛起。系統(tǒng)提供兩種內(nèi)存分配接口:

    圖5 內(nèi)存分割

    ① NU_Allocate_Memory,此方式分配的內(nèi)存首地址不要求對齊。

    ② NU_Allocate_Aligned_Memory,此方式分配的內(nèi)存首地址要求分配的內(nèi)存首地址按參數(shù)指定的值對齊。

    內(nèi)存分配時(shí),可能出現(xiàn)下列內(nèi)存分割情況:(注:下文的“最小分配空間”記為min_alloc,大小為16)

    ① 尾部分割(rear split):當(dāng)內(nèi)存分配后尾部剩余內(nèi)存-DM_OVERHEAD≥min_alloc時(shí),會(huì)發(fā)生尾部分割,將尾部所剩內(nèi)存新建一個(gè)空閑塊。

    圖3中,大小為100字節(jié)的空閑塊中分配出去68字節(jié)后,剩余32字節(jié)。32-DM_OVERHEADE(16)=16,等于“最小分配空間”,于是進(jìn)行尾部分割。

    圖3 尾部分割

    ② 頭部分割(front split):對于對齊方式分配內(nèi)存,如果頭部用于對齊的字節(jié)數(shù)(記為:split_size)大于0,則會(huì)發(fā)生頭部分割。split_size的含義如圖4所示。

    圖4 split_size含義

    根據(jù)split_size和min_alloc的關(guān)系,又可分為兩種情況:

    (1) split_size≥min_alloc + DM_OVERHEAD

    此時(shí)預(yù)期在頭部分割出一個(gè)大小為split_size的空閑塊(包含內(nèi)存頭)。例如:對齊方式請求分配大小(size)為96、對齊字節(jié)數(shù)(align)為48的內(nèi)存。內(nèi)存池的#1空閑內(nèi)存首次滿足分配請求,該內(nèi)存塊的起始地址(start_addr)為N×48,可用內(nèi)存大小為128。則會(huì)按圖5所示發(fā)生頭部分割,且內(nèi)存分配起始地址(ptr)為N×48+48。

    (2) split_size < min_alloc + DM_OVERHEAD

    此種情況下,會(huì)在min_alloc+ DM_OVERHEAD的基礎(chǔ)上再次對齊,計(jì)算出新的split_size,然后再進(jìn)行頭部分割。

    1.2.3內(nèi)存池內(nèi)存釋放

    NU_Deallocate_Memory提供內(nèi)存釋放功能。內(nèi)存釋放時(shí),將判斷與被釋放內(nèi)存塊(記為dealloc_block)物理位置相鄰的內(nèi)存塊是否空閑,如果空閑,則將該內(nèi)存塊與其進(jìn)行合并。另外,內(nèi)存釋放后會(huì)檢查該內(nèi)存池的阻塞鏈表,如果某些任務(wù)的內(nèi)存請求此時(shí)可被滿足,則將它們從阻塞鏈表中刪除,并喚醒這些任務(wù)。圖6為當(dāng)與dealloc_block物理位置緊鄰的上一塊內(nèi)存和下一塊內(nèi)存均空閑時(shí),發(fā)生的內(nèi)存合并。

    圖6 內(nèi)存合并

    1.2.4其它

    動(dòng)態(tài)內(nèi)存管理模塊還提供其它接口函數(shù):

    NU_Create_Memory_Pool: 創(chuàng)建內(nèi)存池。

    NU_Add_Memory: 向內(nèi)存池中增加內(nèi)存。

    NU_Reallocate_Aligned_Memory:重新分配內(nèi)存。

    NU_Delete_Memory_Pool:刪除內(nèi)存池。

    因篇幅所限,這些功能不做詳細(xì)介紹。

    2 動(dòng)態(tài)內(nèi)存管理模塊測試

    2.1 測試思路

    進(jìn)行內(nèi)存池創(chuàng)建、內(nèi)存分配、內(nèi)存釋放、內(nèi)存池刪除等操作后,DM_PCB、內(nèi)存池內(nèi)存塊的布局以及任務(wù)狀態(tài)均可能發(fā)生變化,檢查這些變化是否正確。

    DM_PCB的變化主要指的是:可用內(nèi)存大小(dm_availble)和空閑塊鏈表(dm_memory_list)首指針的變化。

    內(nèi)存池內(nèi)存塊的布局可通過“全部內(nèi)存塊鏈表”和“空閑控制塊鏈表”(見1.1.3)來表達(dá)。

    2.2 用例設(shè)計(jì)

    NU_Allocate_Aligned_Memory和NU_Deallocate_Memory兩個(gè)API函數(shù)最重要、使用最頻繁,由于篇幅所限,只針對這兩個(gè)函數(shù)介紹其測試用例設(shè)計(jì)。

    (三)2012年至今,中國特色社會(huì)主義進(jìn)入了新時(shí)代,中國共產(chǎn)黨以實(shí)現(xiàn)中華民族偉大復(fù)興為引領(lǐng),在知識(shí)分子中深入開展“弘揚(yáng)愛國奮斗精神、建功立業(yè)新時(shí)代”活動(dòng),加強(qiáng)政治吸納,以最大限度凝聚共識(shí)

    2.2.1NU_Allocate_Aligned_Memory用例設(shè)計(jì)

    用例劃分為以下幾類:

    ① 空閑內(nèi)存塊鏈表中,首次滿足內(nèi)存請求的內(nèi)存塊在鏈表中的位置:第一塊、中間某塊、最后一塊。

    ② 各種分割情況。

    a. 尾部分割。

    b. 頭部分割。又分為split_size≥min_alloc + DM_OVERHEAD的情況和split_size < min_alloc+DM_OVERHEAD的情況。

    c. 頭部和尾部均需分割。

    d. 頭部和尾部均不需分割。

    ③ 任務(wù)的阻塞與喚醒。

    a. 阻塞原因:內(nèi)存池中不存在可以滿足內(nèi)存分配請求的空閑內(nèi)存塊。

    b. 喚醒原因:釋放內(nèi)存、刪除內(nèi)存池、超時(shí)、內(nèi)存池增加內(nèi)存。

    c. 喚醒順序:先進(jìn)先出、優(yōu)先級。

    ④ 各種異常輸入。

    2.2.2NU_Deallocate_Memory用例設(shè)計(jì)

    ① 各種合并情況(下文中的被釋放的內(nèi)存塊記為dealloc_block; 與其物理位置相鄰的前一個(gè)內(nèi)存塊記為prev_block; 與其物理位置相鄰的后一個(gè)內(nèi)存塊記為next_block):

    a. prev_block:不空閑,next_block:空閑。

    b. prev_block:空閑,next_block:空閑。

    c. prev_block:空閑,next_block:不空閑。

    d. prev_block與next_block均不空閑。

    e. dealloc_block:(除trailer外)最后一個(gè)內(nèi)存塊; 第一個(gè)內(nèi)存塊:空閑。

    ② 任務(wù)的阻塞與喚醒。

    a. 內(nèi)存釋放后,可滿足阻塞鏈表中某些任務(wù)的內(nèi)存請求。

    b. 內(nèi)存釋放后,仍無法滿足阻塞鏈表中任何一個(gè)任務(wù)的內(nèi)存請求。

    ③ 各種異常輸入。

    3 Nucleus PLUS動(dòng)態(tài)內(nèi)存管理機(jī)制評價(jià)及改進(jìn)措施

    從內(nèi)存碎片問題和內(nèi)存越界風(fēng)險(xiǎn)兩方面來評價(jià)該動(dòng)態(tài)內(nèi)存管理機(jī)制,針對內(nèi)存越界,提出了改進(jìn)和檢測辦法。

    3.1 內(nèi)存碎片問題

    內(nèi)存碎片是指內(nèi)存池中有空閑內(nèi)存塊,當(dāng)所有的空閑內(nèi)存塊均小于內(nèi)存請求大小時(shí),稱之為內(nèi)存碎片[3]。Nucleus PLUS提供了如下措施來應(yīng)對內(nèi)存碎片問題:① 內(nèi)存分割時(shí)使用了“最小分配內(nèi)存”。② 內(nèi)存釋放時(shí),與物理位置相鄰的空閑塊進(jìn)行合并。但由于其所采用的first-fit算法的固有缺陷,隨著內(nèi)存池內(nèi)存的不斷分配與釋放,內(nèi)存池支離破碎,仍可能存在內(nèi)存碎片問題。

    3.2 內(nèi)存越界風(fēng)險(xiǎn)

    內(nèi)存塊的管理信息直接放在內(nèi)存池的內(nèi)存中,不需要額外的內(nèi)存用作管理,且內(nèi)存的合并操作非常高效[4]。但這也正是其缺點(diǎn)所在:內(nèi)存池中內(nèi)存塊的管理信息(DM_HEADER)和用戶數(shù)據(jù)連續(xù)存放在一起。如果用戶數(shù)據(jù)寫越界,DM_HEADER的信息可能被破壞,即該內(nèi)存池的內(nèi)存塊的鏈接信息或內(nèi)存塊的空閑標(biāo)志被破壞,從而導(dǎo)致內(nèi)存池模塊功能全面失效。

    3.3 改進(jìn)措施

    針對內(nèi)存寫越界可能導(dǎo)致的系統(tǒng)崩潰,建議在該動(dòng)態(tài)內(nèi)存管理模塊增加內(nèi)存越界檢查機(jī)制。具體方式:在內(nèi)存頭增加一塊“越界保護(hù)內(nèi)存”[5],用于防止內(nèi)存的寫越界并提供寫越界檢測。內(nèi)存塊分配時(shí),向“越界保護(hù)內(nèi)存”填充特殊字符。內(nèi)存塊釋放時(shí),判斷“越界保護(hù)內(nèi)存”的特殊字符是否被破壞,從而判斷是否發(fā)生內(nèi)存寫越界。“越界保護(hù)內(nèi)存”會(huì)帶來額外的內(nèi)存開銷,并且只有在內(nèi)存釋放時(shí)才能判斷出來。下節(jié)介紹不改動(dòng)系統(tǒng)代碼的情況下,從應(yīng)用/測試角度可實(shí)施的內(nèi)存越界檢測方法。

    3.4 內(nèi)存越界檢測方法

    Nucleus動(dòng)態(tài)內(nèi)存模塊并沒有提供內(nèi)存池越界檢查手段。但是動(dòng)態(tài)內(nèi)存相關(guān)數(shù)據(jù)結(jié)構(gòu)的一些信息是可以相互驗(yàn)證的;內(nèi)存寫越界發(fā)生時(shí),內(nèi)存頭信息被破壞進(jìn)而內(nèi)存塊鏈表被破壞?;谝陨蟽牲c(diǎn),如果信息不能相互驗(yàn)證或者內(nèi)存塊鏈表的雙向循環(huán)特征被破壞,則內(nèi)存寫越界發(fā)生。提出以下三種檢測方法:

    ① 從start_address_list開始遍歷,遍歷全部內(nèi)存塊鏈表,應(yīng)能再次遍歷到start__address_list節(jié)點(diǎn)。如果在N次(可配置)循環(huán)中,或在一段時(shí)間內(nèi)(可配置)沒有再次遍歷到start_address_list節(jié)點(diǎn),則有可能內(nèi)存池訪問越界發(fā)生。

    ② 遍歷全部內(nèi)存塊鏈表。如果內(nèi)存塊A的下一個(gè)內(nèi)存塊(記為內(nèi)存塊B)的dm_previous_memory不為內(nèi)存A,則可能內(nèi)存池訪問越界發(fā)生。

    ③ 內(nèi)存池控制塊的可用內(nèi)存(DM_PCB的dm_available)與所有空閑塊的內(nèi)存大小之和,應(yīng)該相同。如果不

    同,則可能內(nèi)存池訪問越界發(fā)生。

    結(jié) 語

    [1] 黃斌.嵌入式操作系統(tǒng)的內(nèi)核剖析及基于ARM的移植[D].武漢:武漢理工大學(xué),2004.

    [2] Mentor Graphics Corporation.Nucleus Kernel Guide,2016.

    [3] 李志軍.面向嵌入式實(shí)時(shí)系統(tǒng)的動(dòng)態(tài)內(nèi)存管理方法研究[D].重慶:重慶大學(xué),2007.

    [4] 李云.專業(yè)嵌入式軟件開發(fā)[M].北京:電子工業(yè)出版社,2012.

    [5] 顧勝元,楊丹,黃海倫.嵌入式實(shí)時(shí)動(dòng)態(tài)內(nèi)存管理機(jī)制[J].計(jì)算機(jī)工程,2009,35(20):264-266.

    姬希娜(工程師),主要從事繼電保護(hù)及自動(dòng)化產(chǎn)品的測試技術(shù)研究。

    猜你喜歡
    鏈表越界空閑
    恩賜
    詩選刊(2023年7期)2023-07-21 07:03:38
    越界·互換·融合——中國化爵士樂的生成路線與認(rèn)同政治
    “鳥”字謎
    小讀者之友(2019年9期)2019-09-10 07:22:44
    基于二進(jìn)制鏈表的粗糙集屬性約簡
    跟麥咭學(xué)編程
    基于鏈表多分支路徑樹的云存儲(chǔ)數(shù)據(jù)完整性驗(yàn)證機(jī)制
    彪悍的“寵”生,不需要解釋
    陣列方向圖綜合中PSO算法粒子越界處理研究
    WLAN和LTE交通規(guī)則
    CHIP新電腦(2016年3期)2016-03-10 14:09:48
    沒有炊煙的城市(選章)
    詩歌月刊(2015年11期)2015-12-23 23:17:12
    国产高清videossex| 精品久久久精品久久久| 青春草亚洲视频在线观看| 国产在视频线精品| 精品国内亚洲2022精品成人 | 一区二区三区乱码不卡18| 国产在线视频一区二区| 亚洲国产看品久久| 无限看片的www在线观看| 成人免费观看视频高清| 成人手机av| 成在线人永久免费视频| 国产在线一区二区三区精| 精品一区在线观看国产| 好男人电影高清在线观看| 国产欧美亚洲国产| 91av网站免费观看| 国产有黄有色有爽视频| 男人操女人黄网站| 亚洲一区中文字幕在线| 亚洲精品一区蜜桃| 午夜福利一区二区在线看| 一区二区三区精品91| 麻豆国产av国片精品| 丝袜脚勾引网站| 狂野欧美激情性bbbbbb| 午夜免费成人在线视频| 欧美激情 高清一区二区三区| 国产欧美日韩精品亚洲av| 女人久久www免费人成看片| 国产av精品麻豆| 80岁老熟妇乱子伦牲交| 亚洲 欧美一区二区三区| 日韩欧美一区二区三区在线观看 | 男人操女人黄网站| 欧美 日韩 精品 国产| 18禁黄网站禁片午夜丰满| 18禁观看日本| 久久久精品国产亚洲av高清涩受| 热re99久久精品国产66热6| 黑丝袜美女国产一区| 国产高清国产精品国产三级| 一区二区日韩欧美中文字幕| 亚洲第一青青草原| 精品一区二区三区av网在线观看 | 国产亚洲欧美在线一区二区| 精品国产一区二区三区久久久樱花| 国产成人精品久久二区二区91| 国产真人三级小视频在线观看| 18在线观看网站| 色老头精品视频在线观看| 亚洲精品美女久久久久99蜜臀| 免费观看人在逋| 制服人妻中文乱码| 丝袜喷水一区| 国产片内射在线| 欧美人与性动交α欧美软件| 日韩电影二区| 亚洲精品国产色婷婷电影| 少妇裸体淫交视频免费看高清 | 人人妻人人添人人爽欧美一区卜| 99国产精品免费福利视频| 搡老熟女国产l中国老女人| 狠狠狠狠99中文字幕| h视频一区二区三区| 精品人妻熟女毛片av久久网站| 午夜福利免费观看在线| 国产免费福利视频在线观看| 亚洲熟女精品中文字幕| 欧美乱码精品一区二区三区| 国产极品粉嫩免费观看在线| 精品久久蜜臀av无| 午夜影院在线不卡| 操美女的视频在线观看| 精品福利永久在线观看| bbb黄色大片| 黄片播放在线免费| 欧美亚洲日本最大视频资源| 成年人免费黄色播放视频| 亚洲精品久久久久久婷婷小说| 美女脱内裤让男人舔精品视频| 啦啦啦在线免费观看视频4| 国产成人精品久久二区二区免费| 99国产精品一区二区蜜桃av | 69av精品久久久久久 | 日日摸夜夜添夜夜添小说| 色老头精品视频在线观看| 在线观看一区二区三区激情| 欧美日韩亚洲综合一区二区三区_| 一区二区av电影网| 午夜日韩欧美国产| 97在线人人人人妻| 亚洲国产日韩一区二区| 免费看十八禁软件| 9色porny在线观看| 婷婷丁香在线五月| 国产av又大| 亚洲av日韩精品久久久久久密| 国产亚洲av片在线观看秒播厂| 一边摸一边抽搐一进一出视频| 国产精品 欧美亚洲| 黄色片一级片一级黄色片| 性高湖久久久久久久久免费观看| 少妇精品久久久久久久| 在线观看免费高清a一片| 又黄又粗又硬又大视频| 国产精品一区二区精品视频观看| 欧美亚洲日本最大视频资源| 水蜜桃什么品种好| 性色av一级| 精品亚洲乱码少妇综合久久| kizo精华| 精品国产一区二区三区久久久樱花| 黄色视频,在线免费观看| 国产av精品麻豆| 18禁黄网站禁片午夜丰满| 中文字幕最新亚洲高清| 9191精品国产免费久久| 九色亚洲精品在线播放| 欧美日韩亚洲高清精品| 午夜影院在线不卡| 青春草视频在线免费观看| 国产欧美日韩一区二区三区在线| 日本五十路高清| 80岁老熟妇乱子伦牲交| www.av在线官网国产| 午夜福利免费观看在线| 69av精品久久久久久 | 国产又色又爽无遮挡免| 不卡一级毛片| 天天躁夜夜躁狠狠躁躁| 国产亚洲精品第一综合不卡| 80岁老熟妇乱子伦牲交| 中文字幕人妻丝袜一区二区| 99国产综合亚洲精品| 久久久久国内视频| 麻豆国产av国片精品| 国产成人欧美在线观看 | 国产欧美日韩一区二区精品| 欧美亚洲 丝袜 人妻 在线| 最新的欧美精品一区二区| 精品人妻在线不人妻| a级毛片黄视频| 菩萨蛮人人尽说江南好唐韦庄| 女性生殖器流出的白浆| 考比视频在线观看| videos熟女内射| 国产亚洲av高清不卡| 看免费av毛片| 精品欧美一区二区三区在线| 久久人妻熟女aⅴ| 午夜免费观看性视频| 精品少妇久久久久久888优播| 亚洲avbb在线观看| 91成年电影在线观看| 亚洲第一av免费看| 秋霞在线观看毛片| 韩国高清视频一区二区三区| 99九九在线精品视频| 夜夜夜夜夜久久久久| 亚洲国产欧美一区二区综合| 久久精品国产亚洲av香蕉五月 | 久久精品亚洲av国产电影网| 国产精品免费大片| 亚洲精品国产av成人精品| 国产真人三级小视频在线观看| 中亚洲国语对白在线视频| 精品少妇久久久久久888优播| 99国产极品粉嫩在线观看| 纵有疾风起免费观看全集完整版| 色视频在线一区二区三区| 亚洲精品一区蜜桃| 大香蕉久久成人网| 免费在线观看视频国产中文字幕亚洲 | 在线观看人妻少妇| a级毛片在线看网站| 欧美人与性动交α欧美精品济南到| 女人高潮潮喷娇喘18禁视频| 精品视频人人做人人爽| 久久人人97超碰香蕉20202| 欧美黄色片欧美黄色片| 国产成人影院久久av| 美女扒开内裤让男人捅视频| 日本av手机在线免费观看| 久久人人爽人人片av| 欧美激情极品国产一区二区三区| svipshipincom国产片| 12—13女人毛片做爰片一| 大陆偷拍与自拍| 午夜成年电影在线免费观看| 亚洲伊人色综图| cao死你这个sao货| 99久久99久久久精品蜜桃| 午夜福利视频在线观看免费| 天天添夜夜摸| 一级,二级,三级黄色视频| 午夜福利乱码中文字幕| 99精品欧美一区二区三区四区| 国内毛片毛片毛片毛片毛片| 亚洲一卡2卡3卡4卡5卡精品中文| 人妻久久中文字幕网| 亚洲色图综合在线观看| 亚洲专区字幕在线| 热99国产精品久久久久久7| 亚洲免费av在线视频| 久久综合国产亚洲精品| 高潮久久久久久久久久久不卡| 精品少妇内射三级| 日韩一区二区三区影片| 另类亚洲欧美激情| 久久精品成人免费网站| 女警被强在线播放| 极品人妻少妇av视频| 欧美黑人欧美精品刺激| 丝袜人妻中文字幕| 视频区图区小说| 考比视频在线观看| 国产精品久久久人人做人人爽| 亚洲精品在线美女| 亚洲国产毛片av蜜桃av| 免费观看av网站的网址| 精品久久蜜臀av无| 真人做人爱边吃奶动态| 色老头精品视频在线观看| 成人av一区二区三区在线看 | 亚洲欧美精品自产自拍| 在线看a的网站| 久久精品成人免费网站| 高清av免费在线| 一本综合久久免费| 精品一区二区三卡| 精品国产乱码久久久久久男人| 亚洲天堂av无毛| 久久午夜综合久久蜜桃| 美女视频免费永久观看网站| 欧美黑人欧美精品刺激| 国产国语露脸激情在线看| 少妇猛男粗大的猛烈进出视频| 美女视频免费永久观看网站| 黑丝袜美女国产一区| 国产麻豆69| netflix在线观看网站| 国产深夜福利视频在线观看| 国产免费福利视频在线观看| 搡老乐熟女国产| 黑人巨大精品欧美一区二区mp4| 新久久久久国产一级毛片| 亚洲国产日韩一区二区| 欧美精品一区二区大全| 一区二区三区乱码不卡18| 亚洲精品在线美女| 亚洲av美国av| 欧美亚洲 丝袜 人妻 在线| 人妻久久中文字幕网| 亚洲自偷自拍图片 自拍| 国产深夜福利视频在线观看| 亚洲精品粉嫩美女一区| 国产av又大| 黄片播放在线免费| 久久国产精品影院| 午夜免费观看性视频| 狠狠狠狠99中文字幕| 国产高清国产精品国产三级| 人人妻,人人澡人人爽秒播| 一级片免费观看大全| 亚洲精品av麻豆狂野| 久久国产精品男人的天堂亚洲| 国产欧美日韩一区二区精品| 岛国在线观看网站| 国产精品一区二区在线观看99| 多毛熟女@视频| 男人舔女人的私密视频| 欧美亚洲 丝袜 人妻 在线| 亚洲中文日韩欧美视频| 亚洲成av片中文字幕在线观看| 国产成人免费观看mmmm| 亚洲国产成人一精品久久久| 汤姆久久久久久久影院中文字幕| 老司机影院成人| 亚洲第一青青草原| 久久久久视频综合| 热re99久久精品国产66热6| 国产成人精品久久二区二区免费| 精品久久久久久久毛片微露脸 | 久久久久国内视频| 丁香六月欧美| 悠悠久久av| 久久久国产精品麻豆| av片东京热男人的天堂| 老司机影院成人| 91麻豆精品激情在线观看国产 | 亚洲中文av在线| 18禁黄网站禁片午夜丰满| 精品第一国产精品| 动漫黄色视频在线观看| 99国产精品免费福利视频| 久久精品久久久久久噜噜老黄| 精品卡一卡二卡四卡免费| 日本91视频免费播放| 母亲3免费完整高清在线观看| 欧美少妇被猛烈插入视频| 欧美日韩国产mv在线观看视频| 丰满人妻熟妇乱又伦精品不卡| 97精品久久久久久久久久精品| 精品乱码久久久久久99久播| 最新的欧美精品一区二区| 久久久久久久久免费视频了| 成人国产一区最新在线观看| 亚洲九九香蕉| 亚洲国产中文字幕在线视频| 热re99久久精品国产66热6| 久久久久久久久久久久大奶| 久久久久网色| 欧美人与性动交α欧美精品济南到| 亚洲中文日韩欧美视频| 搡老岳熟女国产| 制服诱惑二区| 亚洲av国产av综合av卡| 91大片在线观看| 国产亚洲精品第一综合不卡| 亚洲 欧美一区二区三区| 午夜福利一区二区在线看| 精品少妇黑人巨大在线播放| 久久人妻福利社区极品人妻图片| √禁漫天堂资源中文www| 黄色 视频免费看| 肉色欧美久久久久久久蜜桃| 国产麻豆69| 两性午夜刺激爽爽歪歪视频在线观看 | 精品免费久久久久久久清纯 | 欧美激情极品国产一区二区三区| e午夜精品久久久久久久| 精品福利观看| 欧美日韩中文字幕国产精品一区二区三区 | 精品欧美一区二区三区在线| 国产精品熟女久久久久浪| 亚洲欧美色中文字幕在线| 最近最新中文字幕大全免费视频| 午夜激情久久久久久久| 精品福利观看| 久久久欧美国产精品| 18在线观看网站| 91九色精品人成在线观看| 久久久欧美国产精品| 人人妻人人澡人人看| 人妻人人澡人人爽人人| 国产精品香港三级国产av潘金莲| 汤姆久久久久久久影院中文字幕| 国产1区2区3区精品| av在线老鸭窝| 色精品久久人妻99蜜桃| 脱女人内裤的视频| 国产在线观看jvid| 精品久久蜜臀av无| 国产精品久久久久久精品电影小说| 亚洲成av片中文字幕在线观看| 各种免费的搞黄视频| 国产亚洲一区二区精品| 午夜福利在线免费观看网站| 欧美大码av| 国产亚洲精品第一综合不卡| 国产一卡二卡三卡精品| 国产亚洲一区二区精品| 亚洲国产精品一区二区三区在线| 精品第一国产精品| 久久久久久人人人人人| www.999成人在线观看| 老司机午夜十八禁免费视频| 欧美精品亚洲一区二区| 中文字幕人妻丝袜一区二区| 国产欧美日韩综合在线一区二区| 五月天丁香电影| 两个人看的免费小视频| 欧美日韩av久久| 成年美女黄网站色视频大全免费| 色老头精品视频在线观看| 亚洲av日韩在线播放| 丁香六月欧美| 另类亚洲欧美激情| 中文欧美无线码| 精品久久久精品久久久| 久久中文看片网| bbb黄色大片| 久久久久国产精品人妻一区二区| 亚洲精品粉嫩美女一区| 中文精品一卡2卡3卡4更新| 久久久久久久国产电影| 久久天躁狠狠躁夜夜2o2o| 脱女人内裤的视频| 日韩制服丝袜自拍偷拍| 18在线观看网站| 精品久久久精品久久久| 成年动漫av网址| 亚洲熟女精品中文字幕| 精品久久久精品久久久| 久久毛片免费看一区二区三区| 久久这里只有精品19| 精品福利观看| 国产精品自产拍在线观看55亚洲 | 亚洲男人天堂网一区| 成人三级做爰电影| www.自偷自拍.com| 黄片大片在线免费观看| 亚洲自偷自拍图片 自拍| 亚洲第一青青草原| 亚洲av美国av| 女警被强在线播放| 午夜两性在线视频| 精品福利永久在线观看| netflix在线观看网站| 巨乳人妻的诱惑在线观看| 日本av免费视频播放| 精品福利观看| 日韩视频一区二区在线观看| 久久久国产一区二区| 一二三四在线观看免费中文在| 亚洲精品美女久久久久99蜜臀| 久久久久精品国产欧美久久久 | 亚洲av欧美aⅴ国产| 国产免费视频播放在线视频| 久久久欧美国产精品| 欧美黄色淫秽网站| 性色av一级| 51午夜福利影视在线观看| 精品一区二区三区av网在线观看 | 韩国高清视频一区二区三区| 亚洲黑人精品在线| 啦啦啦视频在线资源免费观看| 十八禁网站免费在线| 免费av中文字幕在线| 亚洲精品一区蜜桃| 中文欧美无线码| 日韩 亚洲 欧美在线| 叶爱在线成人免费视频播放| 亚洲 欧美一区二区三区| 免费少妇av软件| 亚洲天堂av无毛| 亚洲欧美日韩另类电影网站| 亚洲九九香蕉| 窝窝影院91人妻| 黄片小视频在线播放| 人人澡人人妻人| 人妻一区二区av| 久久ye,这里只有精品| 亚洲第一青青草原| √禁漫天堂资源中文www| 韩国精品一区二区三区| 亚洲国产精品一区三区| 一边摸一边做爽爽视频免费| 99香蕉大伊视频| 国产在线一区二区三区精| 女人精品久久久久毛片| 精品人妻在线不人妻| 久久ye,这里只有精品| 高清视频免费观看一区二区| 亚洲国产欧美网| 国产免费福利视频在线观看| 国产精品国产三级国产专区5o| tocl精华| 精品人妻一区二区三区麻豆| 高清av免费在线| 在线观看免费视频网站a站| 国产日韩一区二区三区精品不卡| 日韩熟女老妇一区二区性免费视频| 美国免费a级毛片| av网站免费在线观看视频| 亚洲三区欧美一区| 日本wwww免费看| 狠狠精品人妻久久久久久综合| av福利片在线| 国产精品久久久av美女十八| 欧美精品av麻豆av| 女人久久www免费人成看片| 精品少妇内射三级| 精品福利永久在线观看| 老汉色∧v一级毛片| 亚洲国产av影院在线观看| 午夜影院在线不卡| 国产一区二区 视频在线| 日韩熟女老妇一区二区性免费视频| 日本av手机在线免费观看| 19禁男女啪啪无遮挡网站| 夜夜骑夜夜射夜夜干| 美女脱内裤让男人舔精品视频| 国产在视频线精品| 午夜福利在线观看吧| 欧美 日韩 精品 国产| 国产97色在线日韩免费| 国产欧美日韩一区二区三 | 男女午夜视频在线观看| 法律面前人人平等表现在哪些方面 | 中文字幕人妻熟女乱码| 女人高潮潮喷娇喘18禁视频| av一本久久久久| 亚洲精品国产精品久久久不卡| 精品久久久精品久久久| 这个男人来自地球电影免费观看| 18禁观看日本| 久久久久视频综合| 美女高潮喷水抽搐中文字幕| netflix在线观看网站| 老鸭窝网址在线观看| 国产无遮挡羞羞视频在线观看| 久久久精品国产亚洲av高清涩受| h视频一区二区三区| 免费在线观看日本一区| 亚洲欧美一区二区三区黑人| 超碰97精品在线观看| 久久久久久亚洲精品国产蜜桃av| 日韩欧美一区二区三区在线观看 | 免费观看a级毛片全部| 十八禁高潮呻吟视频| 欧美午夜高清在线| 真人做人爱边吃奶动态| 美女大奶头黄色视频| 婷婷色av中文字幕| 极品人妻少妇av视频| 午夜福利一区二区在线看| 日日摸夜夜添夜夜添小说| 免费观看av网站的网址| 亚洲精品在线美女| e午夜精品久久久久久久| 国产欧美日韩一区二区三 | 一本一本久久a久久精品综合妖精| 99久久99久久久精品蜜桃| 亚洲精华国产精华精| 亚洲国产成人一精品久久久| 国产亚洲欧美精品永久| 老汉色av国产亚洲站长工具| 超碰成人久久| 亚洲天堂av无毛| 国产成人系列免费观看| 欧美大码av| 精品少妇黑人巨大在线播放| 免费日韩欧美在线观看| 亚洲人成电影观看| 精品人妻1区二区| 久久ye,这里只有精品| 午夜福利在线免费观看网站| 黑人巨大精品欧美一区二区mp4| 亚洲国产av新网站| kizo精华| 国产在视频线精品| 成年人黄色毛片网站| 丁香六月天网| 淫妇啪啪啪对白视频 | 精品国产乱子伦一区二区三区 | 久久国产精品影院| 日本vs欧美在线观看视频| 在线观看一区二区三区激情| 国产激情久久老熟女| 在线永久观看黄色视频| 母亲3免费完整高清在线观看| 亚洲精品在线美女| 欧美激情高清一区二区三区| 精品久久久精品久久久| 少妇裸体淫交视频免费看高清 | 精品少妇黑人巨大在线播放| 精品国内亚洲2022精品成人 | 人妻久久中文字幕网| 捣出白浆h1v1| 男人爽女人下面视频在线观看| 久久精品久久久久久噜噜老黄| 日韩欧美一区视频在线观看| 美女福利国产在线| 1024视频免费在线观看| 日本五十路高清| 国产精品一区二区免费欧美 | 欧美精品亚洲一区二区| 极品人妻少妇av视频| 亚洲国产看品久久| √禁漫天堂资源中文www| 男女午夜视频在线观看| 捣出白浆h1v1| 50天的宝宝边吃奶边哭怎么回事| 久热这里只有精品99| 大片电影免费在线观看免费| 亚洲精品久久成人aⅴ小说| 国产精品 欧美亚洲| 国产免费av片在线观看野外av| 国产片内射在线| 欧美午夜高清在线| av天堂久久9| 亚洲国产日韩一区二区| 丝袜美足系列| 免费观看av网站的网址| a 毛片基地| 在线观看免费日韩欧美大片| 狠狠精品人妻久久久久久综合| 首页视频小说图片口味搜索| 亚洲精品久久成人aⅴ小说| 久久综合国产亚洲精品| 岛国毛片在线播放| 国产免费一区二区三区四区乱码| 最近最新中文字幕大全免费视频| 久久人人爽人人片av| 午夜精品久久久久久毛片777| 久久精品国产a三级三级三级| 欧美国产精品一级二级三级| 精品国产一区二区三区久久久樱花| 亚洲精品在线美女| 日本猛色少妇xxxxx猛交久久| 黑丝袜美女国产一区| 欧美日韩黄片免| 欧美日韩亚洲国产一区二区在线观看 | 成人国语在线视频| 99国产精品免费福利视频| 亚洲国产精品成人久久小说| 欧美日韩一级在线毛片| 一区二区日韩欧美中文字幕| 美国免费a级毛片| 最黄视频免费看| 少妇被粗大的猛进出69影院| 夜夜骑夜夜射夜夜干| 女警被强在线播放|