全國統一學習專線 8:30-21:00
          位置:勵普教育 > 品牌宣傳 > 系統架構設計師教程_系統架構設計師  正文

          系統架構設計師教程_系統架構設計師

          2023-03-24 14:37:05來源:勵普網

          隨著社會越來越發達,大家都選擇在網絡上汲取相關知識內容,比如系統架構設計師教程_系統架構設計師,為了更好的解答大家的問題,小編也是翻閱整理了相應內容,下面就一起來看一下吧!


          (資料圖)

          操作系統的主要功能是進行處理機與進程管理、存儲管理、設備管理、文件管理和作業管理,本節討論操作系統是如何完成這些功能的。

          進程管理

          處理機是計算機系統的核心資源。操作系統的功能之一就是處理機管理。隨著計算機的迅速發展,處理機管理顯得更為重要,這主要由于:計算機的速度越來越快,處理機的充分利用有利于系統效率的大大提高;處理機管理是整個操作系統的重心所在,其管理的好壞直接影響到整個系統的運行效率;而且操作系統中并發活動的管理和控制是在處理機管理下實現的,它集中了操作系統中最復雜的部分,它設計的好壞關系到整個系統的成敗,

          進程(process)是處理機管理中最基本的、最重要的概念。進程是系統并發執行的體現。由于在多道程序系統中,眾多的計算機用戶都以各種各樣的任務,隨時隨地爭奪使用處理機。為了動態地看待操作系統,則以進程作為獨立運行的基本單位,以進程作為分配資源的基本單位,從進程的觀點來研究操作系統。因此,處理機管理也被稱為進程管理。處理機管理的功能就是組織和協調用戶對處理機的爭奪使用,把處理機分配給進程,對進程進行管理和控制,以最大限度發揮處理機的作用。

          1.進程的概念

          用靜態的觀點看,操作系統是一組程序和表格的集合。用動態的觀點看,操作系統是進程的動態和并發執行的。而進程的概念實際上是程序這一概念發展的產物。因此,可以從分析程序的基本特征入手,引出 進程 的概念。

          順序程序是指程序中若干操作必須按照某種先后次序來執行,并且每次操作前和操作后的數據、狀態之間都有一定的關系。在早期的程序設計中,程序一般都是順序地執行的。

          在多道程序系統中,程序的運行環境發生了很大的變化。主要體現在:

          (1)資源共享。為了提高資源的利用率,計算機系統中的資源不再由一道程序專用,而是由多道程序共同使用。

          (2)程序的并發執行或并行執行。邏輯上講:允許多道不同用戶的程序并行運行;允許一個用戶程序內部完成不同操作的程序段之間并行運行;允許操作系統內部不同的程序之間并行運行。物理上講:內存儲器中保存多個程序,I/O設備被多個程序交替地共享使用;多處理機系統的情形下,表現為多個程序在各自的處理機上運行,執行時間是重疊的。單處理機系統時,程序的執行表現為多道程序交替地在處理機上相互空插運行。

          實際上,在多道程序系統中,程序的并行執行和資源共享之間是相輔相成的。一方面,只有允許程序并行執行,才可能存在資源共享的問題;另一方面,只有有效地實現資源共享,才可能使得程序并行執行。

          這樣,可增強計算機系統的處理能力和提高機器的利用率。并發操作實際上是這樣的事實:大多數程序段只要求操作在時間上是有序的,也就是有些操作必須在其他操作之前。這是有序的,但其中有些操作卻可以同時進行。

          2.進程的定義與分類

          由于多道程序系統環境下并行程序執行的特征:并發性、動態性、開放性和相互制約,這樣,使用程序的概念就不能如實地反映程序活動的這些特征,必須引入新的概念--進程。操作系統內在最本質的特征是動態性和并發性,而進程正反映了動態性和并發性等特征。

          程序的并行執行具有如下特征:

          (1)并發性。即并發程序的若干個程序段同時在系統中運行,這些程序段的執行在時間上是重迭的,一個程序段的執行尚未結束,另一個程序段的執行已經開始,即使這種重迭是很小的一部分,也稱這幾個程序段是并發執行的。

          (2)動態性。指程序與其執行活動不再一一對應。并發程序中的并發活動是動態產生、動態消亡的。如,幾道并發執行的C語言程序共享C編譯系統,在這種情況下,-個編譯程序能同時為多道程序服務,每個程序調用-次就是執行一次,即這個編譯程序對應多個執行活動。

          (3)開放性。指系統中并發執行的程序共享使用的資源,程序的執行與外部因素(如執行速度)相關,不再具有封閉性。

          (4)相互制約性。指程序的動態活動相互依賴、相互制約。其制約關系可分為間接制約關系和直接制約關系兩種:間接制約關系是指相互無邏輯關系的用戶程序之間競爭使用資源所發生的制約關系;直接制約關系是指存在邏輯關系的程序之間相互等待而發生的制約關系。通過程序活動的這種相互制約關系,才能保證程序的正確運行。

          系統中同時存在許多進程,它們依性質不同可分為各種不同的類別:

          (1)系統進程和用戶進程。一般來講,在管態下執行的進程稱為系統進程;在目態下執行的進程稱為用戶進程。系統進程起著資源管理和控制的作用;用戶進程是為用戶任務而建立的進程。

          (2)父進程和子進程。系統或用戶首先創建的進程稱為父進程;在父進程下面的進程稱為子進程。父子進程間存在著某些控制結構和控制關系,因此可以定義一個進程圖。進程圖是一棵有向的、包含一個根節點的樹。節點表示進程,記為Pi,從節點Pi到節點Pj的一條邊表示進程Pj是由進程Pi創建的。其中,稱Pi是Pj的父進程,而Pj則是Pi的子進程。如圖1-2所示。

          進程圖 圖1-2進程圖

          進程圖反映了進程間的父、子關系,創建與被創建關系,控制與被控制關系,反映了進程間的層次關系。同一個進程下屬的所有進程稱為一個進程族,即協調完成同一任務的進程集合同屬于一個進程族。父、子進程間的關系主要如下:

          (1)進程控制。任何一個進程只能由其直接的父進程創建,進程也只能被其父進程刪除。而且當刪除某一中間進程(即非葉子節點)時,同時隱含地刪除其所屬的所有各級子進程。父進程能對其下屬的各級子孫進程實施控制,如掛起某個子孫進程。而子進程無權對其父進程實施控制。

          (2)運行方式。父進程一旦創建了進程后,可以選擇父、子進程同時運行的方式;父進程也可以等待子進程的運行,直至全部子進程結束后,才開始重新運行。

          (3)資源共享。可以選擇兩種不同的資源共享方式:一是子進程可共享父進程所擁有的全部資源;二是子進程僅能共享父進程的部分資源。

          3.進程的狀態轉換

          由進程運行的間斷性,決定了進程至少具有下述三種狀態:

          (1)就緒狀態。當進程已分配了除CPU以外的所有必要的資源后,只要能再獲得處理機,便能立即執行,把進程這時的狀態稱為就緒狀態。在一個系統中,可以有多個進程同時處于就緒狀態,通常把它們排成一個隊列,稱為就緒隊列。

          (2)執行狀態指進程已獲得處理機,其程序正在執行。在單處理機系統中,只能有一個進程處于執行狀態。

          (3)阻塞狀態進程因發生某事件(如請求I/O、申請緩沖空間等)而暫停執行時的狀態,亦即進程的執行受到阻塞,故稱這種暫停狀態為阻塞狀態,有時也稱為 等待 狀態,或 睡眠 狀態。通常將處于阻塞狀態的進程排成一個隊列,稱為阻塞隊列。

          進程的狀態隨著自身的推進和外界的變化而變化。例如,就緒狀態的進程被進程調度程序選中進入執行狀態;執行狀態的進程因等待某一事件的發生轉入等待狀態;等待狀態的進程所等待事件來到便進入就緒狀態。進程的狀態可以動態地相互轉換,但阻塞狀態的進程不能直接進入執行狀態,就緒狀態的進程不能直接進入阻塞狀態。在任何時刻,任何進程都處于且只能處于某一狀態。進程狀態的變化情況如下:

          (1)運行態→等待態:一個進程運行中啟動了外圍設備,它就變成等待外圍設備傳輸信息的狀態;進程在運行中申請資源(主存儲空間及外圍設備因得不到滿足)時,變成等待資源狀態,進程在運行中出現了故障(程序出錯或主存儲器讀寫錯等),變成等待干預狀態。

          (2)等待態→就緒態:外圍設備工作結束后等待外圍設備傳輸信息的進程結束等待;等待的資源能得到滿足時(另一個進程歸還了資源),則等待資源者就結束等待;故障排隊后讓等待干預的進程結束等待,任何一個結束等待的進程必須先變成就緒狀態,待分配到處理器后才能運行。

          (3)運行態→就緒態:進程用完了一個使用處理器的時間后強迫該進桂暫時讓出處理器,當有更優先權的進程要運行時也迫使正在運行的進程讓出處理器。由于自身或外界原因成為等待狀態的進程讓出處理器時,它的狀態就變成就緒狀態。

          (4)就緒態→運行態:等待分配處理器的進程,系統按一種選定的策略從處于就緒狀態的進程中選擇一個進程,讓它占用處理器,那個被選中的進程就變成了運行態。

          圖1-3表示了進程的三種基本狀態及各狀態之間的轉換。

          圖1-3進程三態模型及其狀態轉換

          3.關于掛起狀態

          在不少系統中,進程只有圖1-3所示的三種狀態。但在另一些系統中,又增加了一些新狀態,其中最重要的是掛起狀態。引入掛起狀態的原因有:

          (1)對換的需要。為了緩和內存緊張的情況,而將內存中處于阻塞狀態的進程換至外存上,使進程又處于一種有別于阻塞狀態的新狀態。因為即使該進程所期待的事件發生,該進程仍不具備執行條件而不能進入就緒隊列,稱這種狀態為掛起狀態。

          (2)終端用戶的請求。當終端用戶在自己的程序運行期間,發現有可疑問題時。往往希望使自己的進程暫停下來。也就是說,使正在執行的進程暫停執行,若是就緒進程,則不接受調度以便研究其執行情況或對程序進行修改。把這種靜止狀態也稱為掛起狀態。

          (3)父進程請求。父進程常希望掛起自己的子進程,以便考查和修改子進程,或者協調各子進程間的活動。

          (4)負荷調節的需要。當實時系統中的工作負荷較重,有可能影響到對實時任務的控制時,可由系統把一些不重要的進程掛起,以保證系統能正常運行。

          (5)操作系統的需要。操作系統希望掛起某些進程,以便檢查運行中資源的使用情況及進行記賬。

          由上所述,不難了解掛起狀態具有下述三個屬性:

          (1)被掛起的進程,原來可能處于就緒狀態,此時進程(被掛起)的狀態稱為掛起就緒;若被掛起的進程原來可能處于阻塞狀態,此時的狀態稱為掛起阻塞。不論哪種狀態。該進程都是不可能被調度而執行的。

          (2)處于掛起阻塞狀態的進程,其阻塞條件與掛起條件無關;當進程所期待的事件出現后,進程雖不再被阻塞,但仍不能運行,這時,應將該進程從靜止阻塞轉換為掛起就緒。

          (3)進程可以由其自身掛起,也可由用戶或操作系統等將之掛起。其目的都在于阻止進程繼續運行,被掛起的進程是只能被用顯式方式來激活,以便從掛起狀態中解脫出來。

          圖1-4示出了具有掛起操作的進程狀態演變情況。

          圖1-4進程狀態轉換

          4.進程互斥與同步

          進程互斥定義為:一組并發進程中一個或多個程序段,因共享某一共有資源而導致必須以一個不允許交叉執行的單位執行。也就是說互斥是要保證臨界資源在某一時刻只被一個進程訪問。

          進程同步定義為:把異步環境下的一組并發進程因直接制約而互相發送消息而進行互相合作、互相等待,使得各進程按一定的速度執行的過程稱為進程同步。也就是說進程之間是異步執行的,同步即是使各進程按一定的制約順序和速度執行。

          系統中有些資源可以供多個進程同時使用,有些資源則一次僅允許一個進程使用,將一次僅允許一個進程使用的資源稱為臨界資源(CriticalResourse),很多物理設備如打印機、磁帶機等都屬于臨界資源,某些軟件的變量、數據、表格也不允許兩個進程同時使用,所以也是臨界資源。

          進程在并發執行中可以共享系統中的資源。但是臨界資源的訪問則必須互斥進行,即各進程對臨界資源進行操作的那段程序的執行也須是互斥的,只有這樣才能保證對臨界資源的互斥訪問。把一個進程訪問臨界資源的那段程序代碼稱為臨界區(Criticalsection)有了臨界區的概念,進程間的互斥就可以描述為:禁止兩個及以上的進程同時進入訪問同一臨界資源的臨界區。為此,必須有專門的同步機構來協調它們,協調準則如下:

          (1)空閑讓進。無進程處于臨界區時,若有進程要求進入臨界區則立即允許其進入;

          (2)忙則等待。當已有進程進入其臨界區時,其他試圖進入各自臨界區的進程必須等待,以保證諸進程互斥地進入臨界區;

          (3)有限等待。有若干進程要求進入臨界區時,應在有限時間內使一進程進入臨界區,即它們不應相互等待而誰也不進入臨界區;

          (4)讓權等待。對于等待進入臨界區的進程必須釋放其占有的CPU.

          信號量可以有效地實現進程的同步和互斥。在操作系統中,信號量是一個整數。當信號量大于等于零時,代表可供并發進程使用的資源實體數,當信號量小于零時則表示正在等待使用臨界區的進程數。建立一個信號量必須說明所建信號量所代表的意義和設置初值,以及建立相應的數據結構,以便指向那些等待使用該臨界區的進程。

          對信號量只能施加特殊的操作:P操作和V操作。P操作和V操作都是不可分割的原子操作,也稱為原語,因此,P原語和V原語執行期間不允許中斷發生。

          P(sem)操作的作用是將信號量sem值減l,若sem的值成負數,則調用P操作的進程暫停執行,直到另一個進程對同一信號量做V操作。V(sem)操作的作用是將信號量sem值加1,若sem的值小于等于0,從相應隊列(與sem有關的隊列)中選一個進程,喚醒它。

          一般P操作與V操作的定義如下所述:

          P操作:

          P(sem){

          sem=sem-1;

          if(sem 0)進程進入等待狀態;

          else繼續進行;}

          V操作:

          V(sem){

          sem=sem+1;

          if(sem≤0)喚醒隊列中的一個等待進程;

          else繼續進行;}

          為了保護共享資源(如公共變量等),使它們不被多個進程同時訪問,就要阻止這些進程同時執行訪問這些資源(臨界資源)的代碼段(臨界區);進程互斥不允許兩個以上共享臨界資源的并發進程同時進入臨界區。利用P、V原語和信號量可以方便地解決并發進程對臨界區的進程互斥問題。

          設信號量mutex是用于互斥的信號量,初值為1,表示沒有并發進程使用該臨界區。于是各并發進程的臨界區可改寫成下列形式的代碼段:

          P(mutex);

          臨界區

          V(mutex);

          要用P,V操作實現進程同步,需要引進私用信號量。私用信號量只與制約進程和被制約進程有關,而不是與整組并發進程相關。與此相對,進程互斥使用的信號量為公用信號量。首先為各并發進程設置私用信號量,然后為私用信號量賦初值,最后利用P,V原語和私用信號量規定各進程的執行順序。

          經典同步問題的例子是生產者-消費者問題。這要求存后再取,取后再存,即有兩個制約關系,為此,需要兩個信號量,表示緩沖區中的空單元數和非空單元數,記為Bufempty和Buffull,它們的初值分別是1和0,相應的程序段形式是:

          生產者

          loop

          生產一產品next;

          P(Bufempty);

          next產品存緩沖區;

          V(Buffull);

          endloop

          消費者

          loop

          P(Buffulll);

          V(Bufempty);

          從緩沖區中取產品;

          使用產品

          endloop

          5.前趨圖

          前趨圖是一個由結點和有向邊構成的有向無循環圖。該圖通常用于表現事務之間先后順序的制約關系。圖中的每個結點可以表示一個語句、一個程序段或是一個進程,結點間的有向邊表示兩個結點之間存在的前趨關系。

          例:在計算機中,經常采用流水線方式執行指令,若每一條指令都可以分解為取指、分析和執行三步。取指操作為:取指操作為Ai,分析操作為Bi和執行操作為Ci(i=1,2,3)。圖1-5為三個任務各程序段并發執行的前驅圖。

          圖中A1沒有前趨結點,稱為開始結點,它不受任何制約,可以直接執行;而B1與A2只能在A1執行完成之后才能開始,而B2必須在B1與A2完成之后才能開始;C3沒有后繼結點,稱為終止結點。

          圖1-5前趨圖

          在前趨圖中,執行優后順序的制約關系可分為兩種:直接制約和間接制約。

          直接制約通常是指一個操作中,多個步驟之間的制約關系,也可以說是 同步的進程之間的制約關系 .例如圖1-5中,A1、B1、C1是一條指令的取指、分析、執行三個步驟,所以他們之間的關系是直接制約。

          間接制約通常是指多個操作之間相同步驟的制約關系,也可以說是 互斥的進程之間的制約關系 .例如圖1-5中,A1、A2、A3之間就存在間接制約的關系。

          前趨圖的應用廣泛,在項目開發中,可用前趨圖來分析哪些活動可以并行完成。同時項目管理工具:Pert圖,單(雙)代號網絡圖等都融入了前趨圖的思想。

          6.進程調度與死鎖

          進程調度即處理器調度(又稱上下文轉換),它的主要功能是確定在什么時候分配處理器,并確定分給哪一個進程,即讓正在執行的進程改變狀態并轉入就緒隊列的隊尾,再由調度原語將就緒隊列的隊首進程取出,投入執行。

          引起進程調度的原因有以下幾類:

          (1)正在執行的進程執行完畢。

          (2)執行中的進程自己調用阻塞原語將自己阻塞起來進入睡眠狀態。

          (3)執行中的進程調用了P原語操作,從而因資源不足而阻塞;或調用V原語操作激活了等待資源的進程隊列。

          (4)在分時系統中,當一進程用完一個時間片。

          (5)就緒隊列中某進程的優先級變得高于當前執行進程的優先級,也將引起進程調度。

          進程調度的方式有兩類:剝奪方式與非剝奪方式。所謂非剝奪方式是指,一旦某個作業或進程占有了處理器,別的進程就不能把處理器從這個進程手中奪走,直到該進程自己因調用原語操作而進入阻塞狀態,或時間片用完而讓出處理機;剝奪方式是指,當就緒隊列中一旦有進程的優先級高于當前執行進程的優先級時,便立即發生進程調度,轉讓處理機。

          進程調度的算法是服務于系統目標的策略,對于不同的系統與系統目標,常采用不同的調度算法:

          (1)先來先服務(FirstComeandFirstServerd,FCFS)調度算法,又稱先進先出(FirstInandFirstOut,FIFO)。就緒隊列按先來后到原則排隊。

          (2)優先數調度。優先數反映了進程優先級,就緒隊列按優先數排隊。有兩種確定優先級的方法,即靜態優先級和動態優先級。靜態優先級是指進程的優先級在進程開始執行前確定,執行過程中不變,而動態優先級則可以在進程執行過程中改變。

          (3)輪轉法(RoundRobin)。就緒隊列按FCFS方式排隊。每個進程執行一次占有處理器時間都不超過規定的時間單位(時間片)。若超過,則自行釋放自己所占有的CPU而排到就緒隊列的末尾,等待下一次調度。同時,進程調度程序又去調度當前就緒隊列中的第一個進程。

          進程管理是操作系統的核心,在進程管理的實現中,如果設計不當,會出現一種尷尬的局面--死鎖。

          當若干個進程互相競爭對方已占有的資源,無限期地等待,不能向前推進時會造成 死鎖 .例如,P1進程占有資源R1,P2進程占有資源R2,這時,P1又需要資源R2,P2也需要資源R1,它們在等待對方占有的資源時,又不會釋放自己占有的資源,因而使雙方都進入了無限等待狀態。

          死鎖是系統的一種出錯狀態,它不僅浪費大量的系統資源,甚至會導致整個系統的崩潰,所以死鎖是應該盡量預防和避免的。

          (1)死鎖條件。產生死鎖的主要原因是供共享的系統資源不足,資源分配策略和進程的推進順序不當。系統資源既可能是可重復使用的一直性資源,也可能是消耗性的臨時資源。產生死鎖的必要條件是:互斥條件、保持和等待條件、不剝奪條件和環路等待條件。

          (2)解決死鎖的策略。處于死鎖狀態的進程不能繼續執行又占有了系統資源,從而會阻礙其他作業的執行。

          解決死鎖有兩種策略:一種是在死鎖發生前采用的預防和避免策略;另一種是在死鎖發生后采用的檢測與恢復策略。

          死鎖的預防主要是通過打破死鎖產生的4個必要條件之一來保證不會產生死鎖。采用的死鎖預防策略通常有資源的靜態分配法或有序分配法,它們分別打破了資源動態分配條件和循環等待條件,因此不會發生死鎖。但這樣做會大大降低系統資源的利用率和進程之間的并行程度。

          死鎖避免策略,則是在系統進行資源分配時,先執行一個死鎖避免算法(典型的如銀行家算法),來保證本次分配不會導致死鎖的發生。由于資源分配很頻繁,因此死鎖避免策略要耗費大量的CPU時間。

          希賽網希賽網提示:實際上,系統出現死鎖的概率很小,故從系統所花的代價上看,采用死鎖發生后的檢測與恢復策略要比采用死鎖發生前的預防與避免策略代價小一些。

          7.線程

          在支持線程的操作系統中,線程是進程中的-個實體,是系統實施調度的獨立單位。線程只擁有-些在運行中必不可少的資源,它與屬于同一個進程的其他線程共享該進程所擁有的資源。各線程之間可以并發地運行。線程切換時只需保存和設置少量寄存器的內容,而并不涉及存儲器管理方面的操作,所以線程切換的開銷遠遠小于進程的切換(原運行進程狀態的切換還要引起資源轉移及現場保護等問題)。同一個進程中的多個線程共享同一個地址空間,這使得線程之間同步和通信的實現也比較容易。

           
          溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

          相關內容: 系統架構設計師 教程

          同類文章
          導航

          雅思 托福 GRE IB SAT GMAT A-Level ACT 多鄰國英語測試 OSSD 英語四六級 出國英語 詞匯 AEAS 英語口語 商務英語 考研英語 青少英語 成人英語 個人提升英語 高中英語 劍橋英語 AP課程 一級建造師 二級建造師 消防工程師 消防設施操作員 BIM 造價工程師 環評師 監理工程師 咨詢工程師 安全工程師 建筑九大員 注冊電氣工程師 一級注冊建筑師 公路水運檢測 通信工程 裝配式工程師 二級注冊建筑師 PLC智能制造 智慧消防工程師 智慧建造工程師 全過程工程咨詢師 EPC工程總承包 碳排放管理師 應急救援員 初級會計師 中級會計師 注冊會計師(cpa) CFA ACCA CMA 基金從業 證券從業 會計證 初中級經濟師 薪稅師 會計實操 企業合規師 FRM 會計就業 教師資格 食品安全管理師 人力資源管理 鄉村規劃師 心理咨詢師 健康管理師 家庭教育指導師 普通話 公共營養師 物業經理 網絡主播 專利代理師 教師招聘 少兒編程 書法培訓 繪畫美術 音樂 舞蹈 棋類 國畫 樂器 擊劍 機器人編程 小孩子注意力訓練 兒童專注力 體適能 少兒小主播 信奧賽C++ 籃球 羽毛球 足球培訓 嵌入式培訓 軟件測試 Web前端 linux云計算 大數據 C/C++開發 電子商務 Java開發 影視后期 剪輯包裝 游戲設計 php 商業插畫 產品經理 Python photoshop UXD全鏈路 UI設計 室內設計 電商視覺設計 IT認證 PMP項目管理

          主站蜘蛛池模板: 日韩视频一区二区| 亚洲av无码一区二区三区天堂| 日本精品少妇一区二区三区 | 狠狠爱无码一区二区三区| 国模丽丽啪啪一区二区| 最新中文字幕一区二区乱码| 亚洲av无码不卡一区二区三区| 亚洲国产av一区二区三区丶| 秋霞鲁丝片一区二区三区| 国产精品一区三区| 色国产在线视频一区| 色久综合网精品一区二区| 视频一区在线播放| 狠狠爱无码一区二区三区| 久久精品无码一区二区三区不卡| 国产色综合一区二区三区| 八戒久久精品一区二区三区| 国产一区二区不卡老阿姨| 国产91大片精品一区在线观看| 精品免费久久久久国产一区| 国产a久久精品一区二区三区| 成人区人妻精品一区二区不卡| 国产成人精品一区二区秒拍| 国产av福利一区二区三巨| 日韩伦理一区二区| 日韩精品无码一区二区视频 | 国产一区二区三区小向美奈子| 3D动漫精品啪啪一区二区下载| 国产激情无码一区二区app| 日韩精品无码一区二区三区四区| 精品国产亚洲一区二区在线观看| 中文字幕日韩精品一区二区三区 | 午夜福利av无码一区二区| 亚洲视频在线观看一区| 精品女同一区二区| 99国产精品一区二区| 日本一区高清视频| 精品视频一区二区三区在线观看| 亚洲Av永久无码精品一区二区| 国精产品一区一区三区有限公司| 亚洲AV日韩精品一区二区三区|