久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4298|回復(fù): 1
收起左側(cè)

ucos-同步與通信 簡介

[復(fù)制鏈接]
ID:114320 發(fā)表于 2016-5-10 01:19 | 顯示全部樓層 |閱讀模式
      
第五節(jié):同步與通信
一:同步
任務(wù)之間有各種各樣的關(guān)系來完成一個(gè)工作,有時(shí)候,一個(gè)任務(wù)的完成的齊納提需要另外一個(gè)任務(wù)給出的結(jié)果,任務(wù)之間的這種制約性的合作運(yùn)行機(jī)制叫做任務(wù)間的同步。
總例:
A任務(wù)實(shí)現(xiàn)計(jì)算功能,B任務(wù)輸出A任務(wù)計(jì)算的結(jié)果,然后循環(huán)運(yùn)行。A任務(wù)和B任務(wù)就必須同步,否則B任務(wù)輸出的可能不是A任務(wù)剛完成的結(jié)果,或則B任務(wù)訪問結(jié)果時(shí),A任務(wù)正在修改,因而輸出錯(cuò)誤的結(jié)果。A和B就是必須進(jìn)行同步的任務(wù)。
二:互斥:
例中,A,B任務(wù)都要訪問計(jì)算結(jié)果這個(gè)共享資源,當(dāng)時(shí)在A寫這個(gè)資源的同事,B必須等待,而不能再A寫到一半時(shí)候結(jié)束A而讓B來讀。這樣的共享資源成為臨界資源,這種訪問共享資源的排他性就是互斥。
臨界資源可以是全局變量,也可以是指針,緩沖區(qū)或鏈表等其他數(shù)據(jù)結(jié)構(gòu),也可以是打印機(jī),硬盤等硬件。
互斥訪問臨界資源,操作系統(tǒng)有很多方法, ucos采用的方法有  關(guān)中斷,給調(diào)度器上鎖 和使用信號量等(但是,操作共享資源的時(shí)候都要進(jìn)去臨界區(qū))
三:臨界區(qū)
每個(gè)任務(wù)中訪問共享資源的那段程序成為臨界區(qū),因?yàn)楣蚕碣Y源的訪問是要互斥的。
因?yàn)槿绻谠L問共享資源的時(shí)候進(jìn)行任務(wù)切換,就可能導(dǎo)致災(zāi)難性后果,在臨界區(qū)不允許任務(wù)切換,這是最根本的原則。----臨界區(qū)代碼要盡量短,能夠盡量在限定時(shí)間之內(nèi)完成。
所以在進(jìn)入臨界臨界區(qū)訪問共享資源之前,采用 關(guān)中斷,、給調(diào)度器上鎖或使用信號量的方法,達(dá)到互斥的目的。
例:
int functionl(int p1)
{
OS_ENTER_CRITICAL();    //進(jìn)入臨界區(qū),不允許任務(wù)切換
訪問臨界區(qū)代碼段    //臨界區(qū)    臨界區(qū)代碼,訪問臨界資源
OS_EXIT_CRITICAL();    //離開臨界區(qū),允許任務(wù)切換
其他代碼          //其他代碼,可以在這些代碼執(zhí)行期間進(jìn)行任務(wù)切換。
}
四:任務(wù)事件:
事件就是在操作系統(tǒng)運(yùn)行過程中發(fā)生的事情。
事件處理就是操作系統(tǒng)處理信號量,互斥信號量,時(shí)間表蜘蛛,郵箱,消息隊(duì)列信息的手段。
例:A任務(wù)寫緩沖區(qū),B任務(wù)讀緩沖區(qū)。什么時(shí)候B任務(wù)應(yīng)該運(yùn)行呢?就是在A任務(wù)寫完緩沖區(qū)這個(gè)事件之后,需要調(diào)用OSSemPost()這樣的函數(shù),釋放緩沖區(qū)資源。
在該函數(shù)中,發(fā)現(xiàn)有任務(wù)B在排隊(duì)等候緩沖區(qū)資源,于是調(diào)用任務(wù)切換函數(shù)將cpu給B,達(dá)到了任務(wù)間的無縫同步。
事件處理的對象主要有:信號量,互斥信號量,時(shí)間表蜘蛛,郵箱,消息隊(duì)列。
信號量,郵箱,消息隊(duì)列是消息的來源。
來消息了是一個(gè)事件,等待消息也是在等待時(shí)間的發(fā)生。
例如:OSSemPost()函數(shù)的功能就是執(zhí)行的發(fā)信號量操作。
五:信號量:
信號量標(biāo)識了共享資源的有效被訪問數(shù)量,于是要獲得共享資源的訪問權(quán),就首先要得到信號量。   
使用信號量管理共享資源,請求訪問資源就演變成為請求信號量了。
(因?yàn)橘Y源是具體的東西,把他數(shù)字化之后,操作系統(tǒng)就便于管理這些資源)
在ucos中,信號量的取值范圍是16位的二進(jìn)制整數(shù),范圍是十進(jìn)制的0--65535.或者是其他長度,如8位,32位。
簡單使用信號量的3種操作:
1:建立creat
建立并且初始化信號量,在一個(gè)事件中標(biāo)識該信號,記錄該信號的量值。
2:請求pend
請求信號,如果還有信號量,就去請求一個(gè),(信號量--)執(zhí)行下去,如果沒有,就要把自己阻塞掉(不能執(zhí)行下去就不需要占用cpu)
3:釋放post
訪問資源的操作完成之后(信號量++).
例:A,B兩個(gè)任務(wù)通過信號量同步:   過程如下:
首先創(chuàng)建信號量S,因?yàn)樵摼彌_區(qū)本質(zhì)上是全局的一個(gè)數(shù)組,屬于臨界資源,因此設(shè)置信號量的初值為1。另外,該信號量使用一個(gè)事件控制塊。
A任務(wù)請求信號量S,做pend操作(請求)。
因?yàn)樾盘柫縎=1,所以請求得到滿足,pend操作中將S減1變?yōu)?.
任務(wù)A繼續(xù)執(zhí)行,訪問緩沖區(qū)。
任務(wù)A在執(zhí)行過程中因?yàn)槠渌臅r(shí)間而阻塞,任務(wù)B得到運(yùn)行,要訪問緩沖區(qū),因此請求信號量S,做pend操作。
因?yàn)樾盘柫縎=0,請求不能得到滿足,任務(wù)B只能被阻塞。S的值保持為0.
注:但是在信號量S所使用的時(shí)間控制模塊中,標(biāo)記了事件B在等待信號量S的信息。
任務(wù)A在滿足時(shí)繼續(xù)執(zhí)行,訪問緩沖區(qū)完成后,做post操作釋放緩沖區(qū)。
Post操作中將S加1,S的值變?yōu)?.
在post操作中,由于事件控制塊中,標(biāo)記了事件B在等待信號量S的信息,且我們設(shè)置任務(wù)B有更高的優(yōu)先級,操作系統(tǒng)調(diào)用任務(wù)切換函數(shù),切換到任務(wù)B運(yùn)行,使任務(wù)B獲得信號量,訪問A寫好的緩沖區(qū)。
任務(wù)B訪問完成,再釋放該信號量,任務(wù)A又可以訪問該緩沖區(qū)了。
六:互斥信號量:
是一種特殊的信號量(不僅在于該信號量只有用于互斥資源的訪問,還在于使用互斥信號量管理需要解決優(yōu)先級反轉(zhuǎn)問題。)
優(yōu)先級反轉(zhuǎn):
例: 系統(tǒng)中有三個(gè)任務(wù),分別是高優(yōu)先級A、中優(yōu)先級B、低優(yōu)先級C:
當(dāng)?shù)蛢?yōu)先級的任務(wù)在運(yùn)行時(shí)候訪問互斥資源,而中優(yōu)先級的任務(wù)運(yùn)行時(shí)將使低優(yōu)先級的任務(wù)得不到運(yùn)死抱著資源不放。
這時(shí),高優(yōu)先級的任務(wù)開始運(yùn)行的時(shí)候,必須等待中優(yōu)先級的任務(wù)運(yùn)行完成,然后等待低優(yōu)先級任務(wù)的任務(wù)訪問資源完成才行。
如果在低優(yōu)先級的任務(wù)訪問資源過程中又有中優(yōu)先級任務(wù)運(yùn)行,那么高優(yōu)先級的任務(wù)只有繼續(xù)等待。這種情況叫優(yōu)先級反轉(zhuǎn)。

在ucosii對互斥信號量的管理中,針對這個(gè)問題采用了優(yōu)先級繼承機(jī)制
優(yōu)先級繼承機(jī)制:是一種對占用資源的任務(wù)的優(yōu)先級進(jìn)行升級的機(jī)制,用以優(yōu)化系統(tǒng)的調(diào)度。

例:
當(dāng)前的任務(wù)的優(yōu)先級是比較低的。
高優(yōu)先級的任務(wù)請求互斥信號量的時(shí)候因?yàn)樾盘柫恳驯徽加校灾挥凶枞_@時(shí)有中優(yōu)先級的任務(wù)就緒。

如果不采用優(yōu)先級繼承,那么高優(yōu)先級的任務(wù)是競爭不過中優(yōu)先級的任務(wù)。
采用優(yōu)先級繼承機(jī)制,將占有資源的低優(yōu)先級的任務(wù)臨時(shí)設(shè)置為一個(gè)很高的優(yōu)先級,允許其在占有資源的時(shí)候臨時(shí)獲得特權(quán),先于中優(yōu)先級任務(wù)完成,在訪問互斥資源結(jié)束又回到原來的優(yōu)先級,這樣高優(yōu)先級的任務(wù)就會先于中優(yōu)先級的任務(wù)運(yùn)行,解決了這個(gè)問題。

七:事件標(biāo)志組:
1:多個(gè)事件都發(fā)生
2:多個(gè)事件中有一個(gè)事件發(fā)生
3:多個(gè)事件都沒有發(fā)生
  4:多個(gè)事件中有任何一個(gè)事件沒有發(fā)生。
如果任務(wù)要等待多個(gè)事件的發(fā)生,或多個(gè)事件中的某一個(gè)事件的發(fā)生就可以繼續(xù)運(yùn)行,那么應(yīng)該采用事件標(biāo)志組管理。
事件標(biāo)志組管理的條件組合可以是多個(gè)事件都發(fā)生,也可以是多個(gè)事件中有任何一個(gè)事件發(fā)生。尤其特別的是,還可以是多個(gè)事件都沒有發(fā)生或多個(gè)事件中有任何一個(gè)事件沒有發(fā)生。

八:消息郵箱和消息隊(duì)列
操作系統(tǒng)通過郵箱來管理人物間的通信與同步,郵箱中的內(nèi)容不是信件本身,而是指向消息內(nèi)容的地址。
注:消息的內(nèi)容不是消息本身而是地址(指針),指針?biāo)赶虻膬?nèi)容才是任務(wù)想得到的東西。
這個(gè)指針是void類型的,可以指向任何數(shù)據(jù)結(jié)構(gòu)。   這樣說發(fā)送的信息范圍也更寬,郵箱中可以容納下任何長度的數(shù)據(jù)。

   
例如:
我們打開自己的郵箱,發(fā)現(xiàn)一封信,信的內(nèi)容是“中國浙江省杭州市河坊街123號”。那么在河坊街的123號,我們可以找到自己想要的東西。
如果郵箱里面沒有內(nèi)容,那么我們看到的就是個(gè)空地址。


在取得事件控制塊之后,要設(shè)置他的類型:是信號量型還是郵箱型。(郵箱和信號量都保存在事件控制塊中。)
(因?yàn)橐粋(gè)事件控制塊可以作為信號量的容器,也可以作為郵箱的容器,但是不能同時(shí)作為兩者的容器)




A,B兩個(gè)任務(wù)通過發(fā)消息來同步訪問緩沖區(qū):  過程如下:
任務(wù)A創(chuàng)建緩沖區(qū),寫緩沖區(qū),發(fā)消息。
任務(wù)B請求消息,如果郵箱里面沒有消息,就把自己阻塞,如果有,就讀取消息。
任務(wù)B最終讀取消息后,根據(jù)郵箱里的地址讀取緩沖區(qū)。






什么情況下采用消息而不是信號量來完成同步和通信:
假如A寫緩沖區(qū),B讀緩沖區(qū),但是緩沖區(qū)是A創(chuàng)建的,B并不知道它在哪里,但是B知道緩沖區(qū)的類型是10個(gè)字節(jié)長的數(shù)組。





消息隊(duì)列:    也用于給任務(wù)發(fā)消息,但是它是由多個(gè)消息郵箱組合形成的,是消息郵箱的集合。,實(shí)質(zhì)上是消息郵箱的隊(duì)列。
一個(gè)消息郵箱只能容納一條消息,
采用消息隊(duì)列,一是可以容納多條消息,二是消息是有序的。

消息隊(duì)列   消息    信息量的  異同
相同:消息隊(duì)列同樣采用事件控制塊來指示   消息的位置和標(biāo)記等待消息的任務(wù)。
不同:
消息隊(duì)列自身有消息控制塊這樣的數(shù)據(jù)結(jié)構(gòu),事件控制塊中指示的不再是消息的地址,而是消息控制塊的地址,使用消息控制塊可以先進(jìn)先出的方式管理多條消息。






第四節(jié):基于優(yōu)先級的可剝奪內(nèi)核
內(nèi)核是操作系統(tǒng)最核心的部分,
內(nèi)核的主要功能是進(jìn)行任務(wù)調(diào)度。
內(nèi)核中最核心的本服務(wù)就是調(diào)度的核心--------任務(wù)切換。
調(diào)度:決定多任務(wù)的運(yùn)行狀態(tài)(哪個(gè)任務(wù)應(yīng)該處于哪種狀態(tài))


時(shí)間:內(nèi)核也是程序,運(yùn)行要占用cpu的時(shí)間,即內(nèi)核要和用戶程序之間爭奪cpu,因此,實(shí)時(shí)內(nèi)核要設(shè)計(jì)得運(yùn)行效率盡可能的快,調(diào)度算法應(yīng)該盡可能的好。(比較好的內(nèi)核系統(tǒng),內(nèi)核占用cpu的2%-5%負(fù)荷。ucos可以。)

空間:內(nèi)核還要占用大量的空間。因?yàn)橐M(jìn)行任務(wù)調(diào)度,就會有大量的數(shù)據(jù)結(jié)構(gòu)(任務(wù)控制塊,就緒表,信號量,郵箱,消息隊(duì)列等),并且為了進(jìn)行任務(wù)切換,每個(gè)任務(wù)都有自己的堆棧空間,占用大量的RAM空間。
(所以沒有擴(kuò)充內(nèi)存的單片機(jī)系統(tǒng)因?yàn)闆]有足夠的內(nèi)存空間就不能運(yùn)行ucos)




ucos使用的是一種基于優(yōu)先級的可剝奪型內(nèi)核
一:基于優(yōu)先級的調(diào)度算法:

在ucos中,可以同時(shí)又64個(gè)就緒任務(wù),每個(gè)任務(wù)都有各自的優(yōu)先級(優(yōu)先級用0—63的無符號整數(shù)來表示,數(shù)字越大則優(yōu)先級越低)
ucos總是調(diào)度就緒了的優(yōu)先級最高的任務(wù)獲得cpu的控制權(quán) 。


二:不可剝奪型內(nèi)核   和   可剝奪型內(nèi)核

(一):不可剝奪型內(nèi)核含義:  當(dāng)任務(wù)一旦獲得了cpu的使用權(quán)得到運(yùn)行,如果不將自己阻塞,將一直運(yùn)行。
(不管是否有更緊迫的任務(wù)(優(yōu)先級更高的任務(wù))在等待。注:高優(yōu)先級的任務(wù)已經(jīng)進(jìn)入就緒態(tài)。)。就算發(fā)生了中斷,也只讓中斷服務(wù)程序運(yùn)行(不論中斷服務(wù)程序是否創(chuàng)建了更高優(yōu)先級的任務(wù),也都要返回原任務(wù)運(yùn)行)。


例:
不可剝奪型內(nèi)核的調(diào)度:
1:在任務(wù)A運(yùn)行時(shí)發(fā)生中斷,進(jìn)入中斷服務(wù)程序(使更高優(yōu)先級任務(wù)B就緒)。
2:從中斷返回,繼續(xù)運(yùn)行任務(wù)A
3:任務(wù)A結(jié)束,任務(wù)B獲得運(yùn)行。

分析:
1:任務(wù)A由于優(yōu)先級較低,在運(yùn)行中發(fā)生了中斷時(shí),cpu將控制權(quán)交給中斷服務(wù)函數(shù),任務(wù)A被掛起。
2:中斷服務(wù)程序?qū)⒏邇?yōu)先級的任務(wù)B從睡眠態(tài)或者阻塞態(tài)恢復(fù)到就緒態(tài)。
  中斷服務(wù)程序返回,由于采用不可剝奪型內(nèi)核,將cpu仍交給任務(wù)A運(yùn)行。
3:知道任務(wù)A運(yùn)行完成或者被阻塞,才將cpu交給任務(wù)B,任務(wù)B才得到運(yùn)行。

綜上所述:采用不可剝奪型內(nèi)核缺點(diǎn)在于其響應(yīng)時(shí)間。
                 高優(yōu)先級的任務(wù)就算進(jìn)入了就緒轉(zhuǎn)臺,還必須等待低優(yōu)先級的任務(wù)運(yùn)行完成或者阻塞后猜得到運(yùn)行,相應(yīng)時(shí)間不能確定。
因此:不可剝奪型內(nèi)核不適合實(shí)時(shí)操作系統(tǒng)



(二):可剝奪型內(nèi)核: 是這樣調(diào)度的:最高優(yōu)先級的任務(wù)一旦就緒,就能獲得CPU的控制權(quán)而得到運(yùn)行,而不管當(dāng)前運(yùn)行的任務(wù)運(yùn)行到什么狀態(tài)。


例:



可剝奪型內(nèi)核調(diào)度:
1:任務(wù)A運(yùn)行發(fā)生中斷,進(jìn)入中斷服務(wù)程序
2:從中斷返回,任務(wù)B優(yōu)先級較高獲得運(yùn)行
3:任務(wù)B結(jié)束,任務(wù)A恢復(fù)運(yùn)行。

分析:在可剝奪型內(nèi)核的調(diào)度下,在中斷服務(wù)程序中就緒了更高優(yōu)先級的任務(wù)B,
2:在中斷返回后因?yàn)閮?yōu)先級最高, 所以獲得了cpu控制權(quán)得到運(yùn)行。
3:任務(wù)B運(yùn)行結(jié)束后,任務(wù)A猜得到運(yùn)行。



因此:可剝奪型內(nèi)核采用了搶占式的調(diào)度策略,總是讓優(yōu)先級最高的任務(wù)運(yùn)行,直到其阻塞或者完成,任務(wù)響應(yīng)的時(shí)間因此是最優(yōu)化的。
因?yàn)椴僮飨到y(tǒng)總是以時(shí)鐘中斷服務(wù)程序作為調(diào)度的手段,而時(shí)鐘中斷時(shí)間是可知的,高優(yōu)先級任務(wù)的運(yùn)行時(shí)間也是可知的
因此適合于實(shí)時(shí)操作系統(tǒng)。







第六節(jié):中斷和時(shí)


一:中斷
嵌入式實(shí)時(shí)操作系統(tǒng)的中斷是指在任務(wù)的執(zhí)行過程中,當(dāng)出現(xiàn)異常情況或者特殊請求時(shí),停止任務(wù)的執(zhí)行,轉(zhuǎn)而對這些異常情況或者特殊請求進(jìn)行處理,處理結(jié)束后再返回當(dāng)前任務(wù)的間斷處,或由于中斷服務(wù)函數(shù)使更高優(yōu)先級的程序就緒,轉(zhuǎn)而執(zhí)行優(yōu)先級更高的任務(wù)。

中斷是實(shí)時(shí)地處理內(nèi)部或外部事件的一種內(nèi)部機(jī)制。
這里,異常情況或特許請求時(shí)中斷源,稱為異步事件
處理異步事件所用的程序是中斷服務(wù)程序



例:
工作時(shí),手機(jī)響了,于是先接電話,接完電話后繼續(xù)工作。  
手機(jī)是中斷源,接電話是中斷服務(wù)程序

如果不接電話繼續(xù)工作,這是對中斷的不理會,或稱中斷被屏蔽了。
工作前關(guān)掉手機(jī),直接禁止中斷。






ucos中,中斷處理過程如圖:



當(dāng)任務(wù)A在運(yùn)行的時(shí)候,由于中斷的到來,
1:操作系統(tǒng)先保存任務(wù)A當(dāng)前的運(yùn)行環(huán)境,
2:接著進(jìn)入中斷服務(wù)程序
3:在中斷服務(wù)程序后,由于采用可剝奪型內(nèi)核,如果A仍是最高優(yōu)先級任務(wù),就恢復(fù)A運(yùn)行的環(huán)境,繼續(xù)運(yùn)行A,否則將運(yùn)行一個(gè)更高優(yōu)先級的任務(wù)


二:時(shí)鐘

時(shí)鐘是一種特定的周期性中斷------時(shí)鐘節(jié)拍。(在ucos中起到心臟的作用)
操作系統(tǒng)能夠同步,最根本的硬件條件是系統(tǒng)在統(tǒng)一的時(shí)鐘下工作。

在ucos中,通過對硬件的設(shè)置,使在10~200ms的時(shí)間間隔內(nèi)產(chǎn)生一次時(shí)鐘中斷
在該時(shí)鐘中斷服務(wù)程序中,對延時(shí)的任務(wù)進(jìn)行延時(shí)計(jì)數(shù) ,檢查系統(tǒng)中是否有高優(yōu)先級的任務(wù)就緒而沒有得到運(yùn)行,相應(yīng)進(jìn)行任務(wù)調(diào)度。
因此。如果沒有時(shí)鐘中斷服務(wù),就沒有多任務(wù)操作系統(tǒng)的任務(wù)調(diào)度,也談不上實(shí)時(shí)。
我們把這種周期性中斷稱為時(shí)鐘節(jié)拍,對應(yīng)的中斷服務(wù)程序稱為時(shí)鐘中斷服務(wù)程序。




第七節(jié):內(nèi)存管理
內(nèi)存很寶貴,在ucosii中,采用分區(qū)的方式管理內(nèi)存-----將連續(xù)的大塊內(nèi)存按分區(qū)來管理,每個(gè)系統(tǒng)中有數(shù)個(gè)這樣的分區(qū),每個(gè)分區(qū)又包含數(shù)個(gè)內(nèi)存塊,每個(gè)內(nèi)存塊大小相同。這樣,在分配內(nèi)存的時(shí)候,根據(jù)需要從不同的分區(qū)中得到數(shù)個(gè)內(nèi)存塊,而在釋放時(shí),這些內(nèi)存塊重新釋放回他們原來所在的分區(qū)。

為了方便內(nèi)存管理,ucos采用內(nèi)存控制塊來管理內(nèi)存。
內(nèi)存控制塊記錄了內(nèi)存分區(qū)的地址、分區(qū)中內(nèi)存塊的大小和數(shù)量,以及空閑塊的數(shù)量等信息。

內(nèi)存管理包含了內(nèi)存分區(qū)的創(chuàng)建、分配、釋放、使用、等待系統(tǒng)調(diào)用。


回復(fù)

使用道具 舉報(bào)

ID:136810 發(fā)表于 2016-8-15 15:31 | 顯示全部樓層
寫的非常不錯(cuò),學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人1区 | 精品91久久| 国产精品高潮呻吟久久av野狼 | 北条麻妃一区二区三区在线视频 | 中文字幕一页二页 | 欧美激情在线观看一区二区三区 | 久久久久久高潮国产精品视 | 欧美日韩三区 | 日韩av在线一区二区 | 成人久久一区 | 午夜视频免费在线观看 | 欧美另类日韩 | 91精品国产一区二区三区 | 成人av免费| 久久男人 | 久久精品福利视频 | 高清欧美性猛交xxxx黑人猛交 | 免费视频一区二区 | 密色视频| 中文字幕日韩一区 | 国产精品美女一区二区 | 亚洲欧美日韩精品久久亚洲区 | 国产一区二区三区久久久久久久久 | 电影91久久久 | 手机日韩| 美女视频一区二区三区 | 国产精品久久国产精品99 gif | 国产色爽| 国产精品久久久久久久久久免费看 | 久久久999免费视频 999久久久久久久久6666 | 天堂在线www| 日日干夜夜草 | 国产精品免费观看 | 成人av一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 久久精品黄色 | 爱综合| 午夜影院中文字幕 | 久久在看| 国产激情视频在线免费观看 | 福利视频一区二区三区 |