999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一個(gè)教學(xué)用操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2007-12-31 00:00:00王紅玲褚亞銘強(qiáng)
計(jì)算機(jī)教育 2007年8期

摘要:本文首先指出了現(xiàn)有的教學(xué)用操作系統(tǒng)存在的不足,然后設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)運(yùn)行在虛擬機(jī)上的微內(nèi)核結(jié)構(gòu)的教學(xué)用操作系統(tǒng),描述了系統(tǒng)中進(jìn)程管理、進(jìn)程間通信、基本內(nèi)存管理、磁盤(pán)服務(wù)器以及文件服務(wù)器的設(shè)計(jì)和實(shí)現(xiàn)。本系統(tǒng)的實(shí)現(xiàn)將有利于學(xué)生從微觀上觀察操作系統(tǒng)的行為特征,并且?guī)椭麄兝碚撀?lián)系實(shí)際,具有較好的教學(xué)價(jià)值。

關(guān)鍵詞:微內(nèi)核;操作系統(tǒng)

中圖分類(lèi)號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1672-5913(2007)08-0063-03

A Design and Implementation of an Operating System for Tutorial

WANG HonglingZHU YamingLV Qiang

(School of Computer Science and Technology, Soochow University, Suzhou, 215006, China)

Abstract: This paper firstly points out the weaknesses of current popular operating systems for tutorial, then designs and implements a microkernel operating system for tutorial on Bochs. It describes the design and implementation of process management, IPC, basic memory management, file system server and disk server in detail. The system will do benefits to students in helping them learning operating system principles and offering them a platform to practices what they have learned in class.

Keywords: microkernel;operating system

0 引言

操作系統(tǒng)(Operating System)是計(jì)算機(jī)系統(tǒng)中最重要的系統(tǒng)軟件,是硬件的第一層封裝與抽象,在計(jì)算機(jī)系統(tǒng)中占據(jù)著重要的地位。操作系統(tǒng)課程是計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的必修重點(diǎn)課程,其目的在于使學(xué)生掌握操作系統(tǒng)的基本概念與原理并為今后的相關(guān)技術(shù)學(xué)習(xí)與研究打下良好的基礎(chǔ)。

但是在多年的教學(xué)實(shí)踐中,始終存在著教師覺(jué)得不好教,學(xué)生覺(jué)得不好學(xué)的問(wèn)題。造成這個(gè)問(wèn)題的重要原因之一在于這門(mén)課程的課堂理論教學(xué)環(huán)節(jié)相對(duì)比較成熟,但是實(shí)踐教學(xué)環(huán)節(jié)卻相對(duì)滯后,或者說(shuō)兩者之間的平衡把握的不好[1]。IEEE/ACM在2001年的本科生教學(xué)建議中再次強(qiáng)調(diào),操作系統(tǒng)的教學(xué)在進(jìn)行理論講授的同時(shí),必須結(jié)合相當(dāng)數(shù)量的動(dòng)手實(shí)踐[2]。只有通過(guò)閱讀操作系統(tǒng)的源代碼,并且親自動(dòng)手對(duì)其進(jìn)行修改與擴(kuò)展即強(qiáng)調(diào)實(shí)踐環(huán)節(jié)[3],學(xué)生才有可能對(duì)操作系統(tǒng)課本所講述的抽象原理有比較深刻的理解。因此一個(gè)合適的教學(xué)專(zhuān)用操作系統(tǒng)實(shí)驗(yàn)平臺(tái)對(duì)本科生操作系統(tǒng)課程的順利開(kāi)展有著重要的意義。

1 常用實(shí)驗(yàn)操作系統(tǒng)簡(jiǎn)介

目前國(guó)內(nèi)外大學(xué)在講授操作系統(tǒng)課程時(shí),主要使用的實(shí)驗(yàn)操作系統(tǒng)有Linux[4][5]、Minix[6]以及Nachos[7]。從純粹教學(xué)的角度來(lái)看,這幾個(gè)教學(xué)平臺(tái)各有特點(diǎn)又各自存在著某些方面的不足。歸納起來(lái),現(xiàn)有的用于教學(xué)的操作系統(tǒng)平臺(tái)存在著以下三個(gè)問(wèn)題:

(1) 絕大多數(shù)系統(tǒng)安裝在裸機(jī)上。系統(tǒng)在承擔(dān)實(shí)驗(yàn)平臺(tái)這個(gè)角色的同時(shí)還要承擔(dān)起系統(tǒng)支撐環(huán)境的角色,這種角色上的重疊使得調(diào)試跟蹤以及修改擴(kuò)展都很不方便。

(2) 過(guò)于實(shí)用,導(dǎo)致代碼量過(guò)于龐大。這些強(qiáng)調(diào)實(shí)用的操作系統(tǒng)將學(xué)生置身于一個(gè)技巧與實(shí)現(xiàn)細(xì)節(jié)的大森林,在這種情況下學(xué)生更多的是挫折感和失落感,同時(shí)很難把握住其中的關(guān)鍵點(diǎn)并且走出這個(gè)大森林。

(3) 對(duì)體系結(jié)構(gòu)強(qiáng)調(diào)的不夠。前面提到的三款操作系統(tǒng)中除Minix以外都是傳統(tǒng)的單一內(nèi)核結(jié)構(gòu)的操作系統(tǒng)。

這些問(wèn)題的存在,影響了學(xué)生(特別是本科生)課程實(shí)驗(yàn)的順利開(kāi)展。

2 系統(tǒng)設(shè)計(jì)

針對(duì)上述存在的問(wèn)題,我們?cè)O(shè)計(jì)了一個(gè)針對(duì)大學(xué)操作系統(tǒng)課程的實(shí)驗(yàn)系統(tǒng)。系統(tǒng)的設(shè)計(jì)理念是“弱化實(shí)用功能,突出實(shí)現(xiàn)原理”,在力求說(shuō)清楚操作系統(tǒng)原理中一些重點(diǎn)與難點(diǎn)的大前提下,適當(dāng)?shù)貙?duì)具體細(xì)節(jié)作簡(jiǎn)化,盡可能控制系統(tǒng)的規(guī)模,以避免一些枝節(jié)的問(wèn)題影響學(xué)生對(duì)重點(diǎn)的理解。

2.1 總體設(shè)計(jì)

系統(tǒng)的設(shè)計(jì)目標(biāo)是:完備性、可擴(kuò)展性和可操作性。

所謂完備性是指系統(tǒng)應(yīng)包含操作系統(tǒng)中的基本概念與原理,主要包括進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)管理和設(shè)備管理四大模塊。針對(duì)每個(gè)模塊的核心概念設(shè)計(jì)相應(yīng)代碼,在此基礎(chǔ)之上各個(gè)模塊又可以整合成一個(gè)完整的可運(yùn)行系統(tǒng),從而在體現(xiàn)各部分實(shí)現(xiàn)原理的同時(shí),向?qū)W生展示一個(gè)全貌,讓他們了解各部分是如何有機(jī)地組合到一起的。

在達(dá)到內(nèi)容完備性的前提之下,系統(tǒng)還應(yīng)該力求便于學(xué)生的閱讀與擴(kuò)展。由于微內(nèi)核操作系統(tǒng)同單一內(nèi)核操作系統(tǒng)相比,具有結(jié)構(gòu)更加清晰、更容易擴(kuò)展等優(yōu)點(diǎn)[8][9],所以我們采用微內(nèi)核體系結(jié)構(gòu)作為系統(tǒng)的體系結(jié)構(gòu)。

另外,為了保證系統(tǒng)的可操作性,系統(tǒng)采用了Bochs虛擬機(jī)[10]作為底層運(yùn)行平臺(tái)。理由是:Bochs完全模擬了i386,使得系統(tǒng)不失真實(shí)性。同時(shí)Bochs提供的強(qiáng)大的配套調(diào)試工具便于學(xué)生跟蹤了解系統(tǒng)運(yùn)行的具體狀態(tài)與精確時(shí)序。由于使用了虛擬機(jī),避免了學(xué)生在硬件故障排除這個(gè)比較棘手的問(wèn)題上花費(fèi)大量不必要的時(shí)間,并且大大節(jié)省了編輯、編譯、下載、調(diào)試的時(shí)間周期,系統(tǒng)也不需要頻繁地重啟。

整個(gè)實(shí)驗(yàn)平臺(tái)的邏輯結(jié)構(gòu)圖如圖1所示。其中微內(nèi)核直接運(yùn)行于Bochs虛擬機(jī)之上,它在完成了對(duì)硬件的封裝與抽象之后,向應(yīng)用層提供了一個(gè)支撐環(huán)境,而各個(gè)系統(tǒng)服務(wù)器與用戶進(jìn)程則運(yùn)行于此支撐環(huán)境之上。

2.2 系統(tǒng)結(jié)構(gòu)與模塊劃分

在構(gòu)建整個(gè)實(shí)驗(yàn)平臺(tái)時(shí),系統(tǒng)根據(jù)功能被劃分為微內(nèi)核與核外服務(wù)器這兩大部分。各個(gè)服務(wù)器與用戶進(jìn)程通過(guò)微內(nèi)核這一消息總線進(jìn)行消息傳遞,如圖2所示。

2.2.1 微內(nèi)核部分

系統(tǒng)的微內(nèi)核僅僅實(shí)現(xiàn)一些最為基本的服務(wù),它為整個(gè)系統(tǒng)的正常運(yùn)作提供基礎(chǔ)保障。它被實(shí)現(xiàn)在核心級(jí),可以執(zhí)行特權(quán)指令,這是因?yàn)檫@部分實(shí)現(xiàn)高度依賴底層的硬件。微內(nèi)核直接與底層硬件打交道,并且通過(guò)少量的應(yīng)用程序編程接口向上層提供一個(gè)內(nèi)核的抽象。這部分包括進(jìn)程管理、進(jìn)程間通信、基本內(nèi)存管理以及中斷的響應(yīng)框架,具體功能包括:

(1) 進(jìn)程管理。負(fù)責(zé)實(shí)現(xiàn)進(jìn)程的創(chuàng)建、進(jìn)程的撤銷(xiāo)以及最為核心的進(jìn)程調(diào)度。

(2) 進(jìn)程間通信。負(fù)責(zé)提供一種或多種進(jìn)程間直接或間接通信的方式。

(3) 基本內(nèi)存管理。負(fù)責(zé)對(duì)物理內(nèi)存進(jìn)行分配與回收,以及對(duì)進(jìn)程虛擬地址空間的管理。

(4) 陷入處理。負(fù)責(zé)整個(gè)系統(tǒng)的系統(tǒng)調(diào)用、異常與中斷響應(yīng)框架的處理,這是系統(tǒng)其余部分正常工作的基礎(chǔ)。

2.2.2 服務(wù)器部分

這部分實(shí)現(xiàn)的是高層服務(wù)的提供者,它們以服務(wù)器的形式存在于用戶空間中,并且采用客戶機(jī)/服務(wù)器的方式與普通用戶進(jìn)程進(jìn)行通信。服務(wù)器通過(guò)消息中指定的操作符與參數(shù)調(diào)用執(zhí)行本模塊實(shí)現(xiàn)的系統(tǒng)服務(wù)。采用這種設(shè)計(jì)方案可以避免一個(gè)服務(wù)器的行為干擾同一系統(tǒng)中的其他模塊,每個(gè)服務(wù)器僅僅公開(kāi)必須要讓外界知道的接口即訪問(wèn)方式而將具體的實(shí)現(xiàn)細(xì)節(jié)隱藏了起來(lái)。

2.3 開(kāi)發(fā)平臺(tái)

系統(tǒng)開(kāi)發(fā)采用了Linux平臺(tái),這是因?yàn)橐环矫鍸inux環(huán)境下有著比較齊全的系統(tǒng)開(kāi)發(fā)工具,比較適合做系統(tǒng)層開(kāi)發(fā)平臺(tái);另一方面Bochs虛擬機(jī)也有相應(yīng)的運(yùn)行在Linux平臺(tái)上的版本。

3 系統(tǒng)實(shí)現(xiàn)

3.1 微內(nèi)核關(guān)鍵機(jī)制的實(shí)現(xiàn)

本系統(tǒng)微內(nèi)核主要實(shí)現(xiàn)了五個(gè)功能模塊,除了2.2.1所述的四個(gè)功能模塊外,還實(shí)現(xiàn)了內(nèi)核代理服務(wù)器。它也是一個(gè)進(jìn)程,與其他普通進(jìn)程的區(qū)別僅在于:它沒(méi)有用戶空間堆棧并且始終運(yùn)行在內(nèi)核空間中。主要作用是代表內(nèi)核與核外各服務(wù)器以及普通用戶進(jìn)程通信。

對(duì)于內(nèi)核中其他功能模塊,我們都是從便于學(xué)生理解和擴(kuò)展出發(fā),實(shí)現(xiàn)操作系統(tǒng)原理所述的基本概念。在進(jìn)程管理模塊中,重點(diǎn)設(shè)計(jì)和實(shí)現(xiàn)進(jìn)程控制塊,進(jìn)程調(diào)度采用了基于優(yōu)先級(jí)的FIFO調(diào)度算法。系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)了兩種具有代表性的進(jìn)程間通信機(jī)制:消息傳遞和共享內(nèi)存,其中消息傳遞的接收是阻塞式的,發(fā)送是同步的。系統(tǒng)以Bochs模擬的i386處理器的分頁(yè)存儲(chǔ)管理為基礎(chǔ)實(shí)現(xiàn)一個(gè)兩層的頁(yè)式管理模型,向?qū)W生展示典型的分級(jí)頁(yè)式存儲(chǔ)管理。內(nèi)核為每個(gè)進(jìn)程分配的邏輯地址空間大小為64MB。系統(tǒng)在內(nèi)核中分別實(shí)現(xiàn)了中斷、異常與系統(tǒng)調(diào)用。這三類(lèi)事件的處理過(guò)程基本相似:內(nèi)核在接收到中斷信號(hào)后,在完成底層處理后立即向相應(yīng)服務(wù)器發(fā)送消息,然后系統(tǒng)再切回到用戶空間。

3.2 典型服務(wù)器的實(shí)現(xiàn)

基于客戶機(jī)/服務(wù)器體系結(jié)構(gòu)的微內(nèi)核操作系統(tǒng)中,各個(gè)服務(wù)器與微內(nèi)核被分別編譯成獨(dú)立的二進(jìn)制文件,服務(wù)器與內(nèi)核之間是松耦合的關(guān)系。從微內(nèi)核的角度來(lái)看,它們與普通的用戶進(jìn)程沒(méi)有任何的區(qū)別。

所有服務(wù)器的基本流程都是一樣的。系統(tǒng)初始化時(shí),每一個(gè)服務(wù)器都將被啟動(dòng)并執(zhí)行各自的初始化操作,然后阻塞地等待客戶消息的到來(lái)。當(dāng)消息到達(dá)后服務(wù)器調(diào)用適當(dāng)?shù)淖幽K執(zhí)行對(duì)應(yīng)操作,完成后向客戶發(fā)送一條應(yīng)答消息然后再次阻塞地等待消息,如此不斷地循環(huán)下去。

目前我們實(shí)現(xiàn)了以下兩個(gè)服務(wù)器:

(1) 文件系統(tǒng)服務(wù)器。將接收到的對(duì)于邏輯文件的處理轉(zhuǎn)化成對(duì)存儲(chǔ)于物理介質(zhì)上的物理文件的處理,為用戶進(jìn)程提供一個(gè)有效的文件訪問(wèn)方式。為了方便教學(xué),我們實(shí)現(xiàn)了一種相對(duì)比較簡(jiǎn)單但同時(shí)又能解釋清楚其工作原理的文件系統(tǒng)。在此基礎(chǔ)上我們很容易設(shè)計(jì)相應(yīng)的習(xí)題,要求學(xué)生對(duì)現(xiàn)有文件系統(tǒng)作功能上與性能上的增強(qiáng)。

(2) 磁盤(pán)服務(wù)器。將接收到的磁盤(pán)讀寫(xiě)消息轉(zhuǎn)換成對(duì)磁盤(pán)控制器發(fā)送命令的操作,磁盤(pán)服務(wù)器通過(guò)隱藏底層硬件的具體操作向用戶進(jìn)程提供一種有效的磁盤(pán)訪問(wèn)方式。

4 系統(tǒng)配置與使用演示

系統(tǒng)目前共實(shí)現(xiàn)了6個(gè)核心模塊,涉及文件25個(gè),共2900行C代碼。

4.1系統(tǒng)配置

由于系統(tǒng)運(yùn)行在Bochs虛擬機(jī)上,因此首先需要配置系統(tǒng),包括內(nèi)核、服務(wù)器和應(yīng)用程序。下列腳本將微內(nèi)核各模塊連接成可執(zhí)行二進(jìn)制代碼,再將bootloader與編譯以后的微內(nèi)核可執(zhí)行代碼合并成一個(gè)可執(zhí)行文件os.bin作為啟動(dòng)盤(pán)使用:

ld -Ttext 0x9000 -e main ${INITOBJ}\\${OBJ} -o kernel.img -Map os.map

objcopy -R .note -R .comment -S -O binary kernel.img init/kernel.bin

cp boot/boot.bin os.bin

cat init/kernel.bin >> os.bin

在bochs配置文件bochs.txt中加入以下這兩行:

floppya: 1_44=os.bin, status=inserted

boot: a

配置完內(nèi)核以后,接下來(lái)還需要對(duì)服務(wù)器、用戶程序按類(lèi)似步驟進(jìn)行處理。所有的服務(wù)器將被合并到server這個(gè)磁盤(pán)映像文件中,其他用戶程序則被合并到driverc.img這個(gè)磁盤(pán)映像文件中。然后在bochs.txt中設(shè)置:

floppyb: 1_44=server, status=inserted

diskc: file=driverc.img, cyl=20, heads=16, spt=63

最后是對(duì)配置文件中一些其他屬性的設(shè)置。

4.2 使用演示

正如前文所強(qiáng)調(diào)的,本系統(tǒng)較之現(xiàn)有教學(xué)工具更為有效之處在于可以方便地、全面地對(duì)系統(tǒng)進(jìn)行調(diào)試。以下是以進(jìn)程切換這一教學(xué)難點(diǎn)為例,用bochsdbg觀察地址空間與系統(tǒng)堆棧的切換過(guò)程。

我們?cè)谡{(diào)度器的入口以及進(jìn)程切換函數(shù)的入口分別設(shè)置斷點(diǎn),調(diào)度器被執(zhí)行時(shí)如圖3所示,使用dump_cpu觀察到當(dāng)前cr3寄存器中的值為0x406000。當(dāng)執(zhí)行完

_asm_volatile(\"movl %0, %%cr3\"::\"r\"(global_current->pageTable));

以后,再次使用dump_cpu命令時(shí)可以清楚地看到此時(shí)cr3中的值已經(jīng)被換成了0x40d000,如圖4所示。

系統(tǒng)堆棧的切換發(fā)生在SWITCH_TO中,執(zhí)行前與執(zhí)行后用infor觀察到的結(jié)果分別如圖5和圖6所示。

5 總結(jié)

本課題設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Bochs虛擬機(jī)的微

內(nèi)核結(jié)構(gòu)的教學(xué)用操作系統(tǒng)。該系統(tǒng)在保持簡(jiǎn)化性的前提下,展現(xiàn)了一個(gè)真實(shí)操作系統(tǒng)的工作原理與機(jī)制,并且保持了一定的可擴(kuò)展性,從而為學(xué)生提供了一個(gè)良好的實(shí)驗(yàn)平臺(tái),在一定程度上彌補(bǔ)了現(xiàn)有操作系統(tǒng)教學(xué)工具的缺陷。實(shí)現(xiàn)的系統(tǒng)包括兩部分:微內(nèi)核和核外服務(wù)器。希望通過(guò)這一平臺(tái)來(lái)降低操作系統(tǒng)的學(xué)習(xí)門(mén)檻,幫助學(xué)生由淺入深,由表及里,循序漸進(jìn)地了解和掌握操作系統(tǒng)的原理,從而克服操作系統(tǒng)教學(xué)中實(shí)踐滯后于理論的弊端。

參考文獻(xiàn):

[1]Alfredo Perez Davila. O.S. bridge between academia and reality[EB]. ACM SIGCSE Bulletin,1995.

[2] Gary Nutt. Linux操作系統(tǒng)內(nèi)核實(shí)習(xí)[M]. 機(jī)械工業(yè)出版社,2004.

[3] Steven Robbins, Kay A. Robbins.Empirical exploration in undergraduate operating systems[EB]. The proceedings of the 13th ACM SIGCSE Bulletin.1999-3.

[4] 毛德操,胡希明. Linux內(nèi)核源代碼情景分析(上冊(cè))[M]. 浙江大學(xué)出版社,2001.

[5] 趙炯. Linux內(nèi)核完全注釋[M]. 機(jī)械工業(yè)出版社,2004.

[6] Andrew S. TanenbaumAlbert S. Woodhull Operating system design and implementation[M]. 清華大學(xué)出版社,1997.

[7]Nachos官方網(wǎng)站 http://www.cs.washington.edu/homes/tom/nachos/

[8] 付長(zhǎng)冬,孟慶余,潘清. 基于微內(nèi)核的操作系統(tǒng)綜述[J]. 計(jì)算機(jī)工程與科學(xué), 1997(8).

[9] 潘清,張曉清. 操作系統(tǒng)微內(nèi)核技術(shù)研究[J]. 軟件學(xué)報(bào),1998(8).

[10] Bochs官方網(wǎng)站 http://sourceforge.bochs.com

收稿日期:2006-09-18

作者簡(jiǎn)介:王紅玲(1975-),女,蘇州人,蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,碩士,講師,主要研究方向:操作系統(tǒng)、中文信息處理。

通信地址:蘇州市十梓街1號(hào) 蘇州大學(xué)158信箱

郵編:215006

E-mail:redleaf@suda.edu.cn

電話:0512-67165762-204

主站蜘蛛池模板: 国产精选自拍| 欧美国产精品不卡在线观看| 中文字幕伦视频| 国产黑人在线| 三上悠亚精品二区在线观看| 久久精品人人做人人爽电影蜜月| 亚洲AⅤ永久无码精品毛片| 精品無碼一區在線觀看 | 亚洲婷婷六月| 58av国产精品| 99热免费在线| 中文毛片无遮挡播放免费| 久久一本日韩精品中文字幕屁孩| 欧美黄网站免费观看| 亚洲日本中文字幕乱码中文 | 欧美日韩在线亚洲国产人| 欧美激情二区三区| 精品久久综合1区2区3区激情| a级毛片网| 婷婷色婷婷| 国产69精品久久久久孕妇大杂乱| 伊人久久影视| 国产高清精品在线91| 国产精品精品视频| 亚洲天堂2014| 国产菊爆视频在线观看| 99人妻碰碰碰久久久久禁片| 成人在线观看不卡| 国产乱人伦精品一区二区| 国产成人AV综合久久| 欧美一区福利| 看看一级毛片| 国产爽妇精品| 免费观看成人久久网免费观看| 五月天天天色| 五月婷婷激情四射| 一级全黄毛片| 日韩精品免费一线在线观看| 久久窝窝国产精品午夜看片| 国产成人综合亚洲网址| 国产精品无码一区二区桃花视频| 国产精品男人的天堂| 99久久精品免费看国产免费软件| 成人免费视频一区| 欧美性天天| 91亚洲国产视频| 亚洲欧美一级一级a| 亚洲永久免费网站| 58av国产精品| 午夜久久影院| 国产美女无遮挡免费视频网站 | 亚洲九九视频| 国产精品xxx| 日韩欧美中文在线| 中文字幕无码av专区久久| 亚洲男女在线| 国产一级精品毛片基地| 欧美午夜在线视频| 国产浮力第一页永久地址| 99热最新网址| 欧美日韩91| 亚洲AV人人澡人人双人| www.99在线观看| 欧美国产日韩另类| 国产精品性| 人人爱天天做夜夜爽| 98超碰在线观看| 国产成人精品午夜视频'| 欧美日韩中文字幕在线| 国产自视频| 国产欧美视频综合二区| 一级毛片在线免费视频| 亚洲综合欧美在线一区在线播放| 国产精品免费p区| 国产福利2021最新在线观看| 久久精品国产免费观看频道| 婷婷丁香在线观看| av在线5g无码天天| 久久久久久久久18禁秘| 欧美a在线| 久久亚洲国产视频| 精品人妻一区二区三区蜜桃AⅤ |