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

深入分析Linux內核源碼-進程調度(1)

系統 Linux
計算機最基本的時間單元是時鐘周期,例如取指令、執行指令、存取內存等。時間系統是計算機系統非常重要的組成部分,特別是對于Unix類分時系統尤為重要。時間系統主要任務是維持系統時間并且防止某個進程獨占CPU及其他資源,也就是驅動進程的調度。

1 Linux時間系統

計算機最基本的時間單元是時鐘周期,例如取指令、執行指令、存取內存等。時間系統是計算機系統非常重要的組成部分,特別是對于Unix類分時系統尤為重要。時間系統主要任務是維持系統時間并且防止某個進程獨占CPU及其他資源,也就是驅動進程的調度。

1.1 時鐘硬件

大部分PC機中有兩個時鐘源,他們分別叫做RTC和OS(操作系統)時鐘。RTC(Real Time Clock,實時時鐘)也叫做CMOS時鐘,它是PC主機板上的一塊芯片,它靠電池供電,即使系統斷電,也可以維持日期和時間。由于它獨立于操作系統,所以也被稱為硬件時鐘,它為整個計算機提供一個計時標準,是最原始***層的時鐘數據。

Linux只用RTC來獲得時間和日期;然而,通過作用于/dev/rtc設備文件,也允許進程對RTC編程。通過執行/sbin/clock系統程序,系統管理員可以配置時鐘。

OS時鐘產生于PC主板上的定時/計數芯片,由操作系統控制這個芯片的工作,OS時鐘的基本單位就是該芯片的計數周期。在開機時操作系統取得RTC中的時間數據來初始化OS時鐘,然后通過計數芯片的向下計數形成了OS時鐘,它更應該被稱為一個計數器。OS時鐘只在開機時才有效,而且完全由操作系統控制,所以也被稱為軟時鐘或系統時鐘。下面我們重點描述OS時鐘的產生。

OS時鐘輸出脈沖信號,接到中斷控制器上,產生中斷信號,觸發后面要講的時鐘中斷,由時鐘中斷服務程序維持OS時鐘的正常工作。

1.2 時鐘運作機制

RTC和OS時鐘之間的關系通常也被稱作操作系統的時鐘運作機制。一般來說,RTC是OS時鐘的時間基準,操作系統通過讀取RTC來初始化OS時鐘,此后二者保持同步運行,共同維持著系統時間。保持同步運行是什么意思呢?就是指操作系統運行過程中,每隔一個固定時間會刷新或校正RTC中的信息。

圖2 時鐘運作機制

我們可以看到,RTC處于***層,提供最原始的時鐘數據。OS時鐘建立在RTC之上,初始化完成后將完全由操作系統控制,和RTC脫離關系。操作系統通過OS時鐘提供給應用程序所有和時間有關的服務。

1.3 Linux時間基準

以上我們了解了RTC(實時時鐘、硬件時鐘)和OS時鐘(系統時鐘、軟時鐘)。下面我們具體描述OS時鐘。OS時鐘是由可編程定時/計數器產生的輸出脈沖觸發中斷而產生的。輸出脈沖的周期叫做一個“時鐘滴答”。計算機中的時間是以時鐘滴答為單位的,每一次時鐘滴答,系統時間就會加1。操作系統根據當前時鐘滴答的數目就可以得到以秒或毫秒等為單位的其他時間格式。

定義“時間基準”的目的是為了簡化計算,這樣計算機中的時間只要表示為從這個時間基準開始的時鐘滴答數就可以了。“時間基準是由操作系統的設計者規定的。例如DOS的時間基準是1980年1月1日,Unix的時間基準是1970年1月1日上午12點,Linux的時間基準是1970年1月1日凌晨0點。

1.4 Linux的時間系統

OS時鐘記錄的時間也就是通常所說的系統時間。系統時間是以“時鐘滴答”為單位的,而時鐘中斷的頻率決定了一個時鐘滴答的長短,例如每秒有100次時鐘中斷,那么一個時鐘滴答的就是10毫秒(記為10ms),相應地,系統時間就會每10ms增1。

Linux中用全局變量jiffies表示系統自啟動以來的時鐘滴答數目。在/kernel/time.c中定義如下:

unsigned long volatile jiffies

在jiffies基礎上,Linux提供了如下適合人們習慣的時間格式,在/include/linux/time.h中定義如下:

struct timespec {/* 這是精度很高的表示*/

long tv_sec; /* 秒 (second) */

long tv_nsec;  /* 納秒:十億分之一秒( nanosecond)*/

};

struct timeval {/* 普通精度*/

int tv_sec; /* 秒*/

int tv_usec;  /* 微秒:百萬分之一秒(microsecond)*/

};

struct timezone {/* 時區 */

int tz_minuteswest;/* 格林尼治時間往西方的時差 */

int tz_dsttime;/* 時間修正方式 */

};

tv_sec表示秒(second),tv_usec表示微秒(microsecond),tv_nsec表示納秒(nanosecond)。定義tb_usec和tv_nsec的目的是為了適用不同的使用要求,不同的場合根據對時間精度的要求選用這兩種表示。另外,Linux還定義了用于表示更加符合大眾習慣的時間表示:年、月、日。但是萬變不離其宗,所有的時間應用都是建立在jiffies基礎之上的。簡而言之,jiffies產生于時鐘中斷!

2 時鐘中斷

#p#

2.1 時鐘中斷的產生

“時鐘中斷”是特別重要的一個中斷,因為整個操作系統的活動都受到它的激勵。系統利用時鐘中斷維持系統時間、促使環境的切換,以保證所有進程共享CPU;利用時鐘中斷進行記帳、監督系統工作以及確定未來的調度優先級等工作。可以說,“時鐘中斷”是整個操作系統的脈搏。

時鐘中斷的物理產生如圖3所示:

圖3 8253和8259A的物理連接方式

脈沖信號接到中斷控制器8259A_1的0號管腳,觸發一個周期性的中斷,我們就把這個中斷叫做時鐘中斷,時鐘中斷的周期,也就是脈沖信號的周期,我們叫做“滴答”或“時標”(tick)。從本質上說,時鐘中斷只是一個周期性的信號,完全是硬件行為,該信號觸發CPU去執行一個中斷服務程序,我們就把這個服務程序叫做時鐘中斷。

2.2.Linux實現時鐘中斷的全過程

1. 和時鐘中斷相關的函數

下面我們看時鐘中斷觸發的服務程序,該程序代碼比較復雜,分布在不同的源文件中,主要包括如下函數:

時鐘中斷程序:timer_interrupt( );

中斷服務通用例程do_timer_interrupt();

時鐘函數:do_timer( );

中斷安裝程序:setup_irq( );

中斷返回函數:ret_from_intr( );

前三個函數的調用關系如下:

timer_interrupt( )

do_timer_interrupt()

do_timer( )

(1) timer_interrupt( )

這個函數大約每10ms被調用一次,實際上, timer_interrupt( )函數是一個封裝例程,它真正做的事情并不多,該函數主要語句就是調用do_timer_interrupt()函數。

(2) do_timer_interrupt()

do_timer_interrupt()函數有兩個主要任務,一個是調用do_timer( ),另一個是維持實時時鐘(RTC,每隔一定時間段要回寫),其實現代碼在/arch/i386/kernel/time.c中, 為了突出主題,筆者對以下函數作了改寫,以便于讀者理解:

static inline void do_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)

{

do_timer(regs); /* 調用時鐘函數,將時鐘函數等同于時鐘中斷未嘗不可*/

if(xtime.tv_sec > last_rtc_update + 660)

update_RTC();

/*每隔11分鐘就更新RTC中的時間信息,以使OS時鐘和RTC時鐘保持同步,11分鐘即660秒,xtime.tv_sec的單位是秒,last_rtc_update記錄的是上次RTC更新時的值 */

}

其中,xtime是前面所提到的timeval類型,這是一個全局變量。

(3) 時鐘函數do_timer() (在/kernel/sched.c中)

void do_timer(struct pt_regs * regs)

{

(*(unsigned long *)&jiffies)++; /*更新系統時間,這種寫法保證對jiffies操作的原子性*/

update_process_times();

++lost_ticks;

if( ! user_mode ( regs ) )

++lost_ticks_system;

mark_bh(TIMER_BH);

if (tq_timer)

mark_bh(TQUEUE_BH);

}

其中,update_process_times()函數與進程調度有關,從函數的名子可以看出,它處理的是與當前進程與時間有關的變量,例如,要更新當前進程的時間片計數器counter,如果counter<=0,則要調用調度程序。

與時間有關的事情很多,不能全都讓這個函數去完成,這是因為這個函數是在關中斷的情況下執行,必須處理完最重要的時間信息后退出,以處理其他事情。那么,與時間相關的其他信息誰去處理,何時處理?這就是由第三章討論的后半部分去去處理。上面timer_interrupt()所做的事情就是上半部分。

(4)中斷安裝程序

從上面的介紹可以看出,時鐘中斷與進程調度密不可分,因此,一旦開始有時鐘中斷就可能要進行調度,在系統進行初始化時,所做的大量工作之一就是對時鐘進行初始化,其函數time_init ()的代碼在/arch/i386/kernel/time.c中,對其簡寫如下:

void __init time_init(void)

{

xtime.tv_sec=get_cmos_time();

xtime.tv_usec=0;

setup_irq(0,&irq0);

}

其中的get_cmos_time()函數就是把當時的實際時間從CMOS時鐘芯片讀入變量xtime中,時間精度為秒。而setup_irq(0,&irq0)就是時鐘中斷安裝函數,那么irq0指的是什么呢,它是一個結構類型irqaction,其定義及初值如下:

static struct irqaction irq0 = { timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL};

setup_irq(0, &irq0)的代碼在/arch/i386/kernel/irq.c中,其主要功能就是將中斷程序連入相應的中斷請求隊列,以等待中斷到來時相應的中斷程序被執行。

我們將有關函數改寫如下,體現時鐘中斷的大意:

do_timer_interrupt( ) /*這是一個偽函數 */

{

SAVE_ALL  /*保存處理機現場 */

intr_count += 1;  /* 這段操作不允許被中斷 */

timer_interrupt() /* 調用時鐘中斷程序 */

intr_count -= 1;

jmp ret_from_intr /* 中斷返回函數 */

}

#p#

其中,jmp ret_from_intr 是一段匯編代碼,也是一個較為復雜的過程,它最終要調用jmp ret_from_sys_call,即系統調用返回函數,而這個函數與進程的調度又密切相關,,因此,我們重點分析jmp ret_from_sys_call。

2.系統調用返回函數:

系統調用返回函數的源代碼在/arch/i386/kernel/entry.S中

ENTRY(ret_from_sys_call)

cli  # need_resched and signals atomic test

cmpl $0,need_resched(%ebx)

jne reschedule

cmpl $0,sigpending(%ebx)

jne signal_return

restore_all:

RESTORE_ALL

ALIGN

signal_return:

sti  # we can get here from an interrupt handler

testl $(VM_MASK),EFLAGS(%esp)

movl %esp,%eax

jne v86_signal_return

xorl %edx,%edx

call SYMBOL_NAME(do_signal)

jmp restore_all

ALIGN

v86_signal_return:

call SYMBOL_NAME(save_v86_state)

movl %eax,%esp

xorl %edx,%edx

call SYMBOL_NAME(do_signal)

jmp restore_all

….

reschedule:

call SYMBOL_NAME(schedule) # test

jmp ret_from_sys_call

這一段匯編代碼就是前面我們所說的“從系統調用返回函數”ret_from_sys_call,它是從中斷、異常及系統調用返回時的通用接口。這段代碼主體就是ret_from_sys_call函數,在此我們列出相關的幾個函數:

(1)ret_from_sys_call:主體

(2)reschedule:檢測是否需要重新調度

(3)signal_return:處理當前進程接收到的信號

(4)v86_signal_return:處理虛擬86模式下當前進程接收到的信號

(5)RESTORE_ALL:我們把這個函數叫做徹底返回函數,因為執行該函數之后,就返回到當前進程的地址空間中去了。

可以看到ret_from_sys_call的主要作用有:

檢測調度標志need_resched,決定是否要執行調度程序;處理當前進程的信號;恢復當前進程的環境使之繼續執行。

最后我們再次從總體上瀏覽一下時鐘中斷:

每個時鐘滴答,時鐘中斷得到執行。時鐘中斷執行的頻率很高:100次/秒,時鐘中斷的主要工作是處理和時間有關的所有信息、決定是否執行調度程序以及處理下半部分。和時間有關的所有信息包括系統時間、進程的時間片、延時、使用CPU的時間、各種定時器,進程更新后的時間片為進程調度提供依據,然后在時鐘中斷返回時決定是否要執行調度程序。下半部分處理程序是Linux提供的一種機制,它使一部分工作推遲執行。
 

【編輯推薦】

  1. 探索Linux內核虛擬機——學習KVM架構及其優點
  2. Linux下用gdb檢測內核rootkit的方法
  3. Linux內核中的DeviceMapper機制
責任編輯:趙寧寧 來源: chinaitlab
相關推薦

2009-12-11 09:47:23

Linux內核源碼進程調度

2021-12-15 15:03:51

Linux內核調度

2010-03-08 14:53:48

Linux分區

2025-06-16 05:10:00

2009-07-03 11:14:57

2023-05-08 12:03:14

Linux內核進程

2010-09-07 14:21:22

PPPoE協議

2022-04-12 08:30:45

TomcatWeb 應用Servlet

2011-03-23 11:01:55

LAMP 架構

2017-01-15 22:51:16

2012-05-14 14:09:53

Linux內核調度系統

2020-11-12 18:08:05

JavaLinux多線程

2023-02-01 08:13:30

Redis內存碎片

2011-09-01 13:51:52

JavaScript

2025-09-16 10:57:31

2009-12-14 14:50:46

Ruby傳參數

2021-10-29 16:36:53

AMSAndroidActivityMan

2009-12-16 16:39:01

Visual Stud

2009-06-10 18:12:38

Equinox動態化OSGi動態化

2022-08-30 07:00:18

執行引擎Hotspot虛擬機
點贊
收藏

51CTO技術棧公眾號

欧美激情视频一区二区三区在线播放 | 免费黄色片网站| 爱看av在线入口| 久久蜜桃香蕉精品一区二区三区| 国产精品男女猛烈高潮激情| 538精品在线观看| 首页亚洲中字| 宅男在线国产精品| xxxx18hd亚洲hd捆绑| 国产区在线视频| 国产成人午夜精品5599 | 亚洲欧美日韩国产手机在线| 久久香蕉国产线看观看av| 波多野结衣三级视频| 午夜影院在线观看国产主播| 中文字幕一区二区三区色视频| 国产成人亚洲欧美| 中文字幕欧美人妻精品| 在线日韩电影| 久久精品中文字幕| mm131美女视频| 日韩精品免费视频一区二区三区 | 日本毛片在线观看| 青青青手机在线视频| 精品三区视频| 亚洲18色成人| avove在线观看| 国产一级片在线| 成人av在线影院| 91在线视频精品| 特级西西444www大胆免费看| 中文在线不卡| 久久久久久久亚洲精品| 永久看片925tv| 91欧美国产| 正在播放欧美一区| 久久国产柳州莫菁门| 性欧美lx╳lx╳| 亚洲福利视频二区| 18深夜在线观看免费视频| 激情久久99| 欧美午夜不卡在线观看免费| 成人在线观看黄| 中文字幕影音在线| 欧美日韩国产黄| 国产日韩欧美综合精品 | 法国伦理少妇愉情| 国产精品99久久久久久人| 久久精品一区二| 日本中文字幕中出在线| 中文字幕的久久| 久久久一本精品99久久精品| 亚洲风情第一页| 国内一区二区在线| 国产精品亚洲一区二区三区| 亚洲AV无码成人精品区东京热| 老女人性生活视频| 欧美办公室脚交xxxx| 亚洲欧洲综合另类| 五月天久久狠狠| 国产特黄在线| 国产亚洲成av人在线观看导航| 精品国产一区二区三区日日嗨| 国产77777| 成人深夜视频在线观看| 国产精品久久久久久久久久久久冷| 国产精品一区二区av白丝下载| 久久er99精品| 亚洲自拍偷拍视频| 亚洲大尺度视频| 国产成人免费视频网站 | 亚洲黄色激情视频| 亚洲一区日韩| 日韩av电影在线免费播放| 国产午夜精品无码| 在线欧美福利| 欧美一级视频一区二区| 国产精品乱码一区二区视频| 日本成人在线一区| 国产自产女人91一区在线观看| 亚洲综合视频在线播放| 五月婷婷久久久| 狠狠爱www人成狠狠爱综合网| 欧美麻豆久久久久久中文| 动漫性做爰视频| 韩日在线一区| 欧美最顶级的aⅴ艳星| 久久国产乱子伦精品| 麻豆精品国产传媒mv男同| 国产日韩在线一区| www.色呦呦| 99久久er热在这里只有精品15 | 性猛交xxxx乱大交孕妇印度| 成人黄色av网站在线| 久久精品99久久| av网站无病毒在线| 亚洲综合激情另类小说区| 一二三四视频社区在线| 经典三级一区二区| 91精品免费观看| 噜噜噜在线视频| 婷婷综合激情| 88国产精品欧美一区二区三区| 六月丁香激情综合| 精品一区二区三区av| 狠狠色综合色区| 日韩三级影院| 午夜精品久久久久久久99樱桃| 夜夜揉揉日日人人青青一国产精品| 亚洲理论电影在线观看| 正在播放日韩精品| 国产精品25p| 亚洲国产精品久久不卡毛片| 色婷婷综合久久久久中文字幕| www欧美在线观看| 国产网站欧美日韩免费精品在线观看 | 精品一区二区三区视频 | 国产天堂视频在线观看| 日本免费一区二区三区四区| 69久久夜色精品国产69蝌蚪网| 亚洲天堂成人av| 我不卡手机影院| 欧美亚洲一级片| 精品欧美在线观看| 国产精品国产三级国产aⅴ原创| 精品少妇人妻av免费久久洗澡| 巨大黑人极品videos精品| 日韩第一页在线| 国产免费无码一区二区视频| 日韩中文字幕av电影| 国产精品永久入口久久久| 在线看的av网站| 色女孩综合影院| 亚洲av成人无码一二三在线观看| 欧美久久影院| 精品国产制服丝袜高跟| 久久久久久久久一区| 黄色网址在线免费播放| 色婷婷av一区二区| 亚洲视频在线播放免费| 一区二区三区在线| 国产精品久久久久秋霞鲁丝| 视频在线观看你懂的| 亚洲三级在线看| 日韩在线第三页| 日韩最新在线| 国内伊人久久久久久网站视频 | 色七七在线观看| 国产亚洲久久| 中文字幕欧美精品在线 | 欧美人与性动xxxx| 国产91丝袜美女在线播放| 麻豆成人精品| 欧美精品v日韩精品v国产精品| 18video性欧美19sex高清| 日韩精品最新网址| 国产一二三区精品| 久久婷婷国产综合国色天香| 日本精品视频在线观看| 国产成人手机在线| 一区二区三区中文字幕电影 | 日韩国产第一页| 老司机精品久久| 日本一区二区不卡高清更新| 日韩精品永久网址| 国产另类在线| 日韩一级免费观看| 国产在线观看免费视频软件| 日韩在线a电影| 欧美大香线蕉线伊人久久国产精品 | 国模一区二区三区白浆| 伊人久久av导航| 国产精品久久久久久久久久久久久久久 | 五月激情五月婷婷| 天天综合一区| 成人欧美一区二区三区视频xxx| 久草在线视频网站| 亚洲精美色品网站| 中文字幕在线观看视频免费| 中文欧美字幕免费| 8x8x成人免费视频| 国产精品草草| 麻豆精品视频| 久久久久伊人| 欧美国产亚洲视频| 午夜性色福利视频| 亚洲成人第一页| 国内精品卡一卡二卡三| 黄色资源网久久资源365| www插插插无码免费视频网站| 亚洲精品蜜桃乱晃| 成人激情电影一区二区| 嗯啊主人调教在线播放视频 | 亚洲一区二区中文| 日韩欧美精品一区二区三区| 亚洲午夜精品久久久久久久久久久久| 亚洲熟妇无码久久精品| 亚洲综合视频网| 免费av不卡| 在线成人小视频| 久久视频免费看| 久久久美女毛片| 一二三av在线| 波多野结衣电车痴汉| 精品一区二区三区在线观看| avav在线播放| 希岛爱理av免费一区二区| 国产精品永久免费| 波多野结衣精品| 中文字幕欧美精品日韩中文字幕| 亚洲精品福利网站| 在线日韩一区二区| 久久国产免费观看| 久久久.com| 欧美日韩一区二区三区四区五区六区 | 欧美午夜免费电影| 国产免费a级片| 久久国产精品毛片| 男同互操gay射视频在线看| 日韩系列在线| 亚洲一区亚洲二区| av在线播放一区| 久久久久久网站| 污污视频在线| 日韩在线免费高清视频| 色在线免费视频| 精品99久久久久久| wwwwww在线观看| 日韩欧美在线观看| 亚洲日本韩国在线| 亚洲最快最全在线视频| 妖精视频一区二区| 国产不卡视频一区| 色噜噜狠狠一区二区| 一级爱爱免费视频| 亚洲午夜精品一区二区三区他趣| 亚洲高潮女人毛茸茸| 久久婷婷久久一区二区三区| xxxxxx黄色| 床上的激情91.| 极品白嫩少妇无套内谢| 国产一区二区三区在线观看免费| 国产精品区在线| 日韩电影免费在线观看网站| 精品久久久久久久免费人妻| 午夜宅男久久久| 一女被多男玩喷潮视频| 日韩视频一区| 欧美亚洲一二三区| 欧美~级网站不卡| 国产av不卡一区二区| 亚洲啊v在线观看| 艳母动漫在线观看| 99久久亚洲精品蜜臀| 三年中国中文在线观看免费播放| 日本久久黄色| 在线视频精品一区| 欧美电影一区| 中文字幕色一区二区| 99国内精品久久久久久久| 久久综合中文色婷婷| 精品欧美午夜寂寞影院| 欧美精品久久| 波多野结衣一区| 亚洲欧美日韩国产成人综合一二三区| 日韩中文字幕高清在线观看| 一区精品在线| 精品电影一区| 欧美一区二区中文字幕| 播放一区二区| 一本大道久久a久久综合婷婷| 亚欧洲精品在线视频| 亚洲国产精品精华液网站| 日本五十熟hd丰满| 欧美日韩一区二区在线| 无码人妻一区二区三区线| 欧美无砖专区一中文字| 国产又粗又猛又爽| 欧美va在线播放| 亚洲av片在线观看| 国产一区二区三区日韩欧美| 免费人成在线观看播放视频| 裸体女人亚洲精品一区| 亚洲精品一区| 国产美女直播视频一区| 亚洲精品一区二区三区中文字幕| 精品欧美一区二区在线观看视频 | 久久久天天操| 91亚洲精品久久久蜜桃借种| 国产91精品一区二区| 久久精品老司机| 国产精品美女久久久久aⅴ| 久久久精品视频免费观看| 精品国产福利视频| 伊人精品在线视频| 欧美精品一区二区三区蜜桃| 好男人免费精品视频| 久久成人精品电影| 二区三区不卡| 91沈先生播放一区二区| 亚洲日产av中文字幕| 一区二区三区|亚洲午夜| 妖精视频成人观看www| 中文字幕第17页| 北条麻妃国产九九精品视频| 欧美丰满美乳xxⅹ高潮www| 一区二区三区不卡视频 | 91精品国产综合久久久蜜臀图片| 欧性猛交ⅹxxx乱大交| 怡红院精品视频| 国产网红在线观看| 国产精品久久久久久网站 | 欧美亚洲爱爱另类综合| 91探花在线观看| 亚洲特级片在线| 欧美亚韩一区二区三区| 精品视频在线看| 亚洲 美腿 欧美 偷拍| 日韩亚洲国产中文字幕| 在线观看福利电影| 成人国内精品久久久久一区| 亚洲+变态+欧美+另类+精品| 老子影院午夜伦不卡大全| 日韩av电影免费观看高清完整版| 日韩精品人妻中文字幕有码 | 超碰在线97国产| 91精品久久久久久久久| 国产精品视频一区二区三区四蜜臂| www.男人天堂网| 精品一区二区免费看| 中文字幕一区二区三区人妻电影| 一区二区日韩av| 国产精品爽爽久久| 中文字幕视频在线免费欧美日韩综合在线看| 波多野结衣视频一区二区| 亚洲综合自拍一区| 欧美超碰在线| 99精品视频播放| 久久久.com| 蜜臀尤物一区二区三区直播| 日韩精品视频免费| а√天堂资源官网在线资源| 不卡日韩av| 中文字幕一区二区三区乱码图片 | 欧美日韩成人免费观看| 91麻豆精品国产91久久久久久久久| 国产视频网站在线| 国产97在线观看| 人妻无码一区二区三区久久99 | 99热99热| 欧美日韩91| 伊人影院在线观看视频| 一区二区三区在线视频播放| 国产女人18毛片水真多| 久久精品电影网站| 欧美天堂一区| 亚洲人体一区| 九九国产精品视频| www日韩在线| 日韩你懂的在线播放| 午夜伦理在线视频| www.成人三级视频| 欧美成人首页| 你懂的在线观看网站| 午夜不卡av在线| 亚洲三级黄色片| 国产精品va在线播放| 欧美日韩伦理在线免费| 天天色综合社区| 国产精品高潮呻吟久久| 性一交一乱一色一视频麻豆| 欧美精品久久久久a| 久久久久97| 免费激情视频在线观看| 国产精品蜜臀av| 国产99对白在线播放| 欧美大奶子在线| 另类ts人妖一区二区三区| 少妇高清精品毛片在线视频 | 涩涩视频在线播放| 欧美性大战久久久久| 美女高潮久久久| 久久久久久久久久久久久久久久久 | 97公开免费视频| 亚洲欧美日韩精品久久久久| av小说天堂网| 国内揄拍国内精品少妇国语| 国产伦精品一区二区三区视频| 中文字幕av不卡在线| 亚洲观看高清完整版在线观看| 日本福利午夜视频在线| 国产精品久久久久av免费| 一区二区中文字| aaaaa一级片| 7777精品伊人久久久大香线蕉完整版 | 日韩电影免费观| 四虎4hu永久免费入口| 久久综合九色综合欧美98| 一区二区视频网站| 美日韩精品视频免费看|