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

進程調度:我太難了!

系統 Linux
本文講述的進程調度模型其實就是Linux中O(1)調度算法和CFS(完全公平調度算法)調度算法的雛形,為了便于理解,文中進行了一定程度的簡化。

1. 任務切換

現在有一塊CPU,但是有兩個程序都想來執行,我們需要開發一個任務調度程序。

只有兩個程序,so easy啦!讓它們交替執行就行了。

為了實現切換,我們提供一個API,這兩個程序執行一會兒就主動調用一下這個API,然后在這個API內部實現任務的切換。

所謂的切換,其實就是把當前進程的上下文(也就是CPU一堆的寄存器值)保存到進程的TCB(進程控制塊,每個進程對應的內存數據結構)里。然后把另一個進程TCB里的上下文寄存器的值裝載起來,開始運行。

這是一種主動配合式的調度。

2. 搶占

然而,理想很美好,現實很骨感。

這些個程序可能不是那么聽話,可能很久都不調用我們的API交出CPU,甚至可能搞了個死循環,另一個程序永遠也沒機會執行。

看來:不能依賴程序主動交出執行權,調度程序需要有搶占CPU的能力!

怎么搶占呢?

我們可以利用時鐘中斷!

因為一旦有中斷事件到來,CPU就得去執行中斷處理程序。只要在時鐘中斷的處理函數里面加入調度入口,就能搶到CPU的執行權。

為了公平起見,我們決定讓每個進程都執行一小段時間,我們把這個叫做時間片,比如100ms,然后輪流執行它們就可以了,差不多是這個樣子:

我們給CPU編程,讓它每1ms發送一次時鐘中斷。在每個時鐘中斷到來時,檢查當前的線程運行時間是否足夠100ms,如果沒有就將當前線程運行的時間+1ms,然后中斷處理結束,讓它繼續運行。

如果檢查發現時間已經到了100ms,就切換另一個進程來運行。

100ms對于人類幾乎感知不到,所以還以為兩個線程是在同時運行。

一個最最最簡單的任務調度程序就完成了。

3. 阻塞

漸漸地,進程多了起來,3個、4個、5個···

我們用一個隊列把它們存起來,先進先出,就叫做就緒隊列吧,意思是準備要排隊執行的隊列。

所有就緒的進程,依次排隊被我們的調度程序翻牌子執行。

沒過多久,我們發現有些進程經常占著茅坑不xx,在sleep或者等待鎖的時候,白白霸占著CPU空轉,搞得隊列里其他進程怨聲載道。

那咱們對調度程序再做一個優化吧:當有進程等待鎖、I/O等待或者sleep的時候,調度程序也需要介入,即使分配給它的時間片還沒用完,也要讓它主動交出CPU,并把它放到另一個等待隊列里去,等到等待的條件滿足的時候,再把它請回到就緒隊列排隊。

現在,我們的調度程序不再允許有占著CPU卻摸魚的現象發生。

4. 優先級

后來,進程進一步多了起來,6個、7個、···、100個。

每一個進程都執行100ms,轉一圈下來就是10000ms=10s。

一個打字程序,按了鍵盤10s鐘之后才反應過來,這系統卡的一匹,簡直沒法用。

我們可以把每個進程執行的時間縮短為10ms,轉一圈下來變成了1000ms=1s,情況好了很多,但還是有點卡。

而且這一招架不住進程越來越多,200個,300個,甚至更多,轉一圈的時間還是在變長。

但又不好繼續壓縮時間,否則就花太多時間在切換上了,真正執行的時間變少。

歸根結底,問題在于進程多了以后,再按照順序輪轉不合時宜了。

得讓一些進程擁有VIP特權,能夠優先執行。

要不這樣吧,給每個進程設定一個優先級,從1到40,總共40個優先級,數字越大,優先級越高。

調度的時候,把隊列遍歷一圈,找出里面優先級最高的進程來執行。

現在,我們只需要給打字程序這樣的交互式進程設定一個高優先級,再次按下鍵盤后,很快就能得到響應了。

5. O(1)復雜度

每次調度的時候都得去遍歷所有的進程,這復雜度是O(N)。

進程少倒還不打緊,多了以后就有些惱火了,這效率太低了。

讓所有進程一起排在一個大的隊列里,不是一個明智的做法。

要不我們按照優先級拆分成不同的隊列吧!每個優先級單獨弄一個就緒隊列,就是40個隊列,分開排隊,找起來效率更高。

調度的時候,按照優先級順序,依次來看每一個隊列是否有可以執行的進程,找到后就從隊列里取出來執行,相同優先級隊列里面的進程,輪流執行。

為了快速知道每一個優先級隊列里面有沒有進程,咱們再弄一個位圖,40個bit,每一位表示一個優先級隊列,如果是1就知道這個優先級的隊列里有進程需要執行,為0就沒有。

關于這個優先級隊列,差不多可以這樣定義:

struct priority_queue {
int nr_active; // 所有隊列的進程總數
unsigned long bitmap[BITMAP_SIZE]; // 位圖
struct list_head queue[MAX_PRIO]; // 隊列數組
};

現在找起來可方便了,進程再多也沒事,都可以在O(1)的時間復雜度里找到要調度的進程。

6. 餓死問題

系統運行了一段時間,發現了一個重要的問題:由于高優先級進程的存在,低優先級的程序很難得到執行機會,容易被“餓死”。

除非高優先級的進程執行結束,或者在睡眠等待,否則只要它一直待在就緒隊列里,其他進程就沒有機會。

這可不行呀,雖然你優先級高,但總得給別人分口吃的吧。

看來進程執行完成之后,不能馬上把它再放回原來的隊列里去,得這一輪大家都執行過后才行。

不放回原隊列,那放哪里去呢?

干脆再弄一個優先級隊列,把它叫做expired隊列,并把原來的優先級隊列叫做active隊列。

調度的時候,從active隊列里提取進程。完成一次調度后就把它放到expired隊列,等原來的隊列里的進程都挨個執行完一圈,active隊列就空了,它們都來到了這個expired隊列,然后交換兩個隊列,從頭再來。

嗯,為了避免內存拷貝。把active和expired定義成指針,到時候直接交換兩個指針,更省事兒!

把原來的隊列封裝一下:

struct runqueue {
struct priority_queue* active;
struct priority_queue* expired;
struct priority_queue array[2];
};

就這樣,所有進程在兩個隊列中兜兜轉轉,現在低優先級的進程也有機會被執行到了,不會被餓死了。

7. 優先級與時間片

到目前為止,雖然進程有優先級之分,但這只影響它們的調度順序,而不影響它們執行的時間,所有的進程時間片依然是100ms。

現在,優先級高的程序提出了抗議:我執行的任務很重要,需要給我更長的CPU時間片!

于是,一個新的需求來了:不同優先級進程,運行的時間片需要有區別。

優先級高的,時間片得長一點;優先級低的,時間片得短一些。

這個需求倒也好辦,我們以中間優先級20為基礎,設定優先級為20的進程時間片是100ms,優先級每增加1級,時間片+5ms,每減少一級,時間片-5ms。

優先級 ---- 時間片
1 5ms
2 10ms
3 15ms
··· ···
18 90ms
19 95ms
20 100ms # base
21 105ms
··· ···
39 195ms
40 200ms

現在,高優先級的進程不僅能夠優先被執行,給它分配的運行時間也更多了。

上面的時間片分配算法還不算是完美,它有一個問題:

如果現在只有兩個優先級為20和21的進程在運行,時間片分別是100ms和105ms,那么兩個進程分別能獲取到的CPU時間占比是100/(100+105)=48.7%和105/(100+105)=51.2%。

優先級增加1,CPU時間占比多了2.5%,看起來沒什么問題。

現在如果換成只有兩個優先級為1和2的進程在運行,時間片分別是5ms和10ms,那么兩個進程分別能獲取到的CPU時間占比是5/(5+10)=33.3%和10/(5+10)=66.7%。

優先級2只比優先級1的進程高了一級,獲取的CPU時間占比就翻了一倍!

同樣是優先級加1,這差距咋就這么大呢?

說好的公平呢?

8. 公平調度:時間分配

現在,我們換個思路,不用絕對時間片,而用相對時間片。

比如設定我們的調度周期為100ms,這100ms讓所有可以運行的進程來瓜分,100ms之后所有就緒的進程都被執行了一圈兒。

那么問題來了,如何讓進程們來瓜分這100ms呢?

當然是按照優先級來分。

我們給不同優先級的進程設置不同的權重,優先級高的,權重值高,就多分一點兒,優先級越低的,權重值低,就少分一點兒。

那這個權重值設定為多少好呢?

別急,有人已經幫我們想好了,就是下面這個數組。

想知道為什么是這些數字而不是別的,是有講究的,不過先不用管。

const int sched_prio_to_weight[40] = { 
88761, 71755, 56483, 46273, 36291,
29154, 23254, 18705, 14949, 11916,
9548, 7620, 6100, 4904, 3906,
3121, 2501, 1991, 1586, 1277,
1024, 820, 655, 526, 423,
335, 272, 215, 172, 137,
110, 87, 70, 56, 45,
36, 29, 23, 18, 15,
};

現在,各個進程按照自己優先級對應的權重,來從這100ms的調度周期里來分配時間。

不知道你發現沒有,如果進程特別多,那可能分下來的時間就會很少。咱們還得設定一個最小值,不然一天天的凈跑去調度切換了,真正執行的時間少了。

這個最小值,就是進程至少得運行這么久才能切換。

9. 公平調度:進程選擇

時間分配的問題解決了,還有一個問題:調度的時候,如何挑選下一個需要執行的進程呢?

前面我們按照權重來給大家分配了時間,但肯定有一些進程,因為I/O、鎖、睡眠等原因沒有把分配的時間用完,這一些進程應該得到補償,一旦它們符合執行條件后,應該優先被執行。

主動放棄了CPU的進程,它們運行的時間肯定比分配的短。要不,按照進程運行的時間來排個序,挑選時間最短的進程來運行?

但是,不同進程優先級不一樣,分配到的時間本來就有長短啊。

要是能夠消除因為權重造成的時間分配長短不一問題就好了,就能用運行時間來排序了。

要不咱們再弄一個虛擬運行時間,把權重帶來的影響再給修復回去?

比如優先級高的進程,分配的時間多,統計它的運行時間的時候,就讓它流逝的慢一些。

而優先級低的進程,分配的時間少,統計它的運行時間的時候,就讓它流逝的快一些。

這樣所有進程在沒有任何睡眠、等待、I/O的情況下,大家都是用完了自己的時間,消除權重后的虛擬時間都應該是一樣一樣的,都是整個調度周期的1/N!

這才叫公平嘛!

現在只需要把所有進程按照虛擬時間來排個序,排在前面的虛擬時間短,調度的時候就選擇它來運行。

好主意,那用什么樣的數據結構來組織管理進程呢?

數組?插入不方便。

鏈表?尋找插入位置的時候時間復雜度是O(N)。

用二叉搜索樹貌似是個不錯的方案。左節點虛擬時間比父節點和右節點的虛擬時間小,只要找到最左邊的節點就是要調用的進程,時間復雜度是O(LogN)。

但二叉搜索樹有個毛病,一個不小心就容易變成一棵“跛腳”的樹,這時間復雜度就又上去了。

紅黑樹沒有這個問題,它自帶平衡性,要不就它吧!

根據虛擬時間來把所有待運行的進程組織成一棵紅黑樹,只要找到整棵樹最左邊的節點,就是要運行的進程。

不過為了更高效,樹調整更新導致最左邊節點發生變化的時候,把它給緩存起來,這樣調度的時候就直接拿到這個緩存節點就好了。

完美!

總結

上面講述的進程調度模型其實就是Linux中O(1)調度算法和CFS(完全公平調度算法)調度算法的雛形,為了便于理解,文中進行了一定程度的簡化。包括但不限于:

  • 在實際的Linux中,進程優先級有140個,分為實時進程和非實時進程。
  • 在實際的Linux中,進程通過一個叫nice值(對其他進程的友好度,nice越大,越友好,越謙讓,優先級越低)的東西映射到優先級,優先級數字越大,優先級反而越低。
  • 在實際的Linux中,進程的優先級分為靜態和動態,是會隨著運行而變化的,不是固定不變。
  • 在多核模式下,為了防止加鎖帶來的性能損失,每一個CPU核都有自己的調度隊列。
  • 在實際的Linux中,參與調度的是線程,而不是進程。但在早期的Linux中,沒有線程的概念,調度就是基于進程來進行,引入線程后,線程又稱為輕量級進程。現在我們平時所說的進程和線程在語義上有所不同,這一點要注意區別。

看完了這篇文章,再去看Linux的調度算法,應該會輕松不少。

責任編輯:趙寧寧 來源: 編程技術宇宙
相關推薦

2022-03-16 07:58:02

OOMdubbo內存

2020-03-26 15:10:34

蘋果iPhone手機

2021-12-08 23:42:37

iPhone 13手機停產

2022-04-15 19:48:49

上海疫情居家辦公

2019-10-14 09:41:08

游戲Google接口

2022-04-05 11:29:40

Linux安裝操作系統

2020-08-19 09:03:57

微信微信支付移動應用

2021-09-18 07:19:54

400G5GIP網絡

2021-12-04 23:01:33

程序員開發互聯網

2020-01-07 10:17:59

微軟Windows 10操作系統

2022-09-19 16:31:14

游戲益智游戲機

2022-02-16 10:07:26

谷歌計算機離職

2021-03-18 09:17:00

LinuxM1 Mac蘋果

2023-09-07 06:44:49

Intel 4Ultra

2020-01-15 09:35:00

Linux瀏覽器Java

2022-02-16 16:36:55

阿里面試面試流程背景

2009-09-16 08:40:53

linux進程調度linuxlinux操作系統

2021-06-11 13:30:28

神經網絡機器學習

2022-08-28 16:20:44

模型數學

2019-12-23 16:57:26

搶票春運車次
點贊
收藏

51CTO技術棧公眾號

青青青手机在线视频观看| 免费看一级大片| 丝袜诱惑一区二区| 久久免费精品国产久精品久久久久| 欧美诱惑福利视频| 精品人伦一区二区| 国产精品va视频| 香港成人在线视频| 日韩成人在线资源| av免费观看在线| 国产精品外国| 久久久精品国产亚洲| 国产人成视频在线观看| 三级成人在线| 一区二区免费在线| 欧美日韩在线不卡一区| 国产ts变态重口人妖hd| 久久免费国产| 久久亚洲欧美日韩精品专区| 极品人妻一区二区三区| 成人自拍视频| 色妞www精品视频| 91精品国产毛片武则天| 久草在线青青草| 国产99久久久国产精品免费看| 日本一区二区在线播放| 久久久久久久久久久97| 欧洲视频一区| 精品久久久久久亚洲综合网| 亚洲综合欧美在线| 亚洲精品成人图区| 亚洲午夜激情网站| 中文字幕在线中文字幕日亚韩一区| 亚洲人成色777777老人头| 国产专区欧美精品| 国产精品久久久久77777| 日本网站在线免费观看| 欧美在线日韩| 日韩中文字幕国产精品| 精品少妇人妻一区二区黑料社区 | 国产免费av在线| a级精品国产片在线观看| 成人女保姆的销魂服务| 亚洲精品国产欧美在线观看| 夜夜爽av福利精品导航| 欧美情侣性视频| 日韩一区二区三区四区视频| 亚洲人挤奶视频| 欧美精品一区在线观看| 国产高清999| 久久久久黄色| 欧美视频一区二区三区在线观看| 日韩欧美精品在线观看视频| av资源网在线播放| 亚洲一区免费观看| wwwjizzjizzcom| 日韩另类在线| 亚洲自拍偷拍麻豆| www.欧美黄色| 午夜激情在线| 一区二区日韩电影| 日韩欧美视频免费在线观看| 18加网站在线| 亚洲一区日韩精品中文字幕| 999一区二区三区| 男女视频在线| 天天综合网 天天综合色| 成人午夜免费在线| 日韩伦理在线| 91久久精品一区二区| 欧美一级黄色影院| 国产欧美自拍| 91精品国产aⅴ一区二区| 亚洲男人天堂2021| 欧美一级大片在线视频| 日韩视频一区二区三区在线播放| 韩国三级在线播放| 成人精品动漫一区二区三区| 日韩精品视频观看| 国产偷人妻精品一区| 国产99久久精品一区二区300| 亚洲视频第一页| 特级西西人体高清大胆| 欧美成人69| 91国产美女视频| 国产成人自拍偷拍| 狠狠色狠狠色综合| 国产日韩欧美亚洲一区| 欧美孕妇孕交| 国产精品麻豆欧美日韩ww| 精品国产无码在线| 黄色在线看片| 91久久线看在观草草青青| 天天操,天天操| 中文字幕日韩高清在线| 日韩精品免费在线| 国产福利视频网站| 一二三区精品| 国产综合久久久久久| 黄色片网站免费在线观看| 91美女片黄在线| 中文字幕中文字幕99| 51精品视频| 欧美日韩成人一区| 久久人妻少妇嫩草av蜜桃| 丝袜美腿综合| 久久久999国产精品| 99热国产在线观看| 国产尤物一区二区| 麻豆亚洲一区| 中文字幕资源网在线观看| 欧美视频免费在线| 亚洲欧美日韩中文字幕在线观看| 精品国产乱码久久久久久蜜坠欲下 | 制服丝袜中文字幕第一页| 第四色中文综合网| 精品国产一区二区三区四区在线观看 | 免费看污黄网站| 风间由美一区二区av101| 在线日韩欧美视频| 99热国产在线观看| 国产精品亚洲综合一区在线观看| 日韩视频专区| 黄色激情在线播放| 日韩免费福利电影在线观看| 国产精品视频在| 亚洲一区日本| 成人欧美一区二区三区在线观看| 日本三级视频在线观看| 色婷婷综合中文久久一本| 午夜免费福利影院| 中文不卡在线| 成人激情综合网| 岛国在线大片| 色天使色偷偷av一区二区| 欧美在线一级片| 国产一区日韩欧美| 亚洲一区二区三区毛片| 日本美女高清在线观看免费| 欧洲一区在线观看| 亚洲永久精品ww.7491进入| 1024日韩| 激情小说综合区| 国产亚av手机在线观看| 日韩欧美在线观看一区二区三区| 久久久久麻豆v国产| 日本网站在线观看一区二区三区| 欧美国产视频在线观看| 伊人成综合网站| 亚洲精品成人av| 日韩精品视频免费播放| 成人激情午夜影院| 无码人妻少妇伦在线电影| 97久久综合精品久久久综合| 欧美精品一本久久男人的天堂| 97人妻人人澡人人爽人人精品| 国产精品久久久久影院色老大| 手机看片福利盒子久久| 欧美午夜精彩| 国产欧美一区二区三区视频| 欧美被日视频| 91精品国产入口在线| 日韩女优一区二区| 国产一区三区三区| 2022中文字幕| 国产丝袜一区| 热re91久久精品国99热蜜臀| 韩国福利在线| 精品视频一区三区九区| 很污很黄的网站| 国产精品亚洲午夜一区二区三区 | 亚洲一区观看| 青娱乐一区二区| 欧美黄色成人| 久久99亚洲热视| 色综合成人av| 欧美剧在线免费观看网站| 久久精品黄色片| 成人精品国产一区二区4080| 欧美牲交a欧美牲交| 国内亚洲精品| 91网站免费观看| av中文在线资源库| 中文字幕日韩电影| 精品人妻一区二区三区蜜桃 | 99re8这里有精品热视频8在线| 91国自产精品中文字幕亚洲| 国际av在线| 日韩免费一区二区| 亚洲精品男人的天堂| 国产精品乱码一区二区三区软件| 乳色吐息在线观看| 葵司免费一区二区三区四区五区| 免费看av软件| 日韩在线影视| 91夜夜揉人人捏人人添红杏| 超碰高清在线| 日韩中文字幕在线观看| 人人妻人人澡人人爽精品日本| 91高清视频在线| 久久午夜鲁丝片午夜精品| 国产婷婷色一区二区三区| 色姑娘综合天天| 蘑菇福利视频一区播放| 99久re热视频精品98| 亚洲最好看的视频| 高清视频一区二区三区| 日韩一区二区三区免费视频| 欧美黄色性视频| 中文日本在线观看| 精品无人区太爽高潮在线播放| 国产免费福利视频| 欧美色视频日本版| 久久精品亚洲无码| 日韩一区中文字幕| 国产真实乱人偷精品人妻| 国产成人av电影在线| 欧美女同在线观看| 亚洲一区成人| 日本福利视频网站| 国产精品久久久乱弄| 欧美一进一出视频| 久久精品国产亚洲5555| 91在线视频九色| 草民电影神马电影一区二区| 欧美一区深夜视频| www.综合网.com| 久久影视电视剧免费网站| shkd中文字幕久久在线观看| 国产视频亚洲视频| 熟妇人妻中文av无码| 欧美一级一级性生活免费录像| 亚洲精品91天天久久人人| 日韩欧美国产一区二区| 日韩成人av毛片| 亚洲五码中文字幕| 免费中文字幕在线观看| 亚洲欧美乱综合| 精品少妇一区二区三区密爱| 国产丝袜在线精品| 久久精品无码一区| 久久噜噜亚洲综合| 免费看黄色的视频| 久久久噜噜噜久久中文字幕色伊伊| 无码国产69精品久久久久网站| 高清在线成人网| 久久久久99人妻一区二区三区| 国产在线视频一区二区三区| 日本国产一级片| 极品少妇xxxx精品少妇| 亚洲色图偷拍视频| 国产麻豆精品theporn| 日韩av影视大全| 国产一区二区免费看| 黄色三级视频在线播放| 狠狠色丁香久久婷婷综合_中| 亚洲美女爱爱视频| 国产一区二区免费视频| 精品人妻人人做人人爽夜夜爽| 国产成人免费视频一区| 91人人澡人人爽| av在线不卡免费看| 久久国产精品无码一级毛片 | 日韩亚洲欧美成人一区| 国产成人毛毛毛片| 精品国产露脸精彩对白| 天天摸天天干天天操| 精品亚洲一区二区三区| 国产福利片在线| 久久色在线播放| 欧美理论片在线播放| 98视频在线噜噜噜国产| 亚洲综合在线电影| 91九色综合久久| 综合成人在线| 麻豆亚洲一区| 99久久夜色精品国产亚洲96 | 欧美人妻一区二区三区| 国产精品久久国产精麻豆99网站| 欧美第一页在线观看| 亚洲观看高清完整版在线观看| 在线能看的av| 欧美精选在线播放| 亚洲精品18p| 亚洲欧洲激情在线| mm1313亚洲国产精品美女| 午夜剧场成人观在线视频免费观看| 在线精品亚洲欧美日韩国产| 国产欧美一区二区三区久久人妖| youjizzjizz亚洲| 日本视频一区在线观看| 国产精品97| 亚洲熟妇av日韩熟妇在线| 美女视频一区二区三区| 国产精品一区二区无码对白| 国产片一区二区三区| 欧美高清视频一区二区三区| 一本色道久久综合精品竹菊| 国产高清第一页| 亚洲免费电影一区| 亚洲www色| 国产精品久久久久影院日本| 91综合久久爱com| 亚洲mv在线看| 亚洲深爱激情| 手机在线播放av| 国产拍揄自揄精品视频麻豆| 日本少妇在线观看| 91精品国产综合久久精品性色| 日韩在线免费看| 欧美国产日韩视频| 免费成人高清在线视频| 精品综合久久久| 欧美天天视频| 污视频网址在线观看| 91免费在线看| 国产在线一二区| 7777精品伊人久久久大香线蕉完整版| 天天操天天操天天干| 久久精品国产69国产精品亚洲 | 色综合天天综合狠狠| 精品久久人妻av中文字幕| 最近日韩中文字幕中文| 在线观看欧美日韩电影| 国产一区二区三区色淫影院| 一个色综合网| 国产成人在线综合| 亚洲国产精品高清| 国产一级免费视频| 亚洲国产日韩欧美在线图片| 在线网址91| 91久热免费在线视频| 水蜜桃久久夜色精品一区| 久久黄色免费看| 26uuu国产在线精品一区二区| 国产在线欧美在线| 日韩一区二区三区免费观看| 91九色在线porn| 国产精品福利网| 精品国产一区二区三区| 国产欧美在线一区| 91免费国产在线| 久久午夜免费视频| 亚洲精品美女久久久久| 国产免费拔擦拔擦8x在线播放 | 一区二区三区网址| 国产欧美一区二区精品秋霞影院| 在线免费观看国产精品| 亚洲男人的天堂在线播放| 在线免费av资源| 欧美日韩最好看的视频| 97超碰在线视| 成人av免费在线播放| 国产亚洲成人精品| 亚洲国产精品字幕| 看黄在线观看| 欧美另类高清视频在线| 日韩专区在线视频| 欧美另类69xxxx| 欧美高清视频一二三区| 91精品久久久久久粉嫩| yy111111少妇影院日韩夜片| 精品动漫一区| aaaaaav| 97人人干人人| 91亚洲成人| 一级 黄 色 片一| 亚洲欧美视频| 国内精品卡一卡二卡三| 欧美亚洲日本一区| 久久综合之合合综合久久| 亚洲一区中文字幕在线观看| 欧美激情麻豆| 性欧美丰满熟妇xxxx性久久久| 色综合婷婷久久| 91女主播在线观看| 成人av免费看| 男人的天堂亚洲| 三级黄色录像视频| 欧美v亚洲v综合ⅴ国产v| 台湾佬中文娱乐网欧美电影| 亚洲精品无人区| 福利一区二区在线| 黄色片中文字幕| www.xxxx精品| 黄色欧美网站| 国产精品一区二区小说| 亚洲综合在线第一页| 毛片网站在线观看| 91免费国产网站| 国产手机视频一区二区 | 美腿丝袜亚洲图片| 国产 porn| 一级做a爱片久久| 黄色小视频在线观看| 成人在线中文字幕| 欧美亚洲一级| 污软件在线观看| 国产亚洲视频在线| 一区二区精彩视频|