精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

從 MMU 看內(nèi)存管理

存儲(chǔ) 數(shù)據(jù)管理
在計(jì)算機(jī)早期的時(shí)候,計(jì)算機(jī)是無法將大于內(nèi)存大小的應(yīng)用裝入內(nèi)存的,因?yàn)橛?jì)算機(jī)讀寫應(yīng)用數(shù)據(jù)是直接通過總線來對(duì)內(nèi)存進(jìn)行直接操作,對(duì)于寫操作來說,計(jì)算機(jī)會(huì)直接將地址寫入內(nèi)存;對(duì)于讀操作來說,計(jì)算機(jī)會(huì)直接讀取內(nèi)存的數(shù)據(jù)。

本文轉(zhuǎn)載自微信公眾號(hào)「程序員cxuan」,作者cxuan。轉(zhuǎn)載本文請(qǐng)聯(lián)系程序員cxuan公眾號(hào)。

在計(jì)算機(jī)早期的時(shí)候,計(jì)算機(jī)是無法將大于內(nèi)存大小的應(yīng)用裝入內(nèi)存的,因?yàn)橛?jì)算機(jī)讀寫應(yīng)用數(shù)據(jù)是直接通過總線來對(duì)內(nèi)存進(jìn)行直接操作,對(duì)于寫操作來說,計(jì)算機(jī)會(huì)直接將地址寫入內(nèi)存;對(duì)于讀操作來說,計(jì)算機(jī)會(huì)直接讀取內(nèi)存的數(shù)據(jù)。

但是隨著軟件的不斷膨脹和移動(dòng)應(yīng)用的到來,一切慢慢變了。

我們想要手機(jī)既能夠運(yùn)行微信,同時(shí)又能夠運(yùn)行 QQ 音樂,還希望能夠聊微博、刷知乎以及看股票。如果我們的手機(jī)內(nèi)存只有 1G,那么顯然是無法滿足這些應(yīng)用的,因?yàn)槲⑿诺暮笈_(tái)程序都占用 1G 多內(nèi)存了。那么就會(huì)有人說,把內(nèi)存容量提高不就行了嗎?這句話看似沒錯(cuò),但是內(nèi)存的造價(jià)成本非常昂貴,而且內(nèi)存的容量是永遠(yuǎn)追不上應(yīng)用程序所占用的容量的,把所有應(yīng)用程序直接堆入內(nèi)存也只是飲鴆止渴,因?yàn)榧词故嵌嗪司€程持續(xù)不斷的進(jìn)行計(jì)算,也會(huì)存在性能瓶頸。

客戶都是難搞的,我們并不希望正在使用微信,而后臺(tái)卻運(yùn)行一些其他沒有必要的應(yīng)用,比如說旅游軟件、郵箱等。所以站在用戶的角度上來說,線程切換到這些應(yīng)用上是完全沒有必要的。

基于上述這些考量,工程師們認(rèn)為一直擴(kuò)大內(nèi)存容量并不能解決根本問題。

就像是軟件架構(gòu)一樣,盲目追求高性能并不一定可取,需要同時(shí)兼顧 CAP 的各個(gè)原則。

后來,提出了一種虛擬內(nèi)存(virtual memory)思想,虛擬內(nèi)存是操作系統(tǒng)的一種抽象,虛擬內(nèi)存的主要思想是:每個(gè)程序都有自己的地址空間,程序間的地址空間彼此不可見,我們的程序首先要先運(yùn)行在虛擬內(nèi)存中,虛擬內(nèi)存會(huì)分為多個(gè)塊,每個(gè)塊稱為一頁(yè)或者頁(yè)面(page),每一頁(yè)有連續(xù)的地址范圍,這些頁(yè)會(huì)被映射到物理內(nèi)存,當(dāng)程序引用到一部分在物理內(nèi)存的地址空間時(shí),會(huì)由硬件完成對(duì)應(yīng)的映射過程,當(dāng)程序引用到不在物理內(nèi)存的地址空間時(shí),由操作系統(tǒng)負(fù)責(zé)將缺失(不在內(nèi)存)的部分裝入物理內(nèi)存并重新執(zhí)行。

虛擬內(nèi)存系統(tǒng)是一種管理和分配程序虛擬內(nèi)存的程序,在使用虛擬內(nèi)存的情況下,虛擬地址不會(huì)直接映射到物理內(nèi)存中,而是會(huì)直接輸送到內(nèi)存管理單元(Memory Management Unit,MMU),由 MMU 將虛擬地址映射為物理內(nèi)存地址。執(zhí)行這個(gè)映射過程的技術(shù)就叫做分頁(yè)(paging)。

MMU 是一塊單獨(dú)的芯片,它可以獨(dú)立存在,不過現(xiàn)代 OS 都把它內(nèi)置在了 CPU 中。

但是,映射到物理內(nèi)存的哪個(gè)位置?映射的規(guī)則又是什么?

實(shí)際上,物理內(nèi)存的劃分其實(shí)和虛擬內(nèi)存是一樣的,在物理內(nèi)存中,也會(huì)被劃分為一個(gè)個(gè)的頁(yè)框(page frame),頁(yè)框是內(nèi)存所劃分的存儲(chǔ)單元,與虛擬內(nèi)存中的頁(yè)所不同的是,頁(yè)框是主存中的物理屬性,而頁(yè)面只是一種虛擬的抽象表示。頁(yè)面和頁(yè)框的存儲(chǔ)大小通常是一樣的,一般是 4KB。

通過 MMU 的幫助,可以有效地將虛擬地址映射到物理內(nèi)存地址,這也就是說,頁(yè)面可以和頁(yè)框進(jìn)行合理的映射。但是這并沒有解決虛擬地址空間比物理內(nèi)存空間大的這個(gè)問題。當(dāng) CPU 進(jìn)行數(shù)據(jù)寫入時(shí),MMU 會(huì)判斷數(shù)據(jù)寫入的頁(yè)面是否已經(jīng)映射到頁(yè)框中,如果沒有映射的話,CPU 會(huì)陷入(trap)到操作系統(tǒng),這個(gè)陷入的過程稱為缺頁(yè)中斷或者叫做缺頁(yè)錯(cuò)誤(page fault)。

之后,操作系統(tǒng)會(huì)找到一個(gè)空閑的頁(yè)框并將它的內(nèi)容寫入到頁(yè)框中(這個(gè)頁(yè)框其實(shí)是在磁盤中,因?yàn)椴僮飨到y(tǒng)不會(huì)一次性把所有的頁(yè)框都加載到內(nèi)存中,而是按需加入),然后修改頁(yè)框和頁(yè)面的映射關(guān)系,再重新啟動(dòng) trap 陷入的指令。

上面說到,MMU 會(huì)判斷數(shù)據(jù)寫入的頁(yè)面是否已經(jīng)映射到了頁(yè)框中,這個(gè)是如何判斷的呢?

實(shí)際上,MMU 中有一個(gè)叫做頁(yè)表(page table)的結(jié)構(gòu),這個(gè)頁(yè)表就記錄了頁(yè)面和頁(yè)框的映射關(guān)系,上面所聊到修改頁(yè)框和頁(yè)面的映射關(guān)系,實(shí)際上就是修改頁(yè)表中的一個(gè)在/不在位的數(shù)據(jù)項(xiàng),關(guān)于頁(yè)表的結(jié)構(gòu),我們后面回說。

下面來看一下頁(yè)面和頁(yè)框的映射關(guān)系圖。

根據(jù)頁(yè)面中的頁(yè)表索引可以找到對(duì)應(yīng)的頁(yè)表號(hào),根據(jù)頁(yè)表中的頁(yè)框索引可以找到頁(yè)框號(hào),這種映射關(guān)系就很類似計(jì)算機(jī)網(wǎng)絡(luò)中的路由表(記錄各個(gè)數(shù)據(jù)轉(zhuǎn)發(fā)路徑)。從數(shù)學(xué)的角度來講,可以把頁(yè)表看做是一個(gè)函數(shù),它的參數(shù)是頁(yè)表索引(通常也叫做虛擬頁(yè)號(hào)),結(jié)果是頁(yè)框號(hào),通過這個(gè)函數(shù)可以將虛擬地址中的虛擬頁(yè)面轉(zhuǎn)換成頁(yè)框號(hào),然后形成物理地址。

這里強(qiáng)調(diào)一點(diǎn):如果在/不在位是 0 的話,說明該頁(yè)面和頁(yè)框沒有存在映射關(guān)系,此時(shí)就會(huì)直接引起操作系統(tǒng)陷入,由操作系統(tǒng)找到對(duì)應(yīng)的頁(yè)框執(zhí)行寫入,寫入完成后修改頁(yè)面和頁(yè)框的映射關(guān)系,然后回到引起陷入的位置繼續(xù)執(zhí)行。

上面提到了頁(yè)表是記錄頁(yè)面和頁(yè)框映射關(guān)系的一個(gè)結(jié)構(gòu),下面我們就來聊一下頁(yè)表項(xiàng)的結(jié)構(gòu)。不同機(jī)器的頁(yè)表結(jié)構(gòu)是不一樣的,但是大多數(shù)頁(yè)表項(xiàng)都具有下面這個(gè)結(jié)構(gòu)。

對(duì)于頁(yè)表項(xiàng)這個(gè)結(jié)構(gòu)來說,最重要的就是頁(yè)框號(hào),頁(yè)框號(hào)相當(dāng)于是頁(yè)表的身份證,這就跟我們的身份證一樣,所以非常重要。

  • 在/不在位我們上面聊過了,這個(gè)位就是判斷頁(yè)面和頁(yè)框有沒有進(jìn)行映射的一項(xiàng)。
  • 保護(hù)位指出在這個(gè)頁(yè)面上允許什么樣的類型訪問,是讀還是寫,一般讀是 1,寫是 0 ,這是一位的形式,不過還有另外一種形式,是三位,分別對(duì)應(yīng)讀、寫、執(zhí)行。
  • 修改位 用于判斷這個(gè)頁(yè)面是否被修改過,在對(duì)頁(yè)面進(jìn)行寫入時(shí)會(huì)自動(dòng)設(shè)置修改位,如果一個(gè)頁(yè)面已經(jīng)被修改過,那么必須將它寫回磁盤,我們可以認(rèn)為這個(gè)頁(yè)面是一個(gè)臟頁(yè)。
  • 無論讀寫,都會(huì)設(shè)置訪問位,訪問位的意義用來讓操作系統(tǒng)淘汰頁(yè)面所用,沒有訪問過的頁(yè)面要比多次訪問的頁(yè)面更容易被淘汰,訪問位在頁(yè)面置換算法中非常有用。
  • 緩存位用于判斷是否禁用高速緩存,有的時(shí)候 CPU 需要讀取最新的用戶輸入,而不是從高速緩存中讀取已有的數(shù)據(jù)。

聊完頁(yè)表之后,我們來回顧一下頁(yè)面到頁(yè)框的映射過程(上面有寫,這里不再闡述了)

思考過后,你會(huì)發(fā)現(xiàn),頁(yè)面到頁(yè)框的映射過程比較繁瑣,又是檢索頁(yè)面、又是操作系統(tǒng)切換、又是內(nèi)存和磁盤的交互,想必這部分的性能容易出現(xiàn)問題,所以提升這部分的性能就成為了優(yōu)先級(jí)比較高的一個(gè)課題。

我們知道,這個(gè)映射過程主要是在 MMU 中完成的,所以能不能加快虛擬地址到物理地址的映射速度呢?,而且很多操作系統(tǒng)的虛擬地址空間往往很大,所以需要的頁(yè)表也會(huì)越來越大,那么如何處理日益劇增的頁(yè)表呢?

首先我們要聊一下的就是如何加快虛擬地址到物理地址的映射速度,加快映射速度有兩種方式,一種是使用硬件進(jìn)行加速,一種是使用軟件進(jìn)行加速。

經(jīng)過多年的研究表明,大多數(shù)程序會(huì)對(duì)少量的頁(yè)面進(jìn)行多次訪問,而不會(huì)對(duì)大量的頁(yè)面進(jìn)行多次訪問或者訪問次數(shù)大差不差,因此,只有極少數(shù)的頁(yè)表會(huì)被頻繁訪問,而大多數(shù)頁(yè)面卻照顧不到。由于這種局部性原理,使用硬件的方式是設(shè)置一個(gè)轉(zhuǎn)換檢測(cè)緩沖區(qū)(TLB),它能夠直接將虛擬地址映射成為物理地址,而不必再訪問頁(yè)表。

TLB 又叫做快表或者相聯(lián)存儲(chǔ)器。

TLB 可以放在 CPU 和 CPU 緩存(CPU cache)之間,用于緩存虛擬地址,TLB 可以放在 CPU 和 內(nèi)存之間,用于緩存物理地址,但是一般緩存虛擬地址比較常見,由此可見,TLB 相當(dāng)于是又多加了一個(gè)緩存層。

虛擬頁(yè)面在 TLB 中

當(dāng)一個(gè)數(shù)據(jù)的虛擬地址交由 MMU 進(jìn)行轉(zhuǎn)換時(shí),MMU 首先會(huì)將這個(gè)虛擬地址和 TLB 中緩存的虛擬地址進(jìn)行匹配,判斷虛擬地址所在的頁(yè)面是否被緩存,如果已經(jīng)緩存,就會(huì)訪問 TLB(這里有個(gè)前提就是判斷訪問位)將虛擬頁(yè)面對(duì)應(yīng)的頁(yè)框號(hào)取出,而不必再訪問頁(yè)表。

虛擬頁(yè)面不在 TLB 中

如果 MMU 沒有檢測(cè)到虛擬地址所在的頁(yè)面,就說明沒有查詢到匹配項(xiàng),就會(huì)走頁(yè)表訪問,通過頁(yè)表查詢到物理地址后,會(huì)從 TLB 中淘汰一個(gè)頁(yè)面,用新找到的頁(yè)面進(jìn)行替換。

雖然內(nèi)置一個(gè)硬件 TLB 能夠加快虛擬地址到物理地址的映射速度,不過現(xiàn)代 os 大多數(shù)都是使用軟件 TLB 來實(shí)現(xiàn)這個(gè)加速過程的,使用軟件 TLB 就意味著不再使用硬件,轉(zhuǎn)而擁抱操作系統(tǒng)。

這也就是說,當(dāng)發(fā)生 TLB 失效時(shí),不再是通過 MMU 到頁(yè)表中查詢,而是生成一個(gè) TLB 失效并交給操作系統(tǒng)來解決。失效會(huì)有兩種發(fā)生的可能性:當(dāng)要訪問的頁(yè)面在內(nèi)存中時(shí),這種失效叫做軟失效,軟失效比較好處理,找到該頁(yè)面然后直接更新 TLB 中對(duì)應(yīng)的項(xiàng)即可。當(dāng)要訪問的頁(yè)面不再內(nèi)存中時(shí),這種失效叫做硬失效,硬失效涉及磁盤訪問,頁(yè)面調(diào)入,硬失效的處理時(shí)間往往是軟失效的幾百萬倍。

上述都是理想情況下的失效,但實(shí)際情況下會(huì)存在既不是軟失效也不是硬失效的情況。當(dāng)程序訪問一個(gè)非法地址時(shí),根本不需要向 TLB 更新映射,此時(shí) os 會(huì)直接報(bào)告段錯(cuò)誤來終止程序,這種缺頁(yè)屬于程序錯(cuò)誤;而軟失效通常稱為次要缺頁(yè)錯(cuò)誤,硬失效稱為嚴(yán)重缺頁(yè)錯(cuò)誤。

解決完第一個(gè)問題之后,我們?cè)賮砜吹诙€(gè)問題,即如何處理日益劇增的頁(yè)表呢?

一般有兩種處理方式,使用多級(jí)頁(yè)表和倒排頁(yè)表。

第一種方案是使用多級(jí)頁(yè)表,下面是一個(gè)例子

32 位的虛擬地址被劃分為 10 位的 PT1 域,10 位的 PT2 域,還有 12 位的 Offset 域。因?yàn)槠屏渴?12 位,所以頁(yè)面大小是 4 KB,共有 2^20 次方個(gè)頁(yè)面。

引入多級(jí)頁(yè)表的原因是避免把全部頁(yè)表一直保存在內(nèi)存中。不需要的頁(yè)表就不應(yīng)該保留。

多級(jí)頁(yè)表是一種分頁(yè)方案,它由兩個(gè)或多個(gè)層次的分頁(yè)表組成,也稱為分層分頁(yè)。級(jí)別1(level 1)頁(yè)面表的條目是指向級(jí)別 2(level 2) 頁(yè)面表的指針,級(jí)別2頁(yè)面表的條目是指向級(jí)別 3(level 3) 頁(yè)面表的指針,依此類推。最后一級(jí)頁(yè)表存儲(chǔ)的是實(shí)際的信息。

下面是一個(gè)二級(jí)頁(yè)表的工作過程

在最左邊是頂級(jí)頁(yè)表,它有 1024 個(gè)表項(xiàng),對(duì)應(yīng)于 10 位的 PT1 域。當(dāng)一個(gè)虛擬地址被送到 MMU 時(shí),MMU 首先提取 PT1 域并把該值作為訪問頂級(jí)頁(yè)表的索引。因?yàn)檎麄€(gè) 4 GB (即 32 位)虛擬地址已經(jīng)按 4 KB 大小分塊,所以頂級(jí)頁(yè)表中的 1024 個(gè)表項(xiàng)的每一個(gè)都表示 4M 的塊地址范圍。

由索引頂級(jí)頁(yè)表得到的表項(xiàng)中含有二級(jí)頁(yè)表的地址或頁(yè)框號(hào)。頂級(jí)頁(yè)表的表項(xiàng) 0 指向程序正文的頁(yè)表,表項(xiàng) 1 指向含有數(shù)據(jù)的頁(yè)表,表項(xiàng) 1023 指向堆棧的頁(yè)表,其他的項(xiàng)(用陰影表示)表示沒有使用。現(xiàn)在把 PT2 域作為訪問選定的二級(jí)頁(yè)表的索引,以便找到虛擬頁(yè)面的對(duì)應(yīng)頁(yè)框號(hào)。

針對(duì)分頁(yè)層級(jí)結(jié)構(gòu)中不斷增加的替代方法是使用倒排頁(yè)表(inverted page tables)。采用這種解決方案的有 PowerPC、UltraSPARC 和 Itanium。在這種設(shè)計(jì)中,實(shí)際內(nèi)存中的每個(gè)頁(yè)框?qū)?yīng)一個(gè)表項(xiàng),而不是每個(gè)虛擬頁(yè)面對(duì)應(yīng)一個(gè)表項(xiàng)。

雖然倒排頁(yè)表節(jié)省了大量的空間,但是它也有自己的缺陷:那就是從虛擬地址到物理地址的轉(zhuǎn)換會(huì)變得很困難。當(dāng)進(jìn)程 n 訪問虛擬頁(yè)面 p 時(shí),硬件不能再通過把 p 當(dāng)作指向頁(yè)表的一個(gè)索引來查找物理頁(yè)。而是必須搜索整個(gè)倒排表來查找某個(gè)表項(xiàng)。另外,搜索必須對(duì)每一個(gè)內(nèi)存訪問操作都執(zhí)行一次,而不是在發(fā)生缺頁(yè)中斷時(shí)執(zhí)行。

解決這一問題的方式是使用 TLB。當(dāng)發(fā)生 TLB 失效時(shí),需要用軟件搜索整個(gè)倒排頁(yè)表。一個(gè)可行的方式是建立一個(gè)散列表,用虛擬地址來散列。當(dāng)前所有內(nèi)存中的具有相同散列值的虛擬頁(yè)面被鏈接在一起。如下圖所示

如果散列表中的槽數(shù)與機(jī)器中物理頁(yè)面數(shù)一樣多,那么散列表的沖突鏈的長(zhǎng)度將會(huì)是 1 個(gè)表項(xiàng)的長(zhǎng)度,這將會(huì)大大提高映射速度。一旦頁(yè)框被找到,新的(虛擬頁(yè)號(hào),物理頁(yè)框號(hào))就會(huì)被裝載到 TLB 中。

總結(jié)

這篇文章我從 MMU 這個(gè)知識(shí)點(diǎn)進(jìn)行切入,來為你展開了操作系統(tǒng)中的虛擬地址的概念,操作系統(tǒng)是如何處理日益增加的地址空間的,以及內(nèi)存管理面臨的挑戰(zhàn),如何優(yōu)化等。


責(zé)任編輯:武曉燕 來源: 程序員cxuan
相關(guān)推薦

2025-06-19 01:00:00

2024-10-28 11:25:21

豐巢快遞jemalloc

2025-01-13 00:30:17

2022-07-15 13:01:13

Kotlin編程語言Java

2025-09-03 01:45:00

2025-09-02 03:33:00

2019-10-10 16:20:23

spark內(nèi)存管理

2019-04-17 14:44:42

Spark內(nèi)存源碼

2010-12-21 14:13:25

敏捷開發(fā)Scrum

2021-03-07 17:17:07

Java內(nèi)存閉包

2011-08-03 11:00:29

IT運(yùn)維管理ITIL

2014-07-14 15:19:43

IT信息工程運(yùn)維

2022-01-12 07:06:42

DPU網(wǎng)卡GPU

2022-09-19 18:29:20

數(shù)據(jù)資產(chǎn)管理

2021-09-26 22:24:17

物聯(lián)網(wǎng)設(shè)備技術(shù)

2021-01-06 05:29:57

虛擬內(nèi)存文件

2017-05-10 16:34:56

今目標(biāo)

2021-05-10 08:05:13

Linux內(nèi)核頁(yè)表

2024-08-22 08:02:04

OracleSQL語句

2012-12-26 09:14:11

SDN信息數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

99精品人妻国产毛片| 熟妇高潮精品一区二区三区| 黄网站在线免费| 国产一区二区三区精品视频| 九九久久久久99精品| a级一a一级在线观看| 伊人久久综合一区二区| 国产精品三级av在线播放| **亚洲第一综合导航网站| 在线观看免费国产视频| 欧洲grand老妇人| 日韩免费一区二区三区在线播放| 国产精品裸体瑜伽视频| av网站在线免费播放| 国产成人综合视频| 日本高清视频一区| 久久精品一区二区三| 深夜福利久久| 精品国产3级a| 高清av免费看| 极品在线视频| 亚洲精品国产第一综合99久久 | 亚洲欧美国产精品va在线观看| 一级黄色香蕉视频| free性欧美| 国产精品久久久久影院| 好看的日韩精品视频在线| 一区二区三区www污污污网站| 99精品免费| 久久成人人人人精品欧| 熟女俱乐部一区二区| 成人三级av在线| 欧美丰满少妇xxxxx高潮对白| 国产日产欧美视频| 国产精品69xx| 亚洲精品成人a在线观看| 日本不卡一区| 天天综合天天综合| 国产99精品国产| 成人精品久久久| 中文字幕欧美在线观看| 免费日韩av片| 久久久久久久网站| 激情五月少妇a| 国产精品成久久久久| 国产亚洲激情在线| 免费一级做a爰片久久毛片潮| 果冻天美麻豆一区二区国产| 欧美一区二区三区在线电影| 国产美女18xxxx免费视频| 国产韩日精品| 色综合久久综合| 青青草原av在线播放| 人狥杂交一区欧美二区| 午夜激情综合网| 国产成a人亚洲精v品在线观看| av免费在线观看网址| 国产精品成人在线观看| 一区二区三区四区五区视频| a天堂中文在线88| 中文字幕乱码亚洲精品一区| 日本不卡一区| 日韩理伦片在线| 国产精品免费免费| 正在播放91九色| 麻豆tv免费在线观看| 亚洲婷婷在线视频| 日本丰满大乳奶| 亚洲精品一线| 性久久久久久久| av动漫在线观看| 无人区在线高清完整免费版 一区二| 日韩欧美综合在线视频| 日韩免费高清在线| 国产亚洲人成a在线v网站 | 国产精品入口免费软件| 亚洲精品一区三区三区在线观看| 欧日韩精品视频| 色天使在线观看| 亚洲成人偷拍| 日韩av影片在线观看| 国产高清一区二区三区四区| 欧美色爱综合| 久久av在线播放| 国产一卡二卡在线| 日本最新不卡在线| 亚洲专区在线视频| 日本精品999| 国产亚洲欧美一区在线观看| 一本一道久久a久久精品综合| 亚洲欧美成人影院| 日韩欧美高清视频| 奇米视频7777| 天堂在线精品| 久久天天躁狠狠躁老女人| 国产一级生活片| 日韩中文字幕av电影| 亚洲一区亚洲二区| 男男电影完整版在线观看| 国产精品久久久久久久久晋中| 亚洲色婷婷久久精品av蜜桃| 色在线免费观看| 欧美日韩久久不卡| 中文字幕第3页| 四季av在线一区二区三区| 欧美激情视频免费观看| 亚洲午夜无码久久久久| 粉嫩蜜臀av国产精品网站| 青青草成人网| 福利写真视频网站在线| 欧美日韩一级片在线观看| 香蕉视频污视频| 欧美激情欧美| 日本精品在线视频| 朝桐光av在线一区二区三区| 欧美国产一区二区在线观看| 成年在线观看视频| 国产精品无码久久久久| 日韩精品久久久久久福利| 四虎免费在线视频| 奇米777欧美一区二区| 国产青春久久久国产毛片| 日本精品一区二区三区在线播放| 午夜精品久久久久久| 国产性生活一级片| 大胆日韩av| 日韩av成人在线| 特级丰满少妇一级aaaa爱毛片| 亚洲欧美一区二区三区孕妇| 久久久精品三级| 网友自拍区视频精品| 欧美日韩xxx| 亚洲天堂2021av| 国产女人aaa级久久久级| 91九色在线观看视频| 4438全国亚洲精品观看视频| 久久精品人人做人人爽| 中文字幕欧美在线观看| 国产午夜精品久久久久久久| 亚洲国产精品久久久久婷蜜芽| 中文无码日韩欧| 欧美成年人在线观看| 中文 欧美 日韩| 国产三区在线成人av| 精品99在线视频| 妖精视频一区二区三区| 91爱爱小视频k| 日本黄色一区二区三区| 亚洲第一精品在线| 日批免费观看视频| 黄色成人av网站| 国产传媒一区二区| brazzers在线观看| 亚洲国产91色在线| 国产成人在线观看网站| 99视频一区二区三区| 久久久久久久久久网| 国产日韩三级| 欧美一级在线亚洲天堂| 精品视频一二三| 色女孩综合影院| 极品人妻videosss人妻| 免播放器亚洲一区| 中文精品一区二区三区 | 国产精华一区二区三区| 美足av综合网| 亚洲第一页在线| 三级黄色在线视频| 久久亚洲捆绑美女| 韩国日本在线视频| 成人影院天天5g天天爽无毒影院 | 欧美视频在线第一页| 91国内精品| 久久男人av资源网站| 五月婷婷久久久| 欧美在线制服丝袜| www.99re7| 99久久综合国产精品| 北条麻妃在线一区| 色综合天天综合网中文字幕| 亚洲精品免费网站| a√中文在线观看| 亚洲欧美日韩久久久久久| 在线观看免费视频一区| 一区二区三区高清在线| 亚洲av成人片色在线观看高潮 | 欧美一性一乱一交一视频| 精品亚洲成a人片在线观看| 欧美男生操女生| 久久久久香蕉视频| 久久精子c满五个校花| 午夜剧场在线免费观看| 在线日韩视频| 日韩尤物视频| 99久久免费精品国产72精品九九| 欧美一级高清免费| 黄色网页网址在线免费| 亚洲第一精品福利| 在线观看黄色国产| 亚洲成a人v欧美综合天堂下载| 国产又大又粗又爽的毛片| 韩国av一区二区三区四区| 五月丁香综合缴情六月小说| 日韩成人精品一区二区| 国产经品一区二区| 国产精品高潮久久| 97在线观看免费| 欧美18一19xxx性| 亚洲精品视频网上网址在线观看| 亚洲自拍第二页| 欧美色播在线播放| 好吊色视频在线观看| 久久久精品蜜桃| 国产欧美视频一区| 久久超碰97中文字幕| 国产精品秘入口18禁麻豆免会员| 99久精品视频在线观看视频| 欧美久久久久久| 亚洲国产精品免费视频| 国产精品一区二区久久精品| 一二三四视频在线中文| 欧美人与物videos| 免费观看在线午夜影视| 亚洲性猛交xxxxwww| 亚洲 精品 综合 精品 自拍| 日韩一区二区三区视频在线| 亚洲 小说区 图片区| 日韩欧美在线视频日韩欧美在线视频| 国产一区二区播放| 国产精品久久久久久久久图文区 | 欧美激情视频一区| 欧美边添边摸边做边爱免费| 怡红院精品视频| 免费动漫网站在线观看| 日韩精品在线视频美女| 动漫av一区二区三区| 日韩亚洲电影在线| 国产欧美日韩成人| 91精品国产综合久久精品| 一区二区三区www污污污网站| 欧美系列日韩一区| 亚洲中文无码av在线| 欧美在线免费观看亚洲| 国产精品欧美综合| 91黄色在线观看| 五月婷婷六月婷婷| 日本韩国视频一区二区| 亚洲精品中文字幕乱码三区91| 婷婷亚洲久悠悠色悠在线播放| 国产亚洲第一页| 亚洲国产一二三| 国产无遮挡免费视频| 午夜精品久久久久久久99樱桃| 日韩久久精品视频| 亚洲午夜精品一区二区三区他趣| 日本免费在线播放| 亚洲 欧美综合在线网络| 久久精品免费av| 午夜激情久久久| 亚洲精品午夜国产va久久成人| 色综合中文综合网| 亚洲黄网在线观看| 欧美性生活大片视频| 在线视频欧美亚洲| 91精品国产麻豆| 狠狠躁夜夜躁av无码中文幕| 亚洲激情免费观看| 六十路在线观看| 在线看日韩欧美| 国产网友自拍视频导航网站在线观看| 欧美大码xxxx| 国产亚洲成av人片在线观看| 日韩美女免费线视频| 亚洲精品一区三区三区在线观看| 成人午夜激情网| 99re6热只有精品免费观看| 精品乱码一区| 成人亚洲一区| 91动漫在线看| 天堂资源在线中文精品| 五月天丁香花婷婷| 粉嫩aⅴ一区二区三区四区 | ㊣最新国产の精品bt伙计久久| 国产精品三区在线观看| 亚洲成人av电影在线| 99re国产在线| 欧美一区二区成人| 亚欧在线观看视频| 日韩一区二区三区国产| 狂野欧美激情性xxxx欧美| 热99在线视频| 国产精品国产三级在线观看| 久久av一区二区| 欧美黄色大片在线观看| 丰满少妇久久久| 九九精品视频在线看| 插我舔内射18免费视频| 国产精品夫妻自拍| 日韩 欧美 综合| 在线播放/欧美激情| 神马电影在线观看| 久久国产天堂福利天堂| 国模冰冰炮一区二区| 亚洲一区二区三区成人在线视频精品| 偷拍亚洲色图| 日韩一级特黄毛片| 理论电影国产精品| 欧美高清性xxxx| 一区二区三区免费网站| 黄色网址中文字幕| 亚洲国产精品系列| www在线视频| 国产精品青青在线观看爽香蕉| 亚洲精品一区二区三区中文字幕| 日日夜夜精品网站| 日韩午夜电影| 黑人无套内谢中国美女| 欧美国产成人精品| 日韩福利片在线观看| 91麻豆精品国产自产在线| 九色视频在线播放| 66m—66摸成人免费视频| 午夜视频一区二区在线观看| 亚洲精品不卡| 久久久久国产一区二区| 国产一级二级在线观看| 亚洲国产欧美日韩另类综合| 精品国产乱码一区二区三 | 亚洲久久视频| 先锋资源在线视频| 国产精品久久久久天堂| 国产中文字幕视频| 日韩第一页在线| 国精一区二区三区| 97视频热人人精品| 国产精品久久久久久麻豆一区软件 | 国产原创欧美精品| 精品国产一区二区三区| 日韩人妻精品无码一区二区三区| 成人美女视频在线看| 欧美成人片在线观看| 日韩一级视频免费观看在线| 黄色网页在线看| 91免费精品国偷自产在线| 999国产精品| 在线观看免费av网址| 成人免费在线播放视频| 国产精品久久婷婷| 久久九九免费视频| 国产精品亚洲欧美日韩一区在线| 神马影院午夜我不卡影院| 日本欧美一区二区三区乱码 | 肥臀熟女一区二区三区| 欧美乱妇40p| 97se亚洲| 国产3p露脸普通话对白| 99麻豆久久久国产精品免费| 久久99精品波多结衣一区| 亚洲摸下面视频| 先锋欧美三级| 一区二区视频在线观看| 国产精品综合一区二区| 国产一级做a爰片在线看免费| 欧美mv日韩mv亚洲| sm久久捆绑调教精品一区| 韩国精品一区二区三区六区色诱| 一区二区三区成人精品| 国产激情在线免费观看| 欧美日韩中文字幕一区二区| 免费大片黄在线观看视频网站| 99精品欧美一区二区三区| 一本色道久久综合亚洲精品不卡| 亚洲一区二区三区蜜桃| 欧美色综合天天久久综合精品| 成人在线网址| 国产一区二区三区四区五区在线 | 国产精品久久一区主播| 欧美r级电影| 国产精品日日摸夜夜爽| 日韩欧美中文免费| 午夜视频在线观看网站| 99中文视频在线| 久久xxxx| 在线免费观看亚洲视频| 精品丝袜一区二区三区| 青青伊人久久| 男人添女人荫蒂免费视频| 久久久久久97三级| 99热这里只有精| 91av国产在线| 欧美国产一级| 青青草视频网站| 欧美美女直播网站| h片在线观看下载| 亚洲精品日韩成人| 99国产精品久久久久| 国产一区二区三区在线观看| 97国产精品视频| 91久久电影| 欧美黑人欧美精品刺激|