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

深入分析Linux內(nèi)核源碼-進(jìn)程調(diào)度(2)

系統(tǒng) Linux
調(diào)度的實(shí)質(zhì)就是資源的分配。系統(tǒng)通過(guò)不同的調(diào)度算法(Scheduling Algorithm)來(lái)實(shí)現(xiàn)這種資源的分配。通常來(lái)說(shuō),選擇什么樣的調(diào)度算法取決于的資源分配的策略(Scheduling Policy),在這里只說(shuō)明與Linux調(diào)度相關(guān)的幾種算法及這些算法的原理。

3 Linux的調(diào)度程序-Schedule( )

3.1基本原理

調(diào)度的實(shí)質(zhì)就是資源的分配。系統(tǒng)通過(guò)不同的調(diào)度算法(Scheduling Algorithm)來(lái)實(shí)現(xiàn)這種資源的分配。通常來(lái)說(shuō),選擇什么樣的調(diào)度算法取決于的資源分配的策略(Scheduling Policy),在這里只說(shuō)明與Linux調(diào)度相關(guān)的幾種算法及這些算法的原理。

一個(gè)好的調(diào)度算法應(yīng)當(dāng)考慮以下幾個(gè)方面:

(1)公平:保證每個(gè)進(jìn)程得到合理的CPU時(shí)間。

(2)高效:使CPU保持忙碌狀態(tài),即總是有進(jìn)程在CPU上運(yùn)行。

(3)響應(yīng)時(shí)間:使交互用戶的響應(yīng)時(shí)間盡可能短。

(4)周轉(zhuǎn)時(shí)間:使批處理用戶等待輸出的時(shí)間盡可能短。

(5)吞吐量:使單位時(shí)間內(nèi)處理的進(jìn)程數(shù)量盡可能多。

很顯然,這5個(gè)目標(biāo)不可能同時(shí)達(dá)到,所以,不同的操作系統(tǒng)會(huì)在這幾個(gè)方面中作出相應(yīng)的取舍,從而確定自己的調(diào)度算法,例如UNIX采用動(dòng)態(tài)優(yōu)先數(shù)調(diào)度、BSD采用多級(jí)反饋隊(duì)列調(diào)度、Windows采用搶先多任務(wù)調(diào)度等等。

下面來(lái)了解一下主要的調(diào)度算法及其基本原理:

1.時(shí)間片輪轉(zhuǎn)調(diào)度算法

時(shí)間片(Time Slice)就是分配給進(jìn)程運(yùn)行的一段時(shí)間。在通常的輪轉(zhuǎn)法中,系統(tǒng)將所有的可運(yùn)行(即就緒)進(jìn)程按先來(lái)先服務(wù)的原則,排成一個(gè)隊(duì)列,每次調(diào)度時(shí)把CPU分配給隊(duì)首進(jìn)程,并令其執(zhí)行一個(gè)時(shí)間片。當(dāng)執(zhí)行的時(shí)間片用完時(shí),系統(tǒng)發(fā)出信號(hào),通知調(diào)度程序,調(diào)度程序便據(jù)此信號(hào)來(lái)停止該進(jìn)程的執(zhí)行,并將它送到運(yùn)行隊(duì)列的末尾,等待下一次執(zhí)行;然后,把處理機(jī)分配給就緒隊(duì)列中新的隊(duì)首進(jìn)程,同時(shí)也讓它執(zhí)行一個(gè)時(shí)間片。這樣就可以保證運(yùn)行隊(duì)列中的所有進(jìn)程,在一個(gè)給定的時(shí)間內(nèi),均能獲得一時(shí)間片的處理機(jī)執(zhí)行時(shí)間。

2.優(yōu)先權(quán)調(diào)度算法

為了照顧到緊迫型進(jìn)程在進(jìn)入系統(tǒng)后便能獲得優(yōu)先處理,引入了***優(yōu)先權(quán)調(diào)度算法。當(dāng)將該算法用于進(jìn)程調(diào)度時(shí),系統(tǒng)將把處理機(jī)分配給運(yùn)行隊(duì)列中優(yōu)先權(quán)***的進(jìn)程,這時(shí),又可進(jìn)一步把該算法分成兩種方式:

(1) 非搶占式優(yōu)先權(quán)算法(又稱不可剝奪調(diào)度:Nonpreemptive Scheduling)

在這種方式下,系統(tǒng)一旦將處理機(jī)(CPU)分配給運(yùn)行隊(duì)列中優(yōu)先權(quán)***的進(jìn)程后,該進(jìn)程便一直執(zhí)行下去,直至完成;或因發(fā)生某事件使該進(jìn)程放棄處理機(jī)時(shí),系統(tǒng)方可將處理機(jī)分配給另一個(gè)優(yōu)先權(quán)高的進(jìn)程。這種調(diào)度算法主要用于批處理系統(tǒng)中,也可用于某些對(duì)實(shí)時(shí)性要求不嚴(yán)的實(shí)時(shí)系統(tǒng)中。

(2) 搶占式優(yōu)先權(quán)調(diào)度算法(又稱可剝奪調(diào)度:Preemptive Scheduling)

該算法的本質(zhì)就是系統(tǒng)中當(dāng)前運(yùn)行的進(jìn)程永遠(yuǎn)是可運(yùn)行進(jìn)程中優(yōu)先權(quán)***的那個(gè)。在采用這種調(diào)度算法時(shí),每當(dāng)出現(xiàn)一新的可運(yùn)行進(jìn)程,就將它和當(dāng)前運(yùn)行進(jìn)程進(jìn)行優(yōu)先權(quán)比較,如果高于當(dāng)前進(jìn)程,將觸發(fā)進(jìn)程調(diào)度。這種方式的優(yōu)先權(quán)調(diào)度算法,能更好的滿足緊迫進(jìn)程的要求,故而常用于要求比較嚴(yán)格的實(shí)時(shí)系統(tǒng)中,以及對(duì)性能要求較高的批處理和分時(shí)系統(tǒng)中。Linux也采用這種調(diào)度算法。

3.多級(jí)反饋隊(duì)列調(diào)度

這是時(shí)下最時(shí)髦的一種調(diào)度算法。其本質(zhì)是:綜合了時(shí)間片輪轉(zhuǎn)調(diào)度和搶占式優(yōu)先權(quán)調(diào)度的優(yōu)點(diǎn),即:優(yōu)先權(quán)高的進(jìn)程先運(yùn)行給定的時(shí)間片,相同優(yōu)先權(quán)的進(jìn)程輪流運(yùn)行給定的時(shí)間片。

4.實(shí)時(shí)調(diào)度

***我們來(lái)看一下實(shí)時(shí)系統(tǒng)中的調(diào)度。什么叫實(shí)時(shí)系統(tǒng),就是系統(tǒng)對(duì)外部事件有求必應(yīng)、盡快響應(yīng)。在實(shí)時(shí)系統(tǒng)中,廣泛采用搶占調(diào)度方式,特別是對(duì)于那些要求嚴(yán)格的實(shí)時(shí)系統(tǒng)。因?yàn)檫@種調(diào)度方式既具有較大的靈活性,又能獲得很小的調(diào)度延遲;但是這種調(diào)度方式也比較復(fù)雜。

3.2 Linux進(jìn)程調(diào)度時(shí)機(jī)

Linux的調(diào)度程序是一個(gè)叫Schedule()的函數(shù),這個(gè)函數(shù)被調(diào)用的頻率很高,由它來(lái)決定是否要進(jìn)行進(jìn)程的切換,如果要切換的話,切換到哪個(gè)進(jìn)程等等。我們先來(lái)看在什么情況下要執(zhí)行調(diào)度程序,我們把這種情況叫做調(diào)度時(shí)機(jī)。

Linux調(diào)度時(shí)機(jī)主要有:

1、進(jìn)程狀態(tài)轉(zhuǎn)換的時(shí)刻:進(jìn)程終止、進(jìn)程睡眠;

2、當(dāng)前進(jìn)程的時(shí)間片用完時(shí)(current->counter=0);

3、設(shè)備驅(qū)動(dòng)程序主動(dòng)調(diào)用schedule;

4、進(jìn)程從中斷、異常及系統(tǒng)調(diào)用返回到用戶態(tài)時(shí);

時(shí)機(jī)1,進(jìn)程要調(diào)用sleep()或exit()等函數(shù)進(jìn)行狀態(tài)轉(zhuǎn)換,這些函數(shù)會(huì)主動(dòng)調(diào)用調(diào)度程序進(jìn)行進(jìn)程調(diào)度;

時(shí)機(jī)2,由于進(jìn)程的時(shí)間片是由時(shí)鐘中斷來(lái)更新的,因此,這種情況和時(shí)機(jī)4是一樣的。

#p#

時(shí)機(jī)3,當(dāng)設(shè)備驅(qū)動(dòng)程序執(zhí)行長(zhǎng)而重復(fù)的任務(wù)時(shí),直接調(diào)用調(diào)度程序。在每次反復(fù)循環(huán)中,驅(qū)動(dòng)程序都檢查need_resched的值,如果必要,則調(diào)用調(diào)度程序schedule()主動(dòng)放棄CPU。

時(shí)機(jī)4,如前所述,不管是從中斷、異常還是系統(tǒng)調(diào)用返回,最終都調(diào)用ret_from_sys_call(),由這個(gè)函數(shù)進(jìn)行調(diào)度標(biāo)志的檢測(cè),如果必要,則調(diào)用調(diào)度程序。那么,為什么從系統(tǒng)調(diào)用返回時(shí)要調(diào)用調(diào)度程序呢?這當(dāng)然是從效率考慮。從系統(tǒng)調(diào)用返回意味著要離開(kāi)內(nèi)核態(tài)而返回到用戶態(tài),而狀態(tài)的轉(zhuǎn)換要花費(fèi)一定的時(shí)間,因此,在返回到用戶態(tài)前,系統(tǒng)把在內(nèi)核態(tài)該處理的事全部做完。

每個(gè)時(shí)鐘中斷(timer interrupt)發(fā)生時(shí),由三個(gè)函數(shù)協(xié)同工作,共同完成進(jìn)程的選擇和切換,它們是:schedule()、do_timer()及ret_form_sys_call()。我們先來(lái)解釋一下這三個(gè)函數(shù):

schedule():進(jìn)程調(diào)度函數(shù),由它來(lái)完成進(jìn)程的選擇(調(diào)度);

do_timer():暫且稱之為時(shí)鐘函數(shù),該函數(shù)在時(shí)鐘中斷服務(wù)程序中被調(diào)用,被調(diào)用的頻率就是時(shí)鐘中斷的頻率即每秒鐘100次(簡(jiǎn)稱100赫茲或100Hz);

ret_from_sys_call():系統(tǒng)調(diào)用返回函數(shù)。當(dāng)一個(gè)系統(tǒng)調(diào)用或中斷完成時(shí),該函數(shù)被調(diào)用,用于處理一些收尾工作,例如信號(hào)處理、核心任務(wù)等等。

這三個(gè)函數(shù)是如何協(xié)調(diào)工作的呢?

前面我們看到,時(shí)鐘中斷是一個(gè)中斷服務(wù)程序,它的主要組成部分就是時(shí)鐘函數(shù)do_timer(),由這個(gè)函數(shù)完成系統(tǒng)時(shí)間的更新、進(jìn)程時(shí)間片的更新等工作,更新后的進(jìn)程時(shí)間片counter作為調(diào)度的主要依據(jù)。在時(shí)鐘中斷返回時(shí),要調(diào)用函數(shù)ret_from_sys_call(),前面我們已經(jīng)討論過(guò)這個(gè)函數(shù),在這個(gè)函數(shù)中有如下幾行:

cmpl $0, _need_resched

jne reschedule

……

restore_all:

RESTORE_ALL

reschedule:

call SYMBOL_NAME(schedule)

jmp ret_from_sys_call

這幾行的意思很明顯:檢測(cè) need_resched 標(biāo)志,如果此標(biāo)志為非0,那么就轉(zhuǎn)到reschedule處調(diào)用調(diào)度程序schedule()進(jìn)行進(jìn)程的選擇。調(diào)度程序schedule()會(huì)根據(jù)具體的標(biāo)準(zhǔn)在運(yùn)行隊(duì)列中選擇下一個(gè)應(yīng)該運(yùn)行的進(jìn)程。當(dāng)從調(diào)度程序返回時(shí),如果發(fā)現(xiàn)又有調(diào)度標(biāo)志被設(shè)置,則又調(diào)用調(diào)度程序,直到調(diào)度標(biāo)志為0,這時(shí),從調(diào)度程序返回時(shí)由RESTORE_ALL恢復(fù)被選定進(jìn)程的環(huán)境,返回到被選定進(jìn)程的用戶空間,使之得到運(yùn)行。

Linux 調(diào)度程序和其他的UNIX調(diào)度程序不同,尤其是在“nice level”優(yōu)先級(jí)的處理上,與優(yōu)先權(quán)調(diào)度(priority高的進(jìn)程***運(yùn)行)不同,Linux用的是時(shí)間片輪轉(zhuǎn)調(diào)度(Round Robing),但同時(shí)又保證了高優(yōu)先級(jí)的進(jìn)程運(yùn)行的既快、時(shí)間又長(zhǎng)(both sooner and longer)。而標(biāo)準(zhǔn)的UNIX調(diào)度程序都用到了多級(jí)進(jìn)程隊(duì)列。大多數(shù)的實(shí)現(xiàn)都用到了二級(jí)優(yōu)先隊(duì)列:一個(gè)標(biāo)準(zhǔn)隊(duì)列和一個(gè)實(shí)時(shí)(“real time”)隊(duì)列。一般情況下,如果實(shí)時(shí)隊(duì)列中的進(jìn)程未被阻塞,它們都要在標(biāo)準(zhǔn)隊(duì)列中的進(jìn)程之前被執(zhí)行,并且,每個(gè)隊(duì)列中,“nice level”高的進(jìn)程先被執(zhí)行。

3.3 進(jìn)程調(diào)度的依據(jù)

調(diào)度程序運(yùn)行時(shí),要在所有處于可運(yùn)行狀態(tài)的進(jìn)程之中選擇最值得運(yùn)行的進(jìn)程投入運(yùn)行。選擇進(jìn)程的依據(jù)是什么呢?在每個(gè)進(jìn)程的task_struct結(jié)構(gòu)中有這么五項(xiàng):

need_resched、nice、counter、policy 及rt_priority

need_resched: 在調(diào)度時(shí)機(jī)到來(lái)時(shí),檢測(cè)這個(gè)域的值,如果為1,則調(diào)用schedule() 。

counter: 進(jìn)程處于運(yùn)行狀態(tài)時(shí)所剩余的時(shí)鐘滴答數(shù),每次時(shí)鐘中斷到來(lái)時(shí),這個(gè)值就減1。當(dāng)這個(gè)域的值變得越來(lái)越小,直至為0時(shí),就把need_resched 域置1,因此,也把這個(gè)域叫做進(jìn)程的“動(dòng)態(tài)優(yōu)先級(jí)”。

nice: 進(jìn)程的“靜態(tài)優(yōu)先級(jí)”,這個(gè)域決定counter 的初值。只有通過(guò)nice(), sched_setparam()系統(tǒng)調(diào)用才能改變進(jìn)程的靜態(tài)優(yōu)先級(jí)。

rt_priority: 實(shí)時(shí)進(jìn)程的優(yōu)先級(jí)

policy: 從整體上區(qū)分實(shí)時(shí)進(jìn)程和普通進(jìn)程,因?yàn)閷?shí)時(shí)進(jìn)程和普通進(jìn)程的調(diào)度是不同的,它們兩者之間,實(shí)時(shí)進(jìn)程應(yīng)該先于普通進(jìn)程而運(yùn)行,可以通過(guò)系統(tǒng)調(diào)用sched_setscheduler( )來(lái)改變調(diào)度的策略。對(duì)于同一類型的不同進(jìn)程,采用不同的標(biāo)準(zhǔn)來(lái)選擇進(jìn)程。對(duì)于普通進(jìn)程,選擇進(jìn)程的主要依據(jù)為counter和nice 。對(duì)于實(shí)時(shí)進(jìn)程,Linux采用了兩種調(diào)度策略,即FIFO(先來(lái)先服務(wù)調(diào)度)和RR(時(shí)間片輪轉(zhuǎn)調(diào)度)。因?yàn)閷?shí)時(shí)進(jìn)程具有一定程度的緊迫性,所以衡量一個(gè)實(shí)時(shí)進(jìn)程是否應(yīng)該運(yùn)行,Linux采用了一個(gè)比較固定的標(biāo)準(zhǔn)。實(shí)時(shí)進(jìn)程的counter只是用來(lái)表示該進(jìn)程的剩余滴答數(shù),并不作為衡量它是否值得運(yùn)行的標(biāo)準(zhǔn),這和普通進(jìn)程是有區(qū)別的。

3.4 進(jìn)程可運(yùn)行程度的衡量

函數(shù)goodness()就是用來(lái)衡量一個(gè)處于可運(yùn)行狀態(tài)的進(jìn)程值得運(yùn)行的程度。該函數(shù)綜合使用了上面我們提到的五項(xiàng),給每個(gè)處于可運(yùn)行狀態(tài)的進(jìn)程賦予一個(gè)權(quán)值(weight),調(diào)度程序以這個(gè)權(quán)值作為選擇進(jìn)程的唯一依據(jù)。函數(shù)主體如下:

static inline int goodness(struct task_struct * p, int this_cpu, struct mm_struct *this_mm)

{     int weight;     /* 權(quán)值,作為衡量進(jìn)程是否運(yùn)行的唯一依據(jù) *

weight=-1;

if (p->policy&SCHED_YIELD)

goto out; /*如果該進(jìn)程愿意“禮讓(yield)”,則讓其權(quán)值為-1 */

switch(p->policy)

{

/* 實(shí)時(shí)進(jìn)程*/

case SCHED_FIFO:

case SCHED_RR:

weight = 1000 + p->rt_priority;

/* 普通進(jìn)程 */

case SCHED_OTHER:

{     weight = p->counter;

if(!weight)

goto out

/* 做細(xì)微的調(diào)整*/

if (p->mm=this_mm||!p->mm)

weight = weight+1;

weight+=20-p->nice;       /*在剩余counter一樣的情況下,短進(jìn)程優(yōu)先*/

}

}

out:

return weight;   /*返回權(quán)值*/

}

其中,在sched.h中對(duì)調(diào)度策略定義如下:

#define SCHED_OTHER             0

#define SCHED_FIFO              1

#define SCHED_RR                2

#define SCHED_YIELD             0x10

這個(gè)函數(shù)比較很簡(jiǎn)單。首先,根據(jù)policy區(qū)分實(shí)時(shí)進(jìn)程和普通進(jìn)程。實(shí)時(shí)進(jìn)程的權(quán)值取決于其實(shí)時(shí)優(yōu)先級(jí),其至少是1000,與conter和nice無(wú)關(guān)。普通進(jìn)程的權(quán)值需特別說(shuō)明兩點(diǎn):

為什么進(jìn)行細(xì)微的調(diào)整?如果p->mm為空,則意味著該進(jìn)程無(wú)用戶空間(例如內(nèi)核線程),則無(wú)需切換到用戶空間。如果p->mm=this_mm,則說(shuō)明該進(jìn)程的用戶空間就是當(dāng)前進(jìn)程的用戶空間,該進(jìn)程完全有可能再次得到運(yùn)行。對(duì)于以上兩種情況,都給其權(quán)值加1,算是對(duì)它們小小的獎(jiǎng)勵(lì)。

進(jìn)程的優(yōu)先級(jí)nice是從早期Unix沿用下來(lái)的負(fù)向優(yōu)先級(jí),其數(shù)值標(biāo)志“謙讓”的程度,其值越大,就表示其越“謙讓”,也就是優(yōu)先級(jí)越低,其取值范圍為-20~+19,因此,(20-p->nice)的取值范圍就是0~40。可以看出,普通進(jìn)程的權(quán)值不僅考慮了其剩余的時(shí)間片,還考慮了其優(yōu)先級(jí),優(yōu)先級(jí)越高,其權(quán)值越大。

根據(jù)進(jìn)程調(diào)度的依據(jù),調(diào)度程序就可以控制系統(tǒng)中的所有處于可運(yùn)行狀態(tài)的進(jìn)程并在它們之間進(jìn)行選擇。
 

【編輯推薦】

  1. 深入分析Linux內(nèi)核源碼-進(jìn)程調(diào)度(1)
  2. Linux下用gdb檢測(cè)內(nèi)核rootkit的方法
  3. Linux內(nèi)核中的DeviceMapper機(jī)制
責(zé)任編輯:趙寧寧 來(lái)源: chinaitlab
相關(guān)推薦

2009-12-11 09:42:54

Linux內(nèi)核源碼進(jìn)程調(diào)度

2021-12-15 15:03:51

Linux內(nèi)核調(diào)度

2010-03-08 14:53:48

Linux分區(qū)

2025-06-16 05:10:00

2009-07-03 11:14:57

2023-05-08 12:03:14

Linux內(nèi)核進(jìn)程

2010-09-07 14:21:22

PPPoE協(xié)議

2022-04-12 08:30:45

TomcatWeb 應(yīng)用Servlet

2011-03-23 11:01:55

LAMP 架構(gòu)

2017-01-15 22:51:16

2012-05-14 14:09:53

Linux內(nèi)核調(diào)度系統(tǒng)

2020-11-12 18:08:05

JavaLinux多線程

2023-02-01 08:13:30

Redis內(nèi)存碎片

2011-09-01 13:51:52

JavaScript

2025-09-16 10:57:31

2009-06-10 18:12:38

Equinox動(dòng)態(tài)化OSGi動(dòng)態(tài)化

2021-10-29 16:36:53

AMSAndroidActivityMan

2022-08-30 07:00:18

執(zhí)行引擎Hotspot虛擬機(jī)

2009-12-16 16:39:01

Visual Stud

2009-12-14 14:50:46

Ruby傳參數(shù)
點(diǎn)贊
收藏

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

久久久久久久久久久久久久久久av| 日韩精品在线观看网站| 永久免费网站视频在线观看| www.com在线观看| 精品91在线| 亚洲老头同性xxxxx| 亚洲五月天综合| av免费在线观| www.在线成人| 国产精品免费网站| 欧美成欧美va| 一区二区三区视频免费观看| 欧美日韩成人一区| 亚洲精品天堂成人片av在线播放| 无码精品视频一区二区三区| 男人的天堂久久精品| 九色精品美女在线| 噜噜噜在线视频| 欧洲精品久久久久毛片完整版| 亚洲资源在线观看| 日韩在线电影一区| 韩国av永久免费| 美女mm1313爽爽久久久蜜臀| 久久久久久午夜| 激情高潮到大叫狂喷水| 天美av一区二区三区久久| 在线不卡a资源高清| av观看免费在线| 18video性欧美19sex高清| 国产精品乱码人人做人人爱| 狠狠色噜噜狠狠色综合久| 国产伦精品一区二区三区视频痴汉| 日韩午夜av在线| 久久99久久99精品中文字幕| 黄色一级片一级片| 国产一区不卡| 日韩电影中文字幕| av漫画在线观看| 日韩精品中文字幕一区二区| 欧美视频在线观看一区| 国产男女无遮挡| 玖玖在线播放| 亚洲成年人网站在线观看| 99中文字幕在线观看| 暖暖日本在线观看| 欧美激情一区二区三区在线| 欧美日韩在线高清| 亚洲aaaaaaa| 99久久精品免费看| 国产一区二区不卡视频在线观看| 国产99久一区二区三区a片| 日本成人中文字幕| 欧亚精品中文字幕| 永久免费看片在线播放| 国产精品观看| 欧美成人精品三级在线观看| 美国一级片在线观看| 精品国产91久久久久久浪潮蜜月| 亚洲精品福利视频| 国产婷婷在线观看| 国产精品白浆| 欧美日本不卡视频| 久草青青在线观看| 最近高清中文在线字幕在线观看1| 精品国产999| 5月婷婷6月丁香| gay欧美网站| 欧美性猛交视频| 天天影视综合色| abab456成人免费网址| 色婷婷综合久久久久中文| 波多野结衣50连登视频| 免费网站在线观看人| 亚洲一区视频在线| www.av毛片| 免费污视频在线| 欧美色另类天堂2015| 欧美一级在线看| 筱崎爱全乳无删减在线观看| 欧美日韩在线视频首页| 逼特逼视频在线| 久久久成人av毛片免费观看| 91国产视频在线观看| 熟女少妇精品一区二区| 亚洲一区导航| 日韩欧美的一区二区| 国产情侣久久久久aⅴ免费| 精品国产18久久久久久洗澡| 亚洲精品久久久久中文字幕欢迎你 | 亚洲视频免费观看| 在线日韩av永久免费观看| 黑人与亚洲人色ⅹvideos | 麻豆av一区| 青青草免费在线| 国产精品天天看| a级网站在线观看| xxx.xxx欧美| 色综合天天综合网天天狠天天| av视屏在线播放| 精品久久亚洲| 亚洲国产精品va在线看黑人动漫| 性色av蜜臀av色欲av| 国产99亚洲| 欧美成人午夜激情| 少妇一级淫片免费放中国| 日韩成人午夜电影| 99久久精品免费看国产一区二区三区| 欧美一级一区二区三区| 久久嫩草精品久久久久| 日韩视频在线观看视频| 91九色在线播放| 欧美午夜精品久久久| 一卡二卡三卡四卡五卡| 亚洲人和日本人hd| 国产性色av一区二区| 久久久久久久九九九九| 天堂在线一区二区| 国产有码一区二区| 性感美女视频一二三| 136国产福利精品导航| 黄页免费在线观看视频| 久久亚洲精品人成综合网| 精品少妇一区二区三区在线播放| 无码 人妻 在线 视频| 午夜日韩激情| 国产精品久久久久久久久影视 | 成人高清免费在线| 色综合中文综合网| 精品国产aⅴ一区二区三区东京热| 国产精品一国产精品| 成年人精品视频| 在线观看免费视频a| 91丨porny丨在线| 精品久久久无码人妻字幂| 成人亚洲视频| 亚洲欧美一区二区三区久久 | 五月婷婷另类国产| 中文字幕55页| 青青草综合网| 欧洲s码亚洲m码精品一区| 日韩中文字幕影院| 亚洲精品国产一区二区精华液 | 国产成人jvid在线播放| 国产精品福利电影| 久久综合久久久久88| 国产卡一卡二在线| 精品乱码一区二区三区四区| 亚洲欧美成人一区二区在线电影| 国产极品美女高潮无套嗷嗷叫酒店| 精品一区二区在线免费观看| 色就是色欧美| 午夜精品久久久久久久久久蜜桃| 亚洲精品xxxx| 日韩成人一区二区三区| 国产suv一区二区三区88区| 国产一二三四五| 久久精品黄色| 色偷偷av亚洲男人的天堂| 波多野结衣人妻| 久久精品人人做| 国产精品-区区久久久狼| 精品福利一区| 成人av网在线| 亚洲综合av影视| 成人性生交大片免费看午夜| 欧美影院精品一区| 欧美激情 一区| 日本大胆欧美人术艺术动态| 欧美色欧美亚洲另类七区| 午夜影视一区二区三区| 精品小视频在线| 日本中文字幕在线| 国产亚洲一区字幕| 韩国视频一区二区三区| 伊人久久大香线蕉无限次| 国产精品一区二区电影| 在线免费看a| 欧美一区二区三区在线观看 | 这里只有精品国产| 国产精品女人毛片| 天天操精品视频| 欧美视频久久| 久久99精品久久久水蜜桃| 国产精品迅雷| 北条麻妃一区二区三区中文字幕 | 欧美日韩精品久久| 成人网ww555视频免费看| 色噜噜亚洲精品中文字幕| 国产一区二区波多野结衣| 亚洲老妇xxxxxx| 国产精品无码电影| 日韩精品电影在线| 在线看成人av电影| 成人激情久久| 国内精品小视频| 秋霞av在线| 欧美精品久久天天躁| 欧美激情精品久久| 91亚洲午夜精品久久久久久| 狠狠热免费视频| 欧美在线网址| 久久久精品动漫| 国产成人福利夜色影视| 久久精品视频亚洲| 无码国产色欲xxxx视频| 欧美日韩精品是欧美日韩精品| 亚洲色婷婷一区二区三区| 99久久99久久精品国产片果冻| 午夜免费一区二区| 精品91在线| 亚洲欧洲精品一区| 美女视频亚洲色图| 国产成人精品在线播放| 国产亚av手机在线观看| 国产一区二区三区视频在线观看 | 国产精品电影| 精品国产一区二区三区四区在线观看 | 有坂深雪av一区二区精品| 亚洲色图14p| 国产中文一区二区三区| 亚洲午夜无码av毛片久久| 一区二区电影在线观看| 奇米视频888战线精品播放| www.神马久久| 成人网中文字幕| 韩日成人影院| 久久久久国产精品www| 最新国产在线观看| 日韩高清有码在线| 国内精品久久久久久久久久| 欧美婷婷六月丁香综合色| 日韩欧美三级视频| 亚洲欧洲成人自拍| 鲁丝一区二区三区| 99久久综合精品| 日本人dh亚洲人ⅹxx| 蜜桃av噜噜一区二区三区小说| 无码专区aaaaaa免费视频| 亚洲国产日韩欧美在线| 日韩区国产区| 啪啪激情综合网| 久久久精品有限公司| 成功精品影院| 国产高清一区二区三区| 91精品国产色综合久久不卡粉嫩| 国产成人午夜视频网址| 忘忧草在线影院两性视频| 久久全国免费视频| 先锋影音在线资源站91| 一本色道久久88综合亚洲精品ⅰ | 日韩三区在线| 青青青国产精品一区二区| aa国产成人| 久久久久久久久国产| 爱久久·www| 中文字幕在线观看亚洲| 四虎精品在永久在线观看| 亚洲第一av在线| 日本高清视频免费观看| 精品国内片67194| 国产精品视频a| 色噜噜偷拍精品综合在线| 亚洲午夜无码久久久久| 欧洲日韩一区二区三区| 最好看的日本字幕mv视频大全 | 日韩成人xxxx| 色网站免费观看| 亚洲香蕉成视频在线观看| 国产特黄在线| 久久中文字幕国产| 91cn在线观看| 69久久夜色精品国产7777| 中文字幕在线中文字幕在线中三区| 欧美在线观看网址综合| 欧美日韩五码| 91青草视频久久| 伊人久久噜噜噜躁狠狠躁| 国产福利一区二区三区在线观看| 成人在线视频中文字幕| 日韩一本精品| 91精品高清| 久草视频国产在线| 午夜在线精品偷拍| 久久久精品三级| 国产做a爰片久久毛片| japan高清日本乱xxxxx| 91在线精品一区二区| 欧美大波大乳巨大乳| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 日韩精品一区二区亚洲av| 91福利视频在线| 国产免费一区二区三区最新不卡| 日韩欧美亚洲国产另类| 神马午夜在线观看| 亚洲欧美在线一区二区| 美女隐私在线观看| 久久免费视频这里只有精品| 日韩大陆av| 国产午夜精品在线| 少妇精品久久久一区二区| 中国成人在线视频| 欧美另类专区| 男人女人黄一级| 国产成人午夜精品影院观看视频| 亚洲国产精品狼友在线观看| 国产精品免费视频观看| 成人免费毛片xxx| 亚洲成a人v欧美综合天堂| www成人在线| 在线不卡中文字幕| 无码精品人妻一区二区三区影院| 精品精品国产国产自在线| 91破解版在线观看| 国产专区欧美专区| 日韩精选在线| 国产福利片一区二区| 99国产精品久久久久久久成人热 | 日韩成年人视频| 777午夜精品免费视频| 亚洲免费一级片| 操91在线视频| 久久国内精品| 欧美日韩国产一二| 亚洲黄色在线| 日韩视频在线观看一区二区三区| xfplay精品久久| 九九精品视频免费| 欧美日韩综合在线| 亚洲人妻一区二区| 欧美成人性生活| 亚洲三级电影| 日韩一区二区电影在线观看| 亚洲激情亚洲| 邪恶网站在线观看| 国产日产欧美一区二区视频| 日本五十路女优| 欧美一级片在线看| 麻豆免费在线视频| 国产精品入口尤物| 首页亚洲中字| 人妻夜夜添夜夜无码av| 国产一区欧美一区| 国产成人在线网址| 欧美亚洲愉拍一区二区| 久久电影视频| 97在线视频免费播放| 亚洲国产精品免费视频| 99精品视频网站| 久久精品国产精品亚洲精品| a级在线免费观看| 一本大道综合伊人精品热热| 蜜桃视频在线免费| 2019中文字幕免费视频| 牛牛精品成人免费视频| 国产精品裸体瑜伽视频| 国产成人精品三级| 中文字幕av免费在线观看| 欧美三级日韩在线| 免费a级人成a大片在线观看| 国产在线a不卡| 围产精品久久久久久久 | 国产高清不卡一区| 中文字幕手机在线观看| 日韩精品一区二| 国产精品论坛| 久久伊人一区二区| 销魂美女一区二区三区视频在线| 欧美xxxx×黑人性爽| 五月综合激情网| 蜜桃免费在线| 国产91亚洲精品| 婷婷综合五月| 无码人妻一区二区三区免费n鬼沢| 一区二区日韩电影| 色噜噜一区二区三区| 欧洲精品毛片网站| 久久精品国产99久久| 中文字幕日韩久久| 一区二区三区国产豹纹内裤在线 | 亚洲精品一区二区三区香蕉 | 欧美有码在线| 欧美日韩精品在线一区二区| 久久午夜免费电影| 中文字幕在线观看精品| 久久亚洲一区二区三区四区五区高 | 久久久久久久久蜜桃| 超碰在线免费97| 麻豆国产精品va在线观看不卡| 风间由美性色一区二区三区四区 | 成人欧美大片| 亚洲一区二区三区加勒比| 国产黄色精品视频| 九一国产在线观看| 中文字幕日韩欧美在线| 精品一区二区三区免费看| 国产高清www| 国产欧美精品一区| 亚洲精品国产一区二| 97激碰免费视频| 亚洲第一偷拍|