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

淺談Linux內存管理那些事兒

系統 Linux
內存管理是Linux內核中非常重要的部分,今天和大家一起學習一下。linux內存管理的東西確實非常多,本文也只有5k字并且沒有源碼,所以只能是淺談。

[[321382]]

1 前言

內存管理是Linux內核中非常重要的部分,今天和大家一起學習一下。

當我們要學習一個新知識點時,比較好的過程是先理解出現這個技術點的 背景原因,同期其他解決方案,新技術點解決了什么問題以及它存在哪些不足和改進之處,這樣整個學習過程是 閉環 的,個人覺得這是個很好的學習思路。

凡事都是相通的,計算機學科的一些問題在現實生活中都可以找到原型,所以我覺得計算機科學家大部分都是善于觀察生活并總結歸納的。人類社會就是一臺復雜的機器,其中充滿了機制和規則,所以有時候跳進代碼海洋不如先回到生活之中,尋找原型再探究代碼,可能理解會更深刻。

linux內存管理卷帙浩繁,本文只能層層遞進地帶你領略冰山輪廓,通過本文你將了解到以下內容:

  • 為什么需要管理內存
  • linux段頁管理機制
  • 內存碎片的產生機理
  • 伙伴系統的基本原理
  • 伙伴系統的優勢和不足
  • slab分配器的基本原理

2 為什么需要管理內存

老子的著名觀點是無為而治,簡單說就是不過多干預而充分依靠自覺就可以有條不紊地運作,理想是美好的,現實是殘酷的。

在linux系統中如果以一種原始簡單的方式管理內存是存在一些問題的,我們來看幾個場景。

2.1 內存管理的問題

進程空間隔離問題

假如現在有ABC三個進程運行在linux的內存空間,設定os給進程A分配的地址空間是0-20M 進程B地址空間30-80M,進程C地址空間90-120M,如圖:

在某些時候程序空間的訪問可能出現問題,比如進程A訪問了屬于進程B的空間,進程B訪問了屬于進程C的空間,甚至修改了空間的值,這樣就會造成混亂和錯誤,所以實際中是不允許這種情況發生的。

  • 內存效率和內存不足問題

機器的內存是有限資源,而進程數量是無法確定的,如果在某些時候已經啟動的進程占據了所有內存空間,此時就無法啟動新進程了,因為沒有新內存可分配了,但是我們觀察到已經啟動的進程有時候是在睡大覺,也就是給了內存也不用,這樣效率確實是有點低,所以我們需要一個管理員把不用的內存倒騰出來,另外連續內存實在是很珍貴,很多時候我們沒法有效及時地分配連續內存,因此虛擬化和離散化可能會有效提高內存的使用率。

  • 程序定位調試和編譯運行問題

由于程序運行時的位置時不確定的,我們在定位問題、調試代碼、編譯執行時都會存在很多問題,我們希望每個進程有一致且完整的地址空間,同樣的起始位置放置了堆、棧以及代碼段等,從而簡化編譯和執行過程中的 linker 鏈接器、loader 加載器的使用。

2.2 虛擬地址空間

為了解決上述的一些問題,linux系統引入了虛擬空間的概念,虛擬化的出現和硬件有密不可分的聯系,可以說是軟硬件組合的結果,虛擬地址空間就是在程序和物理空間所增加的中間層,這也是內存管理的重點。

磁盤 disk 作為一種大容量的存儲也作為"內存"的一部分參與程序的運行,內存管理系統會將不常用非活躍內存進行頁面換出,可以認為內存是磁盤的緩存,內存中保留了活躍的數據,從而間接擴展了有限的物理內存空間,這部分空間稱為虛擬內存是相對于物理內存而言的。

3.段頁管理機制

本文并不深入地將分段管理內存和分頁管理內存,因為將這些細節的優秀文章很多,感興趣的使用搜索引擎一鍵即達。

段頁機制也不是一蹴而就的,經歷了單純物理分段、單純分頁、單純邏輯分段等階段,最終演進出來了分段和分頁結合的內存管理方式,段頁結合獲得了分段和分頁的優勢也避免了單一模式的弊端,是一種比較好的管理模式。

本文對于段頁管理機制只想通俗地說明一些概念,段頁管理機制是分段式管理和分頁式管理的組合,段式管理是邏輯上的管理方式,分頁管理是偏物理上的管理方式。

計算機里面的一些技術和實現都可以在現實生活中找到縮影,所謂藝術和科技源自生活大概就是這個意思吧。

舉個栗子:

在進行居民戶籍管理時都會有區縣市的概念,但是實際上并沒有這種實體,都是邏輯上的,增加了這些行政單位之后可以讓地址管理更加直接。

對于我們居民來說唯一的實體就是自己的房子住所,這是物理上的單位,是真實存在的,這也是最基本的單位。

對比linux段頁時管理來說,段是邏輯上的單位相當于區縣市的概念,頁是物理上的單位相當于小區/房屋的概念,這樣就方便很多。

多級頁表也很好理解,總的物理內存假如有4GB,頁大小為4KB,那么就總共有2^20個頁,數量還是非常大的,這樣編號來建立索引尋址比較不方便,所以引入多級頁表,來減少存儲便于管理。

段頁機制加持下的邏輯地址和物理地址的映射關系簡圖,也就是虛擬地址到物理地址的對應關系:

圖片來自網絡

內存管理單元( MMU Memory Management Unit )是硬件層組件,主要提供將虛擬地址映射為物理地址。

MMU 的工作流程:CPU 生成邏輯地址交給分段單元,分段單元進行處理將邏輯地址轉換為線性地址,再線性地址交給分頁單元,分頁單元根據頁表映射轉換內存物理地址,其中可能出現缺頁中斷。

缺頁中斷( Page Fault )是只當軟件試圖訪問一個虛擬地址時,經過段頁轉換為物理地址之后,此時發現該頁并沒有在內存中,這時 cpu 就會報出中斷,再進行相關虛擬內存的調入工作或者分配工作,如果出現異常也可能直接中斷。

4.物理內存和內存碎片

前面說的段頁管理機制算是虛擬空間的部分,然而linux內存管理的另外一個重要部分就是物理內存的管理了,也就是如何分配和回收物理內存,這就涉及到一些內存分配算法和分配器。

4.1 物理內存分配器

分配器和分配算法就像公司財務,內存就像公司資金,如何把資金合理使用是財務的本職工作,如何把物理內存合理使用是分配器的分內之事。

4.2 內存碎片分類和機理

如果我們不知道內存碎片是什么,試想一下我們常說的碎片化的時間,也就是那些雖然空閑但是沒有被利用的時間,其實內存也是如此。

無論是時間還是內存被碎片化之后都無法被有效利用,因此合理管理減少碎片對我們來說是至關重要的,這也是物理內存分配算法和分配器的研究重點。

按照碎片的位置和產生原因,內存碎片分為外部碎片和內部碎片,我們看下這兩種碎片的直觀展示:

圖片來自網絡

從圖中可以知道,外部碎片是進程與進程間未分配的內存空間,外部碎片的出現和進程頻繁的分配和釋放內存有直接關系,這個很好理解,模擬一下分配不同空間的進程不同時間釋放就可以看到外部碎片的產生了。

內部碎片主要因為分配器粒度問題以及一些地址限制導致實際分配的內存大于所需內存,這樣在進程內部就會出現內存空洞。

雖然虛擬地址讓進程使用的內存在物理內存上是離散的,但是很多時候進程需要一定量連續物理內存,如果大量碎片存在,就會造成無法啟動進程的問題,如圖Process7需要一塊連續的物理內存卻無法被分配:

圖片來自網絡

如果還是沒有很清楚,試想一下平時和三五好友去食堂吃飯或者坐公交的場景,整個車廂都沒有連續的3個座位,所以要么分開坐要么都站著:

5. 伙伴系統算法基本原理

5.1 一些準備知識

  • 物理頁框

linux將物理內存按照頁來劃分,內存頁的大小在不同的軟硬件中可能不一樣,linux內核設置為4KB,有的內核可能更大也可能更小,當時不同的大小在實際中都是有考量的,就像面包一樣有大有小,并不是整齊劃一的。

  • 頁框記錄結構

在內核中為了建立對物理內存頁page的使用情況的監控,會有struct page這樣的數據結構來記錄頁的位置地址/使用情況等,相當于內核對內存頁管理的一本賬目。

  • 延時分配和實時分配

linux系統有內核態和用戶態之分,內核態申請內存就立刻滿足并且認為這個請求一定是合理的。然而用戶態申請內存的請求,總是盡量延后分配物理內存,所以用戶態進程是先獲得一個虛擬內存區,在運行時通過缺頁異常獲得一塊真正的物理內存,我們執行 malloc 時獲取的只是虛擬內存而已,并不是真實的物理內存,也是這個原因造成的。

5.2 伙伴系統簡介

第一次聽到這個算法名稱就很好奇為什么叫伙伴系統?讓我們來一起揭秘。

  • 伙伴系統要解決什么問題

伙伴系統算法是解決外部碎片的有力工具,簡單來說它針對頻繁請求和釋放不同大小的一組連續頁框的場景,建立一套管理機制來高效的分配和回收資源,降低外部碎片。

  • 解決外部碎片的思路

第一種思路:把已經存在的外部碎片通過新的技術把這些非連續的空閑內存映射到連續的線性空間,其實相當于沒有去降低外部碎片的產生而是治理型方案,但是這種方案在真實需要連續物理內存時是無效的。

第二種思路:把這些小的空閑的不連續內存記錄在案,如果有新的分配需求就從中搜索合適的將空閑內存分配出去,這樣就避免了在新的區域進行分配內存,有種變廢為寶的感覺,其實這樣場景也很熟悉當你想吃一包餅干時,你媽媽肯定會說先把之前剩下一半沒吃完的吃掉,不要先開新的了。

基于一些其他方面的考量,linux內核選擇了第二種思路來解決外部碎片。

  • 伙伴內存塊的定義

在伙伴系統中把大小相同且物理地址連續的兩塊內存區域稱為伙伴,連續地址的要求其實是比較苛刻了,但是這也是算法的關鍵,因為這樣的兩塊內存區域可以合并成一塊更大的區域。

  • 伙伴系統的核心思想

伙伴系統將不同大小的連續物理頁框進行管理,在申請時從最接近的頁框大小進行分配,剩余的進行新的拆解,并將有伙伴關系的內存會進行合并成為大的頁框。

5.3 伙伴系統的基本過程

伙伴系統維護了 n=0~10 共 11 個塊鏈表,每個塊鏈表分別包含了大小為 2^n 個連續的物理頁。當 n=10 時即 1024 個 4KB 頁對應 4MB 大小的連續物理內存塊,這里的 n稱為 order,在伙伴系統中 order為0~10,也就是最小的是 4KB,最大的內存塊是4MB,這些相同大小的物理塊組成雙向鏈表進行管理,如圖展示了 order=0 和 order=2 的兩個雙向鏈表的情況:

圖片來自網絡

申請內存過程:假設請求一個頁框塊,伙伴系統算法先在 order=0 的鏈表中檢查是否有空閑塊可分配。如果沒有則查找下一個更大的塊,在 order=1 的鏈表中找一個空閑塊,鏈表中存在就把2個頁框拆分,1個頁框分配出去1 個頁框加入到 order=0的鏈表中。如果 order=1 的鏈表中仍未找到空閑塊,就繼續向更大的order搜索,如果找到進行拆分處理,如果最終至 order=10 的鏈表也沒有空閑塊,則算法報錯。

合并內存過程:合并內存的過程是伙伴算法中伙伴塊的體現,算法把兩個塊具有相同大小 A且它們物理地址連續的內存合并為一個大小為 2A 的單獨塊。伙伴算法是自底向上迭代合并的,其實這個過程和 leveldb 中 sst 的合并過程很相似,區別在于伙伴算法要求內存塊是連續的,這個過程也體現了伙伴系統對于大塊內存的友好。

圖片來自網絡

5.4 伙伴系統的優勢和不足

伙伴系統算法較好地解決了外部碎片問題,并且對于大內存塊的分配比較友好小粒度的內存可能造成內部碎片,但是伙伴系統對于伙伴塊的定義很苛刻,并且在合并伙伴塊的過程涉及較多的鏈表操作,對于一些頻繁的申請可能剛合并就會被拆分掉,這就做了無用功,所以伙伴系統還是存在一些問題的。

6. Slab分配器

從伙伴系統的介紹可以知道其分配的最小單位是 4KB 的頁框,這對于一些頻繁申請的小到幾十字節的內存來說還是十分浪費的,所以我們需要更細粒度的分配器,這就是slab分配器。

slab分配器并不是和伙伴系統分立的,而是建立在伙伴系統之上,可以看作是伙伴系統的二級分銷商,更加靠近用戶側,但是slab分配器因為更靠近使用方,因此在結構實現上比伙伴系統更加復雜,本文只能簡單概括。

個人感覺slab分配器的亮點包括:最小粒度為對象和內存惰性歸還。

Linux 所使用的 slab 分配器的基礎是 Jeff Bonwick 為 SunOS 操作系統首次引入的一種算法。Jeff 的分配器是圍繞對象緩存進行的。在內核中,會為有限的對象集(例如文件描述符和其他常見結構)分配大量內存。Jeff 發現對內核中普通對象進行初始化所需的時間超過了對其進行分配和釋放所需的時間。因此他的結論是不應該將內存釋放回一個全局的內存池,而是將內存保持為針對特定初始化的狀態。

from 《linux slab 分配器剖析》

slab采用對象作為最小單位的理論基礎就在于初始化一個結構的時間可能超過了分配和釋放的時間。

slab分配器可以看作是一種內存預分配機制,就像超市會把常用的物品放到大家更容易找到的位置,事先把這些對象準備好申請時就可以立刻分配出去了。

 

  • slabs_full:鏈表中slab已經完全分配出去
  • slabs_partial:鏈表中的slab部分已經被分配出去了
  • slabs_empty: 鏈表中的slab都是空閑的 也就是可以被回收

對象是從 slab 中進行分配和釋放的,每個kmem_cache的slab列表是存在狀態遷移的,但是被回收的部分slab并不會立刻歸還給伙伴系統,并且在分配時會優先分配最近被釋放的對象,目的是利用cpu緩存的局部性原理,可以看出來slab分配器的細節做的很足,但是為了實現這一套復雜的邏輯,就要維護多個隊列會比伙伴系統更復雜。

slab的內容相比buddy更復雜,本文不再展開。

7.結語

linux內存管理的東西確實非常多,本文也只有5k字并且沒有源碼,所以只能是淺談。

從工程角度來說,本文也只是拋磚引玉的作用,所以這篇文章并不是深入的探討內存管理,對此我也表示歉意。

讓我的好朋友sy審稿了一下,他說看著寫了很多但又好像啥也沒寫,其實我跟他的感受一樣,可能最近寫文章沒感覺,和上篇快手面試題差不多,寫完之后有點迷茫。

所以最后還是那句話,本文只是淺談,深入理解還是需要去看內核書籍,沒有捷徑。

8.巨人的肩膀

  • https://blog.csdn.net/XD_hebuters/article/details/79519406
  • https://blog.csdn.net/xd_hebuters/article/details/79506062
  • https://jacktang816.github.io/post/linuxmemorymanage/
  • https://jacktang816.github.io/post/memoryfragmentation/
  • https://www.jianshu.com/p/98f9f86b2aeb
  • https://www.cnblogs.com/sunsky303/p/9214223.html
  • https://www.cnblogs.com/klb561/p/11062166.html
  • http://abcdxyzk.github.io/blog/2015/03/03/kernel-mm-slab2/
  • https://www.ibm.com/developerworks/cn/linux/l-linux-slab-allocator/index.html

 

責任編輯:武曉燕 來源: 后端技術指南針
相關推薦

2017-05-18 16:30:29

Linux內存管理

2022-05-13 14:36:12

網絡犯罪網絡攻擊密碼

2023-04-11 07:34:40

分布式系統算法

2021-09-04 16:12:33

壓縮算法數據

2013-06-13 11:29:14

分布式分布式緩存

2011-02-25 14:35:00

2013-06-05 16:44:33

Linux系統用戶賬號管理

2010-09-14 11:36:24

上網行為管理網絡安全網康科技

2024-11-18 15:30:53

Linux目錄權限

2013-09-29 15:11:46

Linux運維內存管理

2012-07-19 15:30:00

Linux

2011-06-28 15:37:34

Qt 內存

2013-03-12 17:33:17

Linux系統性能調優

2013-04-23 10:51:15

Linux壓縮

2022-02-08 17:39:04

MySQL服務器存儲

2018-09-26 06:50:19

2021-06-02 08:33:31

TPCTPC-H系統

2013-12-26 14:23:03

定位系統GPS監測

2021-06-09 13:28:40

密碼安全身份認證數據安全

2013-04-02 11:21:52

Linux操作系統虛擬主機
點贊
收藏

51CTO技術棧公眾號

欧美日韩精品一区| 久久久亚洲网站| 欧美成人福利在线观看| 黄色在线播放网站| 99精品国产91久久久久久 | 国产精品久久7| 麻豆成人免费视频| 一区二区蜜桃| 亚洲欧美在线一区二区| 网站在线你懂的| 自拍偷拍亚洲视频| 一区二区三区四区在线播放| 欧美激情第一页在线观看| 国产三级漂亮女教师| 欧美亚洲视频| 久久久久久国产免费| 国产黄色片在线| 精品少妇一区| 5566中文字幕一区二区电影| av动漫在线看| 欧美大片黄色| 亚洲日穴在线视频| 日韩欧美在线一区二区| 欧美 日韩 国产 精品| 精品一区中文字幕| 国产精品久久久久久五月尺| 日韩精品一区二区av| 亚洲欧美色图| 色爱精品视频一区| 波多野结衣av在线观看| 欧美1区二区| 欧美成人一区二区三区片免费| 日本久久精品一区二区| 成年人黄色大片在线| 亚洲视频在线一区| 午夜精品短视频| 日韩偷拍自拍| gogo大胆日本视频一区| 国产成人av一区二区三区| 在线不卡免费视频| 热久久一区二区| 国产91精品网站| 五月婷婷开心网| 亚洲精品麻豆| 国内精久久久久久久久久人| 真实国产乱子伦对白在线| 97人人精品| 色狠狠久久aa北条麻妃| 无码人妻精品一区二区中文| 日韩有码av| 亚洲精品福利免费在线观看| 黄色av电影网站| caoporn成人免费视频在线| 日韩久久免费av| 不许穿内裤随时挨c调教h苏绵| 欧美第一在线视频| 日韩欧美资源站| 中文在线观看免费视频| 久久黄色影视| 亚洲欧洲黄色网| 国产免费无遮挡吸奶头视频| 窝窝社区一区二区| 亚洲天堂av高清| 亚洲av成人无码久久精品| 国产在视频线精品视频www666| 亚洲情综合五月天| 美国黄色特级片| 国产精品88久久久久久| 欧美乱大交xxxxx另类电影| 九九热精品在线观看| 狠狠干综合网| 日本道色综合久久影院| 成人黄色三级视频| 国产在线一区观看| 国产成人女人毛片视频在线| 亚洲色图另类小说| 久久久99久久| 免费久久久久久| 丁香高清在线观看完整电影视频| 欧美日韩日本国产| 999精彩视频| 91精品啪在线观看国产爱臀| 日韩高清av在线| 免费成人深夜蜜桃视频| 一区二区中文| 热久久免费视频精品| 在线观看亚洲一区二区| 国产电影精品久久禁18| 另类视频在线观看+1080p| 午夜激情在线观看| 亚洲成人资源网| 青青青在线视频免费观看| 亚洲精品自拍| 日韩成人av在线播放| 18精品爽国产三级网站| 好看的亚洲午夜视频在线| 日本免费久久高清视频| 国产精品久久久久久久成人午夜| 成人的网站免费观看| 亚洲不卡一卡2卡三卡4卡5卡精品| 一本一道波多野毛片中文在线| 亚洲综合色在线| 久久久久免费精品| 亚洲天堂av资源在线观看| 亚洲欧美在线免费| 欧美日韩人妻精品一区二区三区| 亚洲永久免费精品| 91福利视频导航| 国产小视频免费在线观看| 亚洲精品欧美激情| www.激情小说.com| 精品视频在线你懂得| 久久久www成人免费精品| 国产精品人人人人| 国产精品1024| 在线不卡日本| 日韩一级二级| 亚洲免费小视频| 精品午夜福利视频| 精品一区二区日韩| 日韩精品最新在线观看| caoporn视频在线| 日韩欧美亚洲一区二区| 日韩不卡av在线| 美女91精品| 精品乱子伦一区二区三区| 在线观看h网| 欧美日本韩国一区| 久久精品色妇熟妇丰满人妻| 美女91精品| 欧美韩国日本精品一区二区三区| 第一av在线| 精品99一区二区| 久久黄色免费网站| 国产美女在线精品| 久久最新免费视频| 国产精品一区二区美女视频免费看| 亚洲视频在线免费观看| www.中文字幕在线观看| 99国产精品视频免费观看| 六月婷婷激情综合| 日韩视频一区二区三区四区| 久久九九亚洲综合| 国产一区二区小视频| 国产精品乱人伦| 91女神在线观看| 日韩综合网站| 国产日韩在线视频| 岛国中文字幕在线| 日韩免费高清av| 欧美黄片一区二区三区| 成人午夜激情视频| 黄网站欧美内射| 蜜桃久久久久| 欧美亚洲第一页| 激情小说 在线视频| 91官网在线免费观看| av在线播放中文字幕| 美女爽到高潮91| 免费在线观看污污视频| 国语精品视频| 97精品一区二区三区| 深夜福利在线观看直播| 色综合久久88色综合天天6| 91网站免费视频| 久久精品国产一区二区三区免费看| 午夜精品一区二区三区四区| 亚洲综合视频| 久久久久久久久久国产| 日韩电影在线观看完整版| 欧美在线视频不卡| 日韩在线中文字幕视频| 成人高清免费观看| 玩弄japan白嫩少妇hd| 日韩国产专区| 粉嫩精品一区二区三区在线观看 | 97av在线播放| 成人影院免费观看| 日韩午夜精品视频| 国产高清中文字幕| 亚洲丝袜自拍清纯另类| xxxx黄色片| 蜜臀久久99精品久久久画质超高清 | 久久伦理在线| 国产精品区一区| 性欧美videohd高精| 日韩色av导航| 午夜免费福利视频| 在线观看国产精品网站| 免费在线观看一级片| 97aⅴ精品视频一二三区| www.日本一区| 亚洲激情综合| 一区二区三区四区国产| 极品一区美女高清| 国产一区二中文字幕在线看| 久草在线资源福利站| 深夜福利亚洲导航| 天天综合天天综合| 欧美疯狂性受xxxxx喷水图片| 日本最新中文字幕| 亚洲欧洲日韩av| 日韩精品无码一区二区三区久久久| 黑人巨大精品欧美黑白配亚洲| 男女私大尺度视频| 99精品视频精品精品视频| 精品一区二区视频| 国产在线不卡一区二区三区| 国产精品mp4| xxx性欧美| 裸体女人亚洲精品一区| 国产二区在线播放| 日韩高清免费观看| 亚洲精品97久久中文字幕无码| 欧美三级一区二区| 国产成人综合欧美精品久久| 亚洲综合色在线| 欧美一区免费观看| 国产精品乱人伦中文| 90岁老太婆乱淫| 99精品视频在线免费观看| 欧美专区第二页| 蜜桃91丨九色丨蝌蚪91桃色| 精品www久久久久奶水| 亚洲天堂激情| 91精品一区二区三区四区| 成人精品影院| 日本在线播放不卡| 九九综合在线| 久久精品国产第一区二区三区最新章节 | 成人免费毛片东京热| 国产精品免费aⅴ片在线观看| 好吊日免费视频| 99re免费视频精品全部| 韩国三级hd两男一女| 国产精品一二三在| 一级 黄 色 片一| 国内精品伊人久久久久av一坑| 激情 小说 亚洲 图片: 伦| 久久久久看片| 黑森林福利视频导航| 国产欧美亚洲一区| 国产精品专区在线| 亚洲国产一区二区精品专区| 国产精品久久国产| 亚洲美女色禁图| 免费观看美女裸体网站| 99国产精品久久久久久久| 99热自拍偷拍| 国产毛片久久| av免费中文字幕| 日韩中文字幕亚洲一区二区va在线| 苍井空浴缸大战猛男120分钟| 性高湖久久久久久久久| 亚洲人成色77777| 免费欧美在线视频| 在线黄色免费看| 国产成人在线视频网站| aaa黄色大片| 91免费观看视频| 在线国产视频一区| 国产精品第五页| 中文字幕在线观看成人| 亚洲一区二区三区四区五区黄| 国产一二三四在线| 欧美日韩一区二区在线播放| 亚洲欧美偷拍一区| 欧美色图在线观看| 99热这里只有精品3| 亚洲а∨天堂久久精品9966| 天堂v视频永久在线播放| 国产午夜精品一区理论片飘花| 日韩在线观看www| 久久国产精品首页| 九色porny视频在线观看| 国产激情久久久久| aa亚洲一区一区三区| 国产精品久久久久久久天堂第1集| 日韩深夜福利| 国产精品美女在线播放| 亚洲精品黄色| 中文字幕22页| 国产69精品久久久久777| 黄色在线观看av| 亚洲图片激情小说| 精品成人久久久| 欧美女孩性生活视频| 欧美熟妇交换久久久久久分类| 亚洲香蕉成人av网站在线观看| 麻豆电影在线播放| 国语对白做受69| 日韩久久99| 久久综合福利| 一区二区中文| 亚洲一区二区蜜桃| 不卡在线视频中文字幕| 欧美日韩国产黄色| 亚洲成av人片一区二区梦乃| 一级一级黄色片| 亚洲国产欧美日韩精品| 日本在线免费| 热99精品只有里视频精品| 一区二区日韩| 正在播放91九色| 老司机精品久久| 国产一卡二卡三卡四卡| 国产精品免费人成网站| 看片网址国产福利av中文字幕| 制服丝袜av成人在线看| 欧美精品久久久久久久久久丰满| 欧美精品一区在线播放| 精品三区视频| 久热国产精品视频一区二区三区| 中文精品久久| 亚洲国产高清av| 久久精品欧美一区二区三区不卡| 国产一级视频在线观看| 51精品久久久久久久蜜臀| 福利视频在线看| 国产91精品青草社区| 给我免费播放日韩视频| 亚洲av综合色区| 久久9热精品视频| 欧美做受高潮6| 欧美日韩一区二区三区在线免费观看 | 色欲狠狠躁天天躁无码中文字幕 | 中文字幕人妻一区二区在线视频 | 久久国产66| 黄色免费视频网站| 亚洲成人福利片| 亚洲精品国产suv一区| 另类视频在线观看| 久久伊人精品| ijzzijzzij亚洲大全| 另类小说一区二区三区| 亚洲一区 欧美| 欧美在线你懂的| 国内在线免费高清视频| 欧美一级在线播放| 香蕉久久99| 97在线播放视频| 91蜜桃免费观看视频| 色网站在线播放| 日韩成人在线免费观看| 九九色在线视频| 国产成人亚洲欧美| 亚洲区一区二| 国产ts丝袜人妖系列视频| 精品久久久视频| 日韩欧美在线观看一区二区| 日本久久久久久| 欧美先锋资源| 97超碰人人爽| 一区二区三区免费| 国产自产一区二区| 57pao成人国产永久免费| 久久99视频| 亚洲精品永久视频| 一区二区欧美国产| 婷婷丁香一区二区三区| 欧美最猛性xxxx| 成人激情在线| 香蕉网在线视频| 狠狠做深爱婷婷久久综合一区| 飘雪影院手机免费高清版在线观看| 国产精品高精视频免费| 国产精品精品国产一区二区| 中文字幕第三区| 五月婷婷色综合| 国产在线视频网址| 国产日韩在线精品av| 亚洲网站啪啪| 色欲av无码一区二区三区| 欧美色综合久久| 不卡的av影片| 色女孩综合网| 国产激情精品久久久第一区二区 | 精品国产一区二区三区久久影院 | 好吊色视频一区二区三区| 色一情一乱一乱一91av| 日本成a人片在线观看| 99在线看视频| 久久久国产精品一区二区中文| 99精品欧美一区二区| 日韩三区在线观看| 性xxxxfreexxxxx欧美丶| 亚洲国产一区二区三区在线播| 国产精一品亚洲二区在线视频| 国产网友自拍视频| 中文字幕少妇一区二区三区| 99国产精品久久一区二区三区| 美女福利视频在线| 夜夜嗨av一区二区三区四季av | av在线资源观看| 欧美亚洲在线视频| 国产精品福利在线观看播放| 欧美无人区码suv| 欧美一级片免费看| 亚洲综合av一区二区三区| 777久久精品一区二区三区无码|