日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

听说面试又挂在计算机操作系统了?仔细看看这个!!!【强烈推荐】

發布時間:2024/2/28 windows 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 听说面试又挂在计算机操作系统了?仔细看看这个!!!【强烈推荐】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章較長,建議收藏!!!

一、概述

基本特征

1. 并發

并發是指宏觀上在一段時間內能同時運行多個程序,而并行則指同一時刻能運行多個指令。

并行需要硬件支持,如多流水線、多核處理器或者分布式計算系統。

操作系統通過引入進程和線程,使得程序能夠并發運行。

2. 共享

共享是指系統中的資源可以被多個并發進程共同使用。

有兩種共享方式:互斥共享和同時共享。

互斥共享的資源稱為臨界資源,例如打印機等,在同一時間只允許一個進程訪問,需要用同步機制來實現對臨界資源的訪問。

3. 虛擬

虛擬技術把一個物理實體轉換為多個邏輯實體。

主要有兩種虛擬技術:時分復用技術和空分復用技術。

多個進程能在同一個處理器上并發執行使用了時分復用技術,讓每個進程輪流占有處理器,每次只執行一小個時間片并快速切換。

虛擬內存使用了空分復用技術,它將物理內存抽象為地址空間,每個進程都有各自的地址空間。地址空間的頁被映射到物理內存,地址空間的頁并不需要全部在物理內存中,當使用到一個沒有在物理內存的頁時,執行頁面置換算法,將該頁置換到內存中。

4. 異步

異步指進程不是一次性執行完畢,而是走走停停,以不可知的速度向前推進。

基本功能

1. 進程管理

進程控制、進程同步、進程通信、死鎖處理、處理機調度等。

2. 內存管理

內存分配、地址映射、內存保護與共享、虛擬內存等。

3. 文件管理

文件存儲空間的管理、目錄管理、文件讀寫管理和保護等。

4. 設備管理

完成用戶的 I/O 請求,方便用戶使用各種設備,并提高設備的利用率。

主要包括緩沖管理、設備分配、設備處理、虛擬設備等。

系統調用

如果一個進程在用戶態需要使用內核態的功能,就進行系統調用從而陷入內核,由操作系統代為完成。

Linux 的系統調用主要有以下這些:

TaskCommands
進程控制fork(); exit(); wait();
進程通信pipe(); shmget(); mmap();
文件操作open(); read(); write();
設備操作ioctl(); read(); write();
信息維護getpid(); alarm(); sleep();
安全chmod(); umask(); chown();

大內核和微內核

1. 大內核

大內核是將操作系統功能作為一個緊密結合的整體放到內核。

由于各模塊共享信息,因此有很高的性能。

2. 微內核

由于操作系統不斷復雜,因此將一部分操作系統功能移出內核,從而降低內核的復雜性。移出的部分根據分層的原則劃分成若干服務,相互獨立。

在微內核結構下,操作系統被劃分成小的、定義良好的模塊,只有微內核這一個模塊運行在內核態,其余模塊運行在用戶態。

因為需要頻繁地在用戶態和核心態之間進行切換,所以會有一定的性能損失。

中斷分類

1. 外中斷

由 CPU 執行指令以外的事件引起,如 I/O 完成中斷,表示設備輸入/輸出處理已經完成,處理器能夠發送下一個輸入/輸出請求。此外還有時鐘中斷、控制臺中斷等。

2. 異常

由 CPU 執行指令的內部事件引起,如非法操作碼、地址越界、算術溢出等。

3. 陷入

在用戶程序中使用系統調用。

二、進程管理

進程與線程

1. 進程

進程是資源分配的基本單位。

進程控制塊?(Process Control Block, PCB)?描述進程的基本信息和運行狀態,所謂的創建進程和撤銷進程,都是指對 PCB 的操作。

下圖顯示了 4 個程序創建了 4 個進程,這 4 個進程可以并發地執行。

2. 線程

線程是獨立調度的基本單位。

一個進程中可以有多個線程,它們共享進程資源。

QQ 和瀏覽器是兩個進程,瀏覽器進程里面有很多線程,例如 HTTP 請求線程、事件響應線程、渲染線程等等,線程的并發執行使得在瀏覽器中點擊一個新鏈接從而發起 HTTP 請求時,瀏覽器還可以響應用戶的其它事件。

3. 區別

Ⅰ 擁有資源

進程是資源分配的基本單位,但是線程不擁有資源,線程可以訪問隸屬進程的資源。

Ⅱ 調度

線程是獨立調度的基本單位,在同一進程中,線程的切換不會引起進程切換,從一個進程中的線程切換到另一個進程中的線程時,會引起進程切換。

Ⅲ 系統開銷

由于創建或撤銷進程時,系統都要為之分配或回收資源,如內存空間、I/O 設備等,所付出的開銷遠大于創建或撤銷線程時的開銷。類似地,在進行進程切換時,涉及當前執行進程 CPU 環境的保存及新調度進程 CPU 環境的設置,而線程切換時只需保存和設置少量寄存器內容,開銷很小。

Ⅳ 通信方面

線程間可以通過直接讀寫同一進程中的數據進行通信,但是進程通信需要借助 IPC。

進程狀態的切換

  • 就緒狀態(ready):等待被調度

  • 運行狀態(running)

  • 阻塞狀態(waiting):等待資源

應該注意以下內容:

  • 只有就緒態和運行態可以相互轉換,其它的都是單向轉換。就緒狀態的進程通過調度算法從而獲得 CPU 時間,轉為運行狀態;而運行狀態的進程,在分配給它的 CPU 時間片用完之后就會轉為就緒狀態,等待下一次調度。

  • 阻塞狀態是缺少需要的資源從而由運行狀態轉換而來,但是該資源不包括 CPU 時間,缺少 CPU 時間會從運行態轉換為就緒態。

進程調度算法

不同環境的調度算法目標不同,因此需要針對不同環境來討論調度算法。

1. 批處理系統

批處理系統沒有太多的用戶操作,在該系統中,調度算法目標是保證吞吐量和周轉時間(從提交到終止的時間)。

1.1 先來先服務 first-come first-serverd(FCFS)

按照請求的順序進行調度。

有利于長作業,但不利于短作業,因為短作業必須一直等待前面的長作業執行完畢才能執行,而長作業又需要執行很長時間,造成了短作業等待時間過長。

1.2 短作業優先 shortest job first(SJF)

按估計運行時間最短的順序進行調度。

長作業有可能會餓死,處于一直等待短作業執行完畢的狀態。因為如果一直有短作業到來,那么長作業永遠得不到調度。

1.3 最短剩余時間優先 shortest remaining time next(SRTN)

按估計剩余時間最短的順序進行調度。

2. 交互式系統

交互式系統有大量的用戶交互操作,在該系統中調度算法的目標是快速地進行響應。

2.1 時間片輪轉

將所有就緒進程按 FCFS 的原則排成一個隊列,每次調度時,把 CPU 時間分配給隊首進程,該進程可以執行一個時間片。當時間片用完時,由計時器發出時鐘中斷,調度程序便停止該進程的執行,并將它送往就緒隊列的末尾,同時繼續把 CPU 時間分配給隊首的進程。

時間片輪轉算法的效率和時間片的大小有很大關系:

  • 因為進程切換都要保存進程的信息并且載入新進程的信息,如果時間片太小,會導致進程切換得太頻繁,在進程切換上就會花過多時間。

  • 而如果時間片過長,那么實時性就不能得到保證。

2.2 優先級調度

為每個進程分配一個優先級,按優先級進行調度。

為了防止低優先級的進程永遠等不到調度,可以隨著時間的推移增加等待進程的優先級。

2.3 多級反饋隊列

一個進程需要執行 100?個時間片,如果采用時間片輪轉調度算法,那么需要交換 100?次。

多級隊列是為這種需要連續執行多個時間片的進程考慮,它設置了多個隊列,每個隊列時間片大小都不同,例如 1,2,4,8,..。進程在第一個隊列沒執行完,就會被移到下一個隊列。這種方式下,之前的進程只需要交換 7 次。

每個隊列優先權也不同,最上面的優先權最高。因此只有上一個隊列沒有進程在排隊,才能調度當前隊列上的進程。

可以將這種調度算法看成是時間片輪轉調度算法和優先級調度算法的結合。

3. 實時系統

實時系統要求一個請求在一個確定時間內得到響應。

分為硬實時和軟實時,前者必須滿足絕對的截止時間,后者可以容忍一定的超時。

進程同步

1. 臨界區

對臨界資源進行訪問的那段代碼稱為臨界區。

為了互斥訪問臨界資源,每個進程在進入臨界區之前,需要先進行檢查。

//?entry?section //?critical?section; //?exit?section

2. 同步與互斥

  • 同步:多個進程按一定順序執行;

  • 互斥:多個進程在同一時刻只有一個進程能進入臨界區。

3. 信號量

信號量(Semaphore)是一個整型變量,可以對其執行 down 和 up 操作,也就是常見的 P 和 V 操作。

  • down??:?如果信號量大于?0?,執行?-1 操作;如果信號量等于?0,進程睡眠,等待信號量大于?0;

  • up?:對信號量執行?+1 操作,喚醒睡眠的進程讓其完成 down 操作。

down 和 up 操作需要被設計成原語,不可分割,通常的做法是在執行這些操作的時候屏蔽中斷。

如果信號量的取值只能為 0 或者 1,那么就成為了 ?互斥量(Mutex)?,0?表示臨界區已經加鎖,1 表示臨界區解鎖。

typedef?int?semaphore; semaphore?mutex?=?1; void?P1()?{down(&mutex);//?臨界區up(&mutex); }void?P2()?{down(&mutex);//?臨界區up(&mutex); }

?使用信號量實現生產者-消費者問題???

問題描述:使用一個緩沖區來保存物品,只有緩沖區沒有滿,生產者才可以放入物品;只有緩沖區不為空,消費者才可以拿走物品。

因為緩沖區屬于臨界資源,因此需要使用一個互斥量 mutex 來控制對緩沖區的互斥訪問。

為了同步生產者和消費者的行為,需要記錄緩沖區中物品的數量。數量可以使用信號量來進行統計,這里需要使用兩個信號量:empty 記錄空緩沖區的數量,full 記錄滿緩沖區的數量。其中,empty 信號量是在生產者進程中使用,當 empty 不為?0?時,生產者才可以放入物品;full 信號量是在消費者進程中使用,當 full 信號量不為?0?時,消費者才可以取走物品。

注意,不能先對緩沖區進行加鎖,再測試信號量。也就是說,不能先執行 down(mutex)?再執行 down(empty)。如果這么做了,那么可能會出現這種情況:生產者對緩沖區加鎖后,執行 down(empty)?操作,發現 empty =?0,此時生產者睡眠。消費者不能進入臨界區,因為生產者對緩沖區加鎖了,消費者就無法執行 up(empty)?操作,empty 永遠都為?0,導致生產者永遠等待下,不會釋放鎖,消費者因此也會永遠等待下去。

#define?N?100 typedef?int?semaphore; semaphore?mutex?=?1; semaphore?empty?=?N; semaphore?full?=?0;void?producer()?{while(TRUE)?{int?item?=?produce_item();down(&empty);down(&mutex);insert_item(item);up(&mutex);up(&full);} }void?consumer()?{while(TRUE)?{down(&full);down(&mutex);int?item?=?remove_item();consume_item(item);up(&mutex);up(&empty);} }

4. 管程

使用信號量機制實現的生產者消費者問題需要客戶端代碼做很多控制,而管程把控制的代碼獨立出來,不僅不容易出錯,也使得客戶端代碼調用更容易。

c 語言不支持管程,下面的示例代碼使用了類 Pascal 語言來描述管程。示例代碼的管程提供了 insert()?和 remove()?方法,客戶端代碼通過調用這兩個方法來解決生產者-消費者問題。

monitor?ProducerConsumerinteger?i;condition?c;procedure?insert();begin//?...end;procedure?remove();begin//?...end; end?monitor;

管程有一個重要特性:在一個時刻只能有一個進程使用管程。進程在無法繼續執行的時候不能一直占用管程,否者其它進程永遠不能使用管程。

管程引入了??條件變量??以及相關的操作:wait()?和?signal()?來實現同步操作。對條件變量執行 wait()?操作會導致調用進程阻塞,把管程讓出來給另一個進程持有。signal()?操作用于喚醒被阻塞的進程。

使用管程實現生產者-消費者問題?

//?管程 monitor?ProducerConsumercondition?full,?empty;integer?count?:=?0;condition?c;procedure?insert(item:?integer);beginif?count?=?N?then?wait(full);insert_item(item);count?:=?count?+?1;if?count?=?1?then?signal(empty);end;function?remove:?integer;beginif?count?=?0?then?wait(empty);remove?=?remove_item;count?:=?count?-?1;if?count?=?N?-1?then?signal(full);end; end?monitor;//?生產者客戶端 procedure?producer beginwhile?true?dobeginitem?=?produce_item;ProducerConsumer.insert(item);end end;//?消費者客戶端 procedure?consumer beginwhile?true?dobeginitem?=?ProducerConsumer.remove;consume_item(item);end end;

經典同步問題

生產者和消費者問題前面已經討論過了。

1. 讀者-寫者問題

允許多個進程同時對數據進行讀操作,但是不允許讀和寫以及寫和寫操作同時發生。

一個整型變量 count 記錄在對數據進行讀操作的進程數量,一個互斥量 count_mutex 用于對 count 加鎖,一個互斥量 data_mutex 用于對讀寫的數據加鎖。

typedef?int?semaphore; semaphore?count_mutex?=?1; semaphore?data_mutex?=?1; int?count?=?0;void?reader()?{while(TRUE)?{down(&count_mutex);count++;if(count?==?1)?down(&data_mutex);?//?第一個讀者需要對數據進行加鎖,防止寫進程訪問up(&count_mutex);read();down(&count_mutex);count--;if(count?==?0)?up(&data_mutex);up(&count_mutex);} }void?writer()?{while(TRUE)?{down(&data_mutex);write();up(&data_mutex);} }

以下內容由?@Bandi Yugandhar 提供。

The first case may result Writer to starve. This case favous Writers i.e no writer, once added to the queue, shall be kept waiting longer than absolutely necessary(only when there are readers that entered the queue before the writer).

int?readcount,?writecount;???????????????????//(initial?value?=?0) semaphore?rmutex,?wmutex,?readLock,?resource;?//(initial?value?=?1)//READER void?reader()?{ <ENTRY?Section>down(&readLock);?????????????????//??reader?is?trying?to?enterdown(&rmutex);??????????????????//???lock?to?increase?readcountreadcount++;?????????????????if?(readcount?==?1)??????????down(&resource);??????????????//if?you?are?the?first?reader?then?lock??the?resourceup(&rmutex);??????????????????//release??for?other?readersup(&readLock);?????????????????//Done?with?trying?to?access?the?resource<CRITICAL?Section> //reading?is?performed<EXIT?Section>down(&rmutex);??????????????????//reserve?exit?section?-?avoids?race?condition?with?readersreadcount--;???????????????????????//indicate?you're?leavingif?(readcount?==?0)??????????//checks?if?you?are?last?reader?leavingup(&resource);??????????????//if?last,?you?must?release?the?locked?resourceup(&rmutex);??????????????????//release?exit?section?for?other?readers }//WRITER void?writer()?{<ENTRY?Section>down(&wmutex);??????????????????//reserve?entry?section?for?writers?-?avoids?race?conditionswritecount++;????????????????//report?yourself?as?a?writer?enteringif?(writecount?==?1)?????????//checks?if?you're?first?writerdown(&readLock);???????????????//if?you're?first,?then?you?must?lock?the?readers?out.?Prevent?them?from?trying?to?enter?CSup(&wmutex);??????????????????//release?entry?section<CRITICAL?Section>down(&resource);????????????????//reserve?the?resource?for?yourself?-?prevents?other?writers?from?simultaneously?editing?the?shared?resource//writing?is?performedup(&resource);????????????????//release?file<EXIT?Section>down(&wmutex);??????????????????//reserve?exit?sectionwritecount--;????????????????//indicate?you're?leavingif?(writecount?==?0)?????????//checks?if?you're?the?last?writerup(&readLock);???????????????//if?you're?last?writer,?you?must?unlock?the?readers.?Allows?them?to?try?enter?CS?for?readingup(&wmutex);??????????????????//release?exit?section }

We can observe that every reader is forced to acquire ReadLock. On the otherhand, writers doesn’t need to lock individually. Once the first writer locks the ReadLock, it will be released only when there is no writer left in the queue.

From the both cases we observed that either reader or writer has to starve. Below solutionadds the constraint that no thread shall be allowed to starve; that is, the operation of obtaining a lock on the shared data will always terminate in a bounded amount of time.

int?readCount;??????????????????//?init?to?0;?number?of?readers?currently?accessing?resource//?all?semaphores?initialised?to?1 Semaphore?resourceAccess;???????//?controls?access?(read/write)?to?the?resource Semaphore?readCountAccess;??????//?for?syncing?changes?to?shared?variable?readCount Semaphore?serviceQueue;?????????//?FAIRNESS:?preserves?ordering?of?requests?(signaling?must?be?FIFO)void?writer() {?down(&serviceQueue);???????????//?wait?in?line?to?be?servicexs//?<ENTER>down(&resourceAccess);?????????//?request?exclusive?access?to?resource//?</ENTER>up(&serviceQueue);???????????//?let?next?in?line?be?serviced//?<WRITE>writeResource();????????????//?writing?is?performed//?</WRITE>//?<EXIT>up(&resourceAccess);?????????//?release?resource?access?for?next?reader/writer//?</EXIT> }void?reader() {?down(&serviceQueue);???????????//?wait?in?line?to?be?serviceddown(&readCountAccess);????????//?request?exclusive?access?to?readCount//?<ENTER>if?(readCount?==?0)?????????//?if?there?are?no?readers?already?reading:down(&resourceAccess);?????//?request?resource?access?for?readers?(writers?blocked)readCount++;????????????????//?update?count?of?active?readers//?</ENTER>up(&serviceQueue);???????????//?let?next?in?line?be?servicedup(&readCountAccess);????????//?release?access?to?readCount//?<READ>readResource();?????????????//?reading?is?performed//?</READ>down(&readCountAccess);????????//?request?exclusive?access?to?readCount//?<EXIT>readCount--;????????????????//?update?count?of?active?readersif?(readCount?==?0)?????????//?if?there?are?no?readers?left:up(&resourceAccess);?????//?release?resource?access?for?all//?</EXIT>up(&readCountAccess);????????//?release?access?to?readCount }

2. 哲學家進餐問題

五個哲學家圍著一張圓桌,每個哲學家面前放著食物。哲學家的生活有兩種交替活動:吃飯以及思考。當一個哲學家吃飯時,需要先拿起自己左右兩邊的兩根筷子,并且一次只能拿起一根筷子。

下面是一種錯誤的解法,考慮到如果所有哲學家同時拿起左手邊的筷子,那么就無法拿起右手邊的筷子,造成死鎖。

#define?N?5void?philosopher(int?i)?{while(TRUE)?{think();take(i);???????//?拿起左邊的筷子take((i+1)%N);?//?拿起右邊的筷子eat();put(i);put((i+1)%N);} }

為了防止死鎖的發生,可以設置兩個條件:

  • 必須同時拿起左右兩根筷子;

  • 只有在兩個鄰居都沒有進餐的情況下才允許進餐。

#define?N?5 #define?LEFT?(i?+?N?-?1)?%?N?//?左鄰居 #define?RIGHT?(i?+?1)?%?N????//?右鄰居 #define?THINKING?0 #define?HUNGRY???1 #define?EATING???2 typedef?int?semaphore; int?state[N];????????????????//?跟蹤每個哲學家的狀態 semaphore?mutex?=?1;?????????//?臨界區的互斥 semaphore?s[N];??????????????//?每個哲學家一個信號量void?philosopher(int?i)?{while(TRUE)?{think();take_two(i);eat();put_two(i);} }void?take_two(int?i)?{down(&mutex);state[i]?=?HUNGRY;test(i);up(&mutex);down(&s[i]); }void?put_two(i)?{down(&mutex);state[i]?=?THINKING;test(LEFT);test(RIGHT);up(&mutex); }void?test(i)?{?????????//?嘗試拿起兩把筷子if(state[i]?==?HUNGRY?&&?state[LEFT]?!=?EATING?&&?state[RIGHT]?!=EATING)?{state[i]?=?EATING;up(&s[i]);} }

進程通信

進程同步與進程通信很容易混淆,它們的區別在于:

  • 進程同步:控制多個進程按一定順序執行;

  • 進程通信:進程間傳輸信息。

進程通信是一種手段,而進程同步是一種目的。也可以說,為了能夠達到進程同步的目的,需要讓進程進行通信,傳輸一些進程同步所需要的信息。

1. 管道

管道是通過調用 pipe 函數創建的,fd[0]?用于讀,fd[1]?用于寫。

#include?<unistd.h> int?pipe(int?fd[2]);

它具有以下限制:

  • 只支持半雙工通信(單向交替傳輸);

  • 只能在父子進程中使用。

2. FIFO

也稱為命名管道,去除了管道只能在父子進程中使用的限制。

#include?<sys/stat.h> int?mkfifo(const?char?*path,?mode_t?mode); int?mkfifoat(int?fd,?const?char?*path,?mode_t?mode);

FIFO 常用于客戶-服務器應用程序中,FIFO 用作匯聚點,在客戶進程和服務器進程之間傳遞數據。

3. 消息隊列

相比于 FIFO,消息隊列具有以下優點:

  • 消息隊列可以獨立于讀寫進程存在,從而避免了 FIFO 中同步管道的打開和關閉時可能產生的困難;

  • 避免了 FIFO 的同步阻塞問題,不需要進程自己提供同步方法;

  • 讀進程可以根據消息類型有選擇地接收消息,而不像 FIFO 那樣只能默認地接收。

4. 信號量

它是一個計數器,用于為多個進程提供對共享數據對象的訪問。

5. 共享存儲

允許多個進程共享一個給定的存儲區。因為數據不需要在進程之間復制,所以這是最快的一種 IPC。

需要使用信號量用來同步對共享存儲的訪問。

多個進程可以將同一個文件映射到它們的地址空間從而實現共享內存。另外 XSI 共享內存不是使用文件,而是使用使用內存的匿名段。

6. 套接字

與其它通信機制不同的是,它可用于不同機器間的進程通信。

三、死鎖

必要條件

  • 互斥:每個資源要么已經分配給了一個進程,要么就是可用的。

  • 占有和等待:已經得到了某個資源的進程可以再請求新的資源。

  • 不可搶占:已經分配給一個進程的資源不能強制性地被搶占,它只能被占有它的進程顯式地釋放。

  • 環路等待:有兩個或者兩個以上的進程組成一條環路,該環路中的每個進程都在等待下一個進程所占有的資源。

處理方法

主要有以下四種方法:

  • 鴕鳥策略

  • 死鎖檢測與死鎖恢復

  • 死鎖預防

  • 死鎖避免

鴕鳥策略

把頭埋在沙子里,假裝根本沒發生問題。

因為解決死鎖問題的代價很高,因此鴕鳥策略這種不采取任務措施的方案會獲得更高的性能。

當發生死鎖時不會對用戶造成多大影響,或發生死鎖的概率很低,可以采用鴕鳥策略。

大多數操作系統,包括 Unix,Linux 和 Windows,處理死鎖問題的辦法僅僅是忽略它。

死鎖檢測與死鎖恢復

不試圖阻止死鎖,而是當檢測到死鎖發生時,采取措施進行恢復。

1. 每種類型一個資源的死鎖檢測

上圖為資源分配圖,其中方框表示資源,圓圈表示進程。資源指向進程表示該資源已經分配給該進程,進程指向資源表示進程請求獲取該資源。

圖 a 可以抽取出環,如圖 b,它滿足了環路等待條件,因此會發生死鎖。

每種類型一個資源的死鎖檢測算法是通過檢測有向圖是否存在環來實現,從一個節點出發進行深度優先搜索,對訪問過的節點進行標記,如果訪問了已經標記的節點,就表示有向圖存在環,也就是檢測到死鎖的發生。

2. 每種類型多個資源的死鎖檢測

上圖中,有三個進程四個資源,每個數據代表的含義如下:

  • E 向量:資源總量

  • A 向量:資源剩余量

  • C 矩陣:每個進程所擁有的資源數量,每一行都代表一個進程擁有資源的數量

  • R 矩陣:每個進程請求的資源數量

進程 P1?和 P2?所請求的資源都得不到滿足,只有進程 P3?可以,讓 P3?執行,之后釋放 P3?擁有的資源,此時 A =?(2 2 2 0)。P2?可以執行,執行后釋放 P2?擁有的資源,A =?(4 2 2 1)?。P1?也可以執行。所有進程都可以順利執行,沒有死鎖。

算法總結如下:

每個進程最開始時都不被標記,執行過程有可能被標記。當算法結束時,任何沒有被標記的進程都是死鎖進程。

  • 尋找一個沒有標記的進程 Pi,它所請求的資源小于等于 A。

  • 如果找到了這樣一個進程,那么將 C 矩陣的第 i 行向量加到 A 中,標記該進程,并轉回 1。

  • 如果沒有這樣一個進程,算法終止。

  • 3. 死鎖恢復

    • 利用搶占恢復

    • 利用回滾恢復

    • 通過殺死進程恢復

    死鎖預防

    在程序運行之前預防發生死鎖。

    1. 破壞互斥條件

    例如假脫機打印機技術允許若干個進程同時輸出,唯一真正請求物理打印機的進程是打印機守護進程。

    2. 破壞占有和等待條件

    一種實現方式是規定所有進程在開始執行前請求所需要的全部資源。

    3. 破壞不可搶占條件

    4. 破壞環路等待

    給資源統一編號,進程只能按編號順序來請求資源。

    死鎖避免

    在程序運行時避免發生死鎖。

    1. 安全狀態

    圖 a 的第二列 Has 表示已擁有的資源數,第三列 Max 表示總共需要的資源數,Free 表示還有可以使用的資源數。從圖 a 開始出發,先讓 B 擁有所需的所有資源(圖 b),運行結束后釋放 B,此時 Free 變為 5(圖 c);接著以同樣的方式運行 C 和 A,使得所有進程都能成功運行,因此可以稱圖 a 所示的狀態時安全的。

    定義:如果沒有死鎖發生,并且即使所有進程突然請求對資源的最大需求,也仍然存在某種調度次序能夠使得每一個進程運行完畢,則稱該狀態是安全的。

    安全狀態的檢測與死鎖的檢測類似,因為安全狀態必須要求不能發生死鎖。下面的銀行家算法與死鎖檢測算法非常類似,可以結合著做參考對比。

    2. 單個資源的銀行家算法

    一個小城鎮的銀行家,他向一群客戶分別承諾了一定的貸款額度,算法要做的是判斷對請求的滿足是否會進入不安全狀態,如果是,就拒絕請求;否則予以分配。

    上圖 c 為不安全狀態,因此算法會拒絕之前的請求,從而避免進入圖 c 中的狀態。

    3. 多個資源的銀行家算法

    上圖中有五個進程,四個資源。左邊的圖表示已經分配的資源,右邊的圖表示還需要分配的資源。最右邊的 E、P 以及 A 分別表示:總資源、已分配資源以及可用資源,注意這三個為向量,而不是具體數值,例如 A=(1020),表示 4 個資源分別還剩下 1/0/2/0。

    檢查一個狀態是否安全的算法如下:

    • 查找右邊的矩陣是否存在一行小于等于向量 A。如果不存在這樣的行,那么系統將會發生死鎖,狀態是不安全的。

    • 假若找到這樣一行,將該進程標記為終止,并將其已分配資源加到 A 中。

    • 重復以上兩步,直到所有進程都標記為終止,則狀態時安全的。

    如果一個狀態不是安全的,需要拒絕進入這個狀態。

    四、內存管理

    虛擬內存

    虛擬內存的目的是為了讓物理內存擴充成更大的邏輯內存,從而讓程序獲得更多的可用內存。

    為了更好的管理內存,操作系統將內存抽象成地址空間。每個程序擁有自己的地址空間,這個地址空間被分割成多個塊,每一塊稱為一頁。這些頁被映射到物理內存,但不需要映射到連續的物理內存,也不需要所有頁都必須在物理內存中。當程序引用到不在物理內存中的頁時,由硬件執行必要的映射,將缺失的部分裝入物理內存并重新執行失敗的指令。

    從上面的描述中可以看出,虛擬內存允許程序不用將地址空間中的每一頁都映射到物理內存,也就是說一個程序不需要全部調入內存就可以運行,這使得有限的內存運行大程序成為可能。例如有一臺計算機可以產生 16 位地址,那么一個程序的地址空間范圍是?0~64K。該計算機只有 32KB 的物理內存,虛擬內存技術允許該計算機運行一個 64K 大小的程序。

    分頁系統地址映射

    內存管理單元(MMU)管理著地址空間和物理內存的轉換,其中的頁表(Page table)存儲著頁(程序地址空間)和頁框(物理內存空間)的映射表。

    一個虛擬地址分成兩個部分,一部分存儲頁面號,一部分存儲偏移量。

    下圖的頁表存放著 16 個頁,這 16 個頁需要用 4 個比特位來進行索引定位。例如對于虛擬地址(0010?000000000100),前 4 位是存儲頁面號 2,讀取表項內容為(110 1),頁表項最后一位表示是否存在于內存中,1 表示存在。后 12 位存儲偏移量。這個頁對應的頁框的地址為?(110?000000000100)。

    頁面置換算法

    在程序運行過程中,如果要訪問的頁面不在內存中,就發生缺頁中斷從而將該頁調入內存中。此時如果內存已無空閑空間,系統必須從內存中調出一個頁面到磁盤對換區中來騰出空間。

    頁面置換算法和緩存淘汰策略類似,可以將內存看成磁盤的緩存。在緩存系統中,緩存的大小有限,當有新的緩存到達時,需要淘汰一部分已經存在的緩存,這樣才有空間存放新的緩存數據。

    頁面置換算法的主要目標是使頁面置換頻率最低(也可以說缺頁率最低)。

    1. 最佳

    OPT, Optimal replacement algorithm

    所選擇的被換出的頁面將是最長時間內不再被訪問,通??梢员WC獲得最低的缺頁率。

    是一種理論上的算法,因為無法知道一個頁面多長時間不再被訪問。

    舉例:一個系統為某進程分配了三個物理塊,并有如下頁面引用序列:

    開始運行時,先將 7, 0, 1 三個頁面裝入內存。當進程要訪問頁面 2 時,產生缺頁中斷,會將頁面 7 換出,因為頁面 7 再次被訪問的時間最長。

    2. 最近最久未使用

    LRU, Least Recently Used

    雖然無法知道將來要使用的頁面情況,但是可以知道過去使用頁面的情況。LRU 將最近最久未使用的頁面換出。

    為了實現 LRU,需要在內存中維護一個所有頁面的鏈表。當一個頁面被訪問時,將這個頁面移到鏈表表頭。這樣就能保證鏈表表尾的頁面是最近最久未訪問的。

    因為每次訪問都需要更新鏈表,因此這種方式實現的 LRU 代價很高。

    3. 最近未使用

    NRU, Not Recently Used

    每個頁面都有兩個狀態位:R 與 M,當頁面被訪問時設置頁面的 R=1,當頁面被修改時設置 M=1。其中 R 位會定時被清零。可以將頁面分成以下四類:

    • R=0,M=0

    • R=0,M=1

    • R=1,M=0

    • R=1,M=1

    當發生缺頁中斷時,NRU 算法隨機地從類編號最小的非空類中挑選一個頁面將它換出。

    NRU 優先換出已經被修改的臟頁面(R=0,M=1),而不是被頻繁使用的干凈頁面(R=1,M=0)。

    4. 先進先出

    FIFO, First In First Out

    選擇換出的頁面是最先進入的頁面。

    該算法會將那些經常被訪問的頁面也被換出,從而使缺頁率升高。

    5. 第二次機會算法

    FIFO 算法可能會把經常使用的頁面置換出去,為了避免這一問題,對該算法做一個簡單的修改:

    當頁面被訪問?(讀或寫)?時設置該頁面的 R 位為 1。需要替換的時候,檢查最老頁面的 R 位。如果 R 位是?0,那么這個頁面既老又沒有被使用,可以立刻置換掉;如果是 1,就將 R 位清?0,并把該頁面放到鏈表的尾端,修改它的裝入時間使它就像剛裝入的一樣,然后繼續從鏈表的頭部開始搜索。

    6. 時鐘

    Clock

    第二次機會算法需要在鏈表中移動頁面,降低了效率。時鐘算法使用環形鏈表將頁面連接起來,再使用一個指針指向最老的頁面。

    分段

    虛擬內存采用的是分頁技術,也就是將地址空間劃分成固定大小的頁,每一頁再與內存進行映射。

    下圖為一個編譯器在編譯過程中建立的多個表,有 4 個表是動態增長的,如果使用分頁系統的一維地址空間,動態增長的特點會導致覆蓋問題的出現。

    分段的做法是把每個表分成段,一個段構成一個獨立的地址空間。每個段的長度可以不同,并且可以動態增長。

    段頁式

    程序的地址空間劃分成多個擁有獨立地址空間的段,每個段上的地址空間劃分成大小相同的頁。這樣既擁有分段系統的共享和保護,又擁有分頁系統的虛擬內存功能。

    分頁與分段的比較

    • 對程序員的透明性:分頁透明,但是分段需要程序員顯示劃分每個段。

    • 地址空間的維度:分頁是一維地址空間,分段是二維的。

    • 大小是否可以改變:頁的大小不可變,段的大小可以動態改變。

    • 出現的原因:分頁主要用于實現虛擬內存,從而獲得更大的地址空間;分段主要是為了使程序和數據可以被劃分為邏輯上獨立的地址空間并且有助于共享和保護。

    五、設備管理

    磁盤結構

    • 盤面(Platter):一個磁盤有多個盤面;

    • 磁道(Track):盤面上的圓形帶狀區域,一個盤面可以有多個磁道;

    • 扇區(Track Sector):磁道上的一個弧段,一個磁道可以有多個扇區,它是最小的物理儲存單位,目前主要有 512 bytes 與 4 K 兩種大小;

    • 磁頭(Head):與盤面非常接近,能夠將盤面上的磁場轉換為電信號(讀),或者將電信號轉換為盤面的磁場(寫);

    • 制動手臂(Actuator arm):用于在磁道之間移動磁頭;

    • 主軸(Spindle):使整個盤面轉動。

    磁盤調度算法

    讀寫一個磁盤塊的時間的影響因素有:

    • 旋轉時間(主軸轉動盤面,使得磁頭移動到適當的扇區上)

    • 尋道時間(制動手臂移動,使得磁頭移動到適當的磁道上)

    • 實際的數據傳輸時間

    其中,尋道時間最長,因此磁盤調度的主要目標是使磁盤的平均尋道時間最短。

    1. 先來先服務

    FCFS, First Come First Served

    按照磁盤請求的順序進行調度。

    優點是公平和簡單。缺點也很明顯,因為未對尋道做任何優化,使平均尋道時間可能較長。

    2. 最短尋道時間優先

    SSTF, Shortest Seek Time First

    優先調度與當前磁頭所在磁道距離最近的磁道。

    雖然平均尋道時間比較低,但是不夠公平。如果新到達的磁道請求總是比一個在等待的磁道請求近,那么在等待的磁道請求會一直等待下去,也就是出現饑餓現象。具體來說,兩端的磁道請求更容易出現饑餓現象。

    3. 電梯算法

    SCAN

    電梯總是保持一個方向運行,直到該方向沒有請求為止,然后改變運行方向。

    電梯算法(掃描算法)和電梯的運行過程類似,總是按一個方向來進行磁盤調度,直到該方向上沒有未完成的磁盤請求,然后改變方向。

    因為考慮了移動方向,因此所有的磁盤請求都會被滿足,解決了 SSTF 的饑餓問題。

    六、鏈接

    編譯系統

    以下是一個 hello.c 程序:

    #include?<stdio.h>int?main() {printf("hello,?world ");return?0; }

    在 Unix 系統上,由編譯器把源文件轉換為目標文件。

    gcc?-o?hello?hello.c

    這個過程大致如下:

    • 預處理階段:處理以?#?開頭的預處理命令;

    • 編譯階段:翻譯成匯編文件;

    • 匯編階段:將匯編文件翻譯成可重定向目標文件;

    • 鏈接階段:將可重定向目標文件和 printf.o 等單獨預編譯好的目標文件進行合并,得到最終的可執行目標文件。

    靜態鏈接

    靜態鏈接器以一組可重定向目標文件為輸入,生成一個完全鏈接的可執行目標文件作為輸出。鏈接器主要完成以下兩個任務:

    • 符號解析:每個符號對應于一個函數、一個全局變量或一個靜態變量,符號解析的目的是將每個符號引用與一個符號定義關聯起來。

    • 重定位:鏈接器通過把每個符號定義與一個內存位置關聯起來,然后修改所有對這些符號的引用,使得它們指向這個內存位置。

    目標文件

    • 可執行目標文件:可以直接在內存中執行;

    • 可重定向目標文件:可與其它可重定向目標文件在鏈接階段合并,創建一個可執行目標文件;

    • 共享目標文件:這是一種特殊的可重定向目標文件,可以在運行時被動態加載進內存并鏈接;

    動態鏈接

    靜態庫有以下兩個問題:

    • 當靜態庫更新時那么整個程序都要重新進行鏈接;

    • 對于 printf 這種標準函數庫,如果每個程序都要有代碼,這會極大浪費資源。

    共享庫是為了解決靜態庫的這兩個問題而設計的,在 Linux 系統中通常用 .so 后綴來表示,Windows 系統上它們被稱為 DLL。它具有以下特點:

    • 在給定的文件系統中一個庫只有一個文件,所有引用該庫的可執行目標文件都共享這個文件,它不會被復制到引用它的可執行文件中;

    • 在內存中,一個共享庫的 .text 節(已編譯程序的機器代碼)的一個副本可以被不同的正在運行的進程共享。

    ?

    END

    作者:CyC2018

    鏈接:https://github.com/CyC2018/CS-Notes

    總結

    以上是生活随笔為你收集整理的听说面试又挂在计算机操作系统了?仔细看看这个!!!【强烈推荐】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    99精品乱码国产在线观看 | 日韩在线视 | 手机在线视频福利 | 色综合久久久久网 | 玖玖爱国产在线 | 天海翼一区二区三区免费 | 国产精品久久久久久久久久东京 | 探花视频在线观看+在线播放 | 天天天射 | 国产美女视频免费观看的网站 | 狠狠成人 | 在线黄网站 | 日本性生活一级片 | 亚洲高清在线观看视频 | 五月综合婷 | 国产福利免费在线观看 | 精品国产自 | 国产在线视频一区 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 日韩网站免费观看 | 精品a在线 | 久久久久免费精品国产 | 久久经典国产 | 欧美激情片在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 丁香花在线视频观看免费 | 又黄又爽又湿又无遮挡的在线视频 | 国产一区二区手机在线观看 | 五月天激情在线 | 色婷婷导航 | 国产精品99蜜臀久久不卡二区 | 亚洲精品456在线播放乱码 | 日韩欧美在线影院 | 天天插天天狠天天透 | 99国产免费网址 | 美女黄频在线观看 | 特黄特色特刺激视频免费播放 | 久久爱影视i | 亚洲五月激情 | 国产一级免费在线观看 | 亚洲成人黄 | 亚洲一区二区视频 | 欧美aaa一级 | av中文资源在线 | 一区二区欧美在线观看 | 99精品国产福利在线观看免费 | 国产福利av | 中文字幕在线专区 | 在线观看爱爱视频 | 欧美九九九 | 中文字幕网站 | 五月天综合激情网 | 久久久99国产精品免费 | 亚洲高清免费在线 | 福利电影久久 | 欧美91视频 | 91大神免费视频 | 国产精品久久久av久久久 | 亚洲国产电影在线观看 | 99精品久久只有精品 | 91视频免费看 | 精品999 | sesese图片| 国产日韩欧美在线影视 | 黄色影院在线观看 | 黄污视频大全 | 日韩极品在线 | .精品久久久麻豆国产精品 亚洲va欧美 | 国产乱码精品一区二区蜜臀 | 超碰人人射 | 日本h在线播放 | 中文字幕一区二区三区乱码在线 | 国产欧美日韩视频 | 亚洲国产三级 | 国产精品久久久精品 | 91精彩视频 | 又黄又爽又无遮挡免费的网站 | 丁香五月网久久综合 | 亚洲国产中文字幕在线观看 | a视频免费 | 欧美一区二区日韩一区二区 | 欧美亚洲精品一区 | 97精品国产97久久久久久 | 婷婷六月天天 | 一区二区三区在线不卡 | 超碰公开在线观看 | 草久在线播放 | 伊人影院在线观看 | 久久激情精品 | 亚洲六月丁香色婷婷综合久久 | 婷婷干五月 | 欧美成人xxxx | 国产精品 日韩 欧美 | 美女视频永久黄网站免费观看国产 | 国产色网| 免费91在线观看 | 91丨九色丨蝌蚪丨老版 | 黄色av电影网 | 99九九99九九九视频精品 | 安徽妇搡bbbb搡bbbb | 狠日日| 特级黄色片免费看 | 久久免费试看 | 在线视频你懂得 | 激情五月av | 大型av综合网站 | 国内久久久 | 国产精品va在线 | 五月情婷婷 | 天堂在线一区 | 国产精品成人在线 | 中国美女一级看片 | 99久久精品国产一区二区成人 | 麻豆免费视频观看 | 国产亚洲成人网 | 国产一区二区三区四区在线 | 超碰在线98 | 97夜夜澡人人爽人人免费 | 四虎影视成人永久免费观看亚洲欧美 | 成人小视频在线观看免费 | 不卡的av在线播放 | 日韩最新av| 日批网站在线观看 | 亚洲电影第一页av | 国产专区第一页 | 人人爱夜夜操 | 99久久日韩精品视频免费在线观看 | 亚洲成av人片在线观看香蕉 | 日韩在线观看你懂的 | 日韩色av色资源 | 国产成人av一区二区三区在线观看 | 天躁狠狠躁 | 91视频高清免费 | 日韩激情中文字幕 | 中文字幕乱码亚洲精品一区 | 98福利在线 | 久久免费黄色网址 | 成片免费观看视频999 | 麻豆影视在线观看 | 亚洲精品乱码久久久久 | 国产精品青青 | 在线国产一区二区 | 久久人人爽人人爽人人片av软件 | 中文字幕4 | 91大神电影 | 国产精品一区二区在线播放 | 最新av电影网站 | av日韩精品 | 97超碰人人澡人人 | 一级免费片 | 成人国产精品电影 | 91精品国产91p65 | 人人盈棋牌 | 伊人导航| 精品久久1 | 国产日产精品久久久久快鸭 | 日韩区欠美精品av视频 | 中文字幕资源站 | 91成年视频| 81国产精品久久久久久久久久 | 青春草视频 | 国产精品久久久久久久久久久免费 | 天天干天天操天天拍 | 欧美日韩在线电影 | 国产主播大尺度精品福利免费 | 五月天久久综合网 | 美女视频黄网站 | 五月婷婷开心中文字幕 | 日韩av午夜在线观看 | 91精品在线播放 | 色综合天天干 | 欧美日韩国产精品一区二区亚洲 | 美女在线免费观看视频 | 中文字幕一区二 | 六月丁香在线视频 | 日韩av黄 | 国产精品一区二区在线免费观看 | 亚洲精品高清视频 | 天天草天天摸 | 久久综合久久综合久久 | 黄色网www | 激情综合六月 | 日日色综合| 在线观看韩国av | 一区二区精 | 91黄色小视频| se婷婷| 天天操天天操天天 | 久久久久久免费网 | 久久久久久久久亚洲精品 | 伊人亚洲精品 | 精品色999 | 99精品网站| 天堂网一区二区 | 黄色大片免费播放 | 国产精品毛片一区二区在线看 | 日本午夜在线亚洲.国产 | 手机成人在线 | av在线播放亚洲 | 国产又黄又猛又粗 | 精品一区欧美 | 成人sm另类专区 | 国产亚洲成人网 | 91亚洲精品久久久蜜桃 | 久久永久免费视频 | 五月婷婷六月丁香在线观看 | av午夜电影 | 国产精品久久久久国产精品日日 | 日韩欧美高清一区二区三区 | 久草免费手机视频 | 日本69hd | 在线亚洲日本 | 国产在线播放一区二区三区 | 天天干,天天射,天天操,天天摸 | 久久免费播放视频 | 超碰97国产精品人人cao | 99久久99久久精品国产片果冰 | 国语自产偷拍精品视频偷 | 西西人体4444www高清视频 | 超碰国产在线 | 午夜精品久久久久久久久久久久 | 国产精品mv在线观看 | 在线免费中文字幕 | 日本在线观看一区 | 天天综合91 | 日韩久久久久久久久 | 国产成人综 | 日韩欧美在线视频一区二区三区 | 国产小视频在线播放 | 亚洲欧美视频在线 | 三级av免费看 | av在线看片 | 狠狠色噜噜狠狠 | 日韩国产精品久久久久久亚洲 | 婷婷午夜天 | 在线观看中文字幕 | 韩国在线视频一区 | 伊人狠狠色| 国产精品99免费看 | 亚洲在线视频免费 | 亚洲精品88欧美一区二区 | 精品一区二区在线观看 | 国产精品视频999 | 99精品视频免费在线观看 | 黄色成人av网址 | 亚洲精品乱码白浆高清久久久久久 | 国产 视频 高清 免费 | 亚洲一片黄| 国产一区国产精品 | 中文字幕在线观看视频网站 | 久久 精品一区 | 天天射综合| 91高清免费在线观看 | 国产一二三四在线视频 | 99久久久久成人国产免费 | 婷婷九月丁香 | 91尤物国产尤物福利在线播放 | 五月天综合网 | 日韩理论片中文字幕 | 日韩欧美视频免费看 | 国产色网| av在线免费观看网站 | 国产成人精品亚洲精品 | 91在线精品秘密一区二区 | 黄色软件在线观看免费 | www操操 | 午夜狠狠干 | 超碰人人在线观看 | 狠狠操影视 | 久久精品网站免费观看 | 十八岁免进欧美 | 黄色网在线免费观看 | 久久久福利视频 | 日韩三区在线观看 | 天天操天天射天天舔 | 欧美日韩不卡一区二区三区 | 亚洲清纯国产 | 69久久久久久久 | 亚洲国产欧美一区二区三区丁香婷 | 中文字幕视频一区 | 国产剧在线观看片 | 欧美最猛性xxxxx(亚洲精品) | 99中文在线 | 国产精品免费久久久久久久久久中文 | 91av在线视频免费观看 | 国产一区免费视频 | 视频91在线 | 国产乱码精品一区二区蜜臀 | 久久超碰99 | 成人免费视频网站 | 91看片在线看片 | 日韩在线在线 | 在线观看亚洲国产精品 | 日韩丝袜视频 | 亚洲精品五月天 | 日韩欧美第二页 | 国产精品久久久区三区天天噜 | 狠狠狠色丁香综合久久天下网 | 四虎5151久久欧美毛片 | 国产一级二级在线 | 99热最新地址 | 成人黄色av免费在线观看 | 免费久久99精品国产婷婷六月 | 中文字幕刺激在线 | 99热999| av在线电影播放 | 69xx视频 | 色噜噜狠狠色综合中国 | 在线免费黄色毛片 | 久久精品国产美女 | 国产五月色婷婷六月丁香视频 | 黄色成人av| 精品无人国产偷自产在线 | a资源在线| 国产在线无| 一区二区 不卡 | 81国产精品久久久久久久久久 | 最近高清中文字幕 | a视频在线观看免费 | 国产精品一区二区av影院萌芽 | 亚洲视频在线免费观看 | 激情伊人五月天久久综合 | 日韩久久精品一区二区 | 久久久免费国产 | 操操操com | 日韩精品视频网站 | 欧美三人交| 伊人首页 | 超碰人人91| 丁香5月婷婷久久 | 黄色a在线观看 | 操老逼免费视频 | 九色在线视频 | 久久手机看片 | 国产美女无遮挡永久免费 | 亚洲欧洲精品一区二区精品久久久 | 九九99 | www一起操| 97久久精品午夜一区二区 | 久久精品日产第一区二区三区乱码 | 黄色免费大全 | 婷婷在线免费 | 久久看片 | 美女国产免费 | 五月天网页 | 欧美久久久久久 | 久久久久久久电影 | 久久精品电影院 | 久久久亚洲麻豆日韩精品一区三区 | 国产精品久久久久一区二区国产 | 亚洲视频专区在线 | 81国产精品久久久久久久久久 | 88av视频 | 99精品在线观看视频 | 国产小视频在线看 | 国产一级二级av | 日韩国产欧美在线播放 | 一区二区三区电影大全 | 天天曰天天爽 | 免费黄色特级片 | 亚洲黄色在线免费观看 | 亚洲欧美视频一区二区三区 | 国产丝袜高跟 | 成人av网站在线播放 | 美女免费黄视频网站 | 中文字幕观看视频 | 亚洲九九影院 | 91在线免费看片 | 免费一级片在线 | 91九色在线视频 | 国产黄 | 天天操天天射天天插 | 国产精品99久久免费黑人 | 欧美国产日韩激情 | 国产精品久久久久免费观看 | 免费看国产黄色 | av黄色免费在线观看 | 日日操夜夜操狠狠操 | 亚洲免费黄色 | 亚洲黄色免费网站 | 久久99国产精品免费 | 国产在线一区二区 | 成人久久久久久久久久 | 特片网久久| 2019中文字幕网站 | 久久综合狠狠综合久久激情 | 99久热在线精品视频成人一区 | 久久久久国产精品免费网站 | 超碰av在线播放 | 亚洲一级影院 | 亚洲午夜电影网 | 久久久久久国产精品亚洲78 | 久久久久久综合网天天 | 亚洲欧美日韩中文在线 | 欧美一区二区精美视频 | 亚洲视频高清 | 973理论片235影院9 | 99爱精品视频| 中文字幕在线播放视频 | 中文字幕日韩国产 | 91精品国产欧美一区二区成人 | 国产一级免费片 | 天天操导航 | 五月天激情视频 | 日韩精品在线看 | 在线观看av国产 | 亚洲最大成人网4388xx | 香蕉视频色 | 欧美贵妇性狂欢 | 天天干,夜夜爽 | 日韩免费不卡视频 | 91污视频在线观看 | 91精品国产自产老师啪 | 免费在线观看91 | 在线看成人 | 久久综合九色综合欧美狠狠 | 国产亚洲精品美女 | 国产日韩欧美视频 | 免费激情在线电影 | 免费在线国产视频 | 中文字幕精品一区久久久久 | 成人黄色电影在线观看 | 国产在线免费观看 | 国产在线精品一区二区不卡了 | 久久精品女人毛片国产 | 精品国产一区二区三区男人吃奶 | 黄色最新网址 | 国产一区二区三区免费视频 | 91豆麻精品91久久久久久 | 在线免费视频a | 奇米网777| 美女av在线免费 | 国产美女在线观看 | 黄色av一区二区 | 国语麻豆| 人人爽人人澡 | 91国内在线| 亚洲免费成人av电影 | 欧美一级视频在线观看 | 91av精品 | 久久手机免费视频 | 免费看高清毛片 | 99精品区| 久久女同性恋中文字幕 | 国产四虎影院 | 成人在线视频你懂的 | 91麻豆精品国产91久久久更新时间 | 在线之家免费在线观看电影 | 亚洲精品永久免费视频 | 日韩在线一二三区 | 五月婷婷丁香激情 | 婷婷亚洲五月 | 中日韩在线视频 | 成人三级网站在线观看 | 国产精品手机视频 | 麻豆影视在线观看 | 中文字幕在线视频一区 | 日韩精品一二三 | 久久亚洲精品电影 | 九九有精品| 最近高清中文在线字幕在线观看 | 人人插人人射 | 亚洲国产久 | av高清在线观看 | 一区二区三区视频在线 | 久久综合九色欧美综合狠狠 | 99精品国产亚洲 | 人人狠狠综合久久亚洲婷 | 婷婷综合网 | 国产在线视频在线观看 | av免费看网站| 9色在线视频 | 黄色毛片视频免费观看中文 | 久久精品三级 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | aⅴ精品av导航 | 999男人的天堂 | 亚洲欧美日本一区二区三区 | 久草在线网址 | 成年人免费在线播放 | av黄色免费看 | 精品夜夜嗨av一区二区三区 | 天堂网一区二区三区 | 欧美在线观看视频 | 99在线精品视频在线观看 | 欧美精品免费在线观看 | 99视频在线观看一区三区 | 亚洲最大成人网4388xx | 国产精彩视频一区二区 | 天天爽天天做 | 狠狠躁18三区二区一区ai明星 | 99免费在线播放99久久免费 | 国产免费嫩草影院 | 激情五月激情综合网 | 国产精品免费在线播放 | 国产成人精品亚洲 | 深爱激情av | 中文字幕在线播放日韩 | 黄色av一区二区 | 在线探花| 欧洲精品视频一区二区 | 国产精品不卡一区 | 在线观看视频你懂得 | 久久桃花网 | 一级理论片在线观看 | av资源免费在线观看 | 欧美精品免费在线观看 | 国产一级特黄毛片在线毛片 | 免费在线观看视频一区 | 日韩在线视频精品 | 国产很黄很色的视频 | 美女网站视频免费都是黄 | 日韩视频一区二区三区在线播放免费观看 | 日韩av一卡二卡三卡 | 精品久久久久久一区二区里番 | 久久精品影视 | 国产一区免费观看 | 欧美在线观看视频一区二区三区 | 国产亚洲成人精品 | 最近中文国产在线视频 | 色综合久久久久综合体桃花网 | 国产精品乱码久久久久久1区2区 | 亚洲精品 在线视频 | 大荫蒂欧美视频另类xxxx | 色狠狠综合天天综合综合 | 日韩精品aaa| 日本性xxx | 国产精品99久久久久久人免费 | 精品影院 | 婷婷成人亚洲综合国产xv88 | 91亚洲影院 | 五月天婷婷丁香花 | 香蕉视频在线免费 | 日本黄色免费观看 | 在线视频日韩一区 | 日本免费久久高清视频 | 久久精品人人做人人综合老师 | 色干综合 | 午夜精品久久久久久久99水蜜桃 | 在线一二三四区 | 欧美激情综合五月 | 伊人天天狠天天添日日拍 | 亚洲一区二区观看 | 亚洲三级在线免费观看 | 精品国产视频在线观看 | 色播五月婷婷 | 一区二区三区在线免费播放 | 久久精品婷婷 | 日韩成人xxxx| 久久中文欧美 | 国产一区二区视频在线播放 | 成人蜜桃 | 不卡电影免费在线播放一区 | 丁香花中文字幕 | 日韩小视频网站 | 欧美极品少妇xbxb性爽爽视频 | www.狠狠色 | 国产不卡在线视频 | 99精品久久久久久久久久综合 | 夜夜躁狠狠躁日日躁视频黑人 | 国产成人免费在线观看 | 成人黄色小说视频 | 日韩精品一区二区在线视频 | 看毛片网站 | 激情五月色播五月 | 免费一级日韩欧美性大片 | 日韩在线精品视频 | 成人黄色电影免费观看 | 九色91av | 天天干天天插 | 五月天六月婷 | 免费观看丰满少妇做爰 | 成年人黄色免费看 | 樱空桃av | 欧美一区二区在线 | 国产视频精品视频 | 日本精品中文字幕在线观看 | 日日干夜夜干 | 91.dizhi永久地址最新 | 在线观看你懂的网址 | 在线观看岛国片 | 在线观看色网 | 成年人免费在线播放 | 成人午夜黄色影院 | 国产玖玖精品视频 | 日韩精品中文字幕av | 国产精品系列在线 | 91香蕉嫩草| 国产又粗又长的视频 | 91av观看 | 欧美在线99| 欧美日韩视频在线观看一区二区 | 成人在线视频免费看 | 久草在线资源视频 | 天天操天天操天天操天天操 | 欧美国产亚洲精品久久久8v | 天天av天天 | 又污又黄网站 | 久久久久一区 | 日韩三级av | av在线播放网址 | 麻豆国产网站入口 | 国产精品永久久久久久久久久 | 成人影片在线免费观看 | av解说在线观看 | 中文字幕色在线视频 | 免费黄色av电影 | 91精品国产麻豆国产自产影视 | 99精品成人 | 久草在线手机视频 | 久久国产一区 | 久久不色 | 亚洲狠狠婷婷综合久久久 | 婷婷丁香激情五月 | 日韩综合视频在线观看 | 亚洲精品成人在线 | 国产精品一码二码三码在线 | 日韩激情网 | 99 视频 高清 | 国产免费又粗又猛又爽 | 国产精品刺激对白麻豆99 | 91天天视频 | 亚洲黄色在线看 | 欧美精品二| 97免费在线观看视频 | 免费看毛片网站 | 91成人欧美| 久久久久一区 | 久草在线手机视频 | 欧美一区二区三区不卡 | 久久深爱网 | 黄色软件视频网站 | 国产在线播放一区二区三区 | 久久久久久久久久久网 | 探花视频在线观看免费 | 樱空桃av| 天天操天天干天天综合网 | 首页中文字幕 | 久久免费视频在线观看6 | 成人观看视频 | 91精品国自产在线观看欧美 | 99久久婷婷国产综合精品 | 激情综合国产 | 最新av网站在线观看 | 人人爽人人爽人人片av | 一区二区不卡高清 | 91精品蜜桃 | 国产精品色在线 | 国产精品美乳一区二区免费 | 四虎视频 | 毛片基地黄久久久久久天堂 | 一级黄色网址 | 99热亚洲精品| 日韩欧美在线第一页 | 在线观看精品黄av片免费 | 久久久www成人免费精品张筱雨 | 午夜精品一二区 | 黄色av电影网 | 精品自拍网 | 五月婷婷激情五月 | av网在线观看 | 91中文视频| 婷五月天激情 | 久久成人黄色 | 国产精品自产拍在线观看 | 久久国产麻豆 | 日韩欧美在线影院 | 免费人成在线观看网站 | 亚洲欧美一区二区三区孕妇写真 | 日韩精品一区二区三区在线视频 | 一区二区丝袜 | 黄色成人av在线 | 国产精品美女久久久久aⅴ 干干夜夜 | 亚洲精品综合久久 | 91精品国产乱码在线观看 | 精品在线视频一区 | 亚洲视频网站在线观看 | 亚洲综合色激情五月 | 最近中文字幕完整视频高清1 | 精品一区精品二区 | 九九九热精品免费视频观看 | 国产精品18久久久久vr手机版特色 | 最新久久久 | 国产精品xxxx18a99 | 欧美激情xxxx性bbbb | 五月婷在线视频 | 国际av在线| 91资源在线| 中国美女一级看片 | 久久免费一 | 91亚洲精品在线观看 | 狠狠干干 | 欧美极品久久 | 超碰国产97 | 91桃花视频| 中文字幕在线一区观看 | 亚洲不卡123| 国产欧美精品一区二区三区 | 狠狠狠狠狠狠狠狠 | 黄色av电影网 | 久久精视频| 九九天堂 | 99久e精品热线免费 99国产精品久久久久久久久久 | 精品伊人久久久 | 精品国产乱码久久久久 | 性色大片在线观看 | 亚洲综合精品在线 | 中文字幕免费一区二区 | 激情小说 五月 | 久精品视频| 激情综合色综合久久 | 一级成人在线 | 国产大片黄色 | 亚洲国产精品女人久久久 | 九九热免费视频在线观看 | 免费看黄在线看 | 亚洲 欧美 综合 在线 精品 | 日韩在线视频线视频免费网站 | 中午字幕在线 | 麻豆视频免费看 | 91av在| 国产黄视频在线观看 | 免费视频91 | 免费观看全黄做爰大片国产 | 久久99热这里只有精品 | 精品国产伦一区二区三区观看说明 | 国产一区91| 久久成人免费电影 | 国产精品美女999 | www.色午夜.com| 亚洲国产欧洲综合997久久, | 亚洲婷婷在线 | 香蕉视频导航 | 久久国产成人午夜av影院潦草 | 国产精品视频免费看 | 国产精品中文久久久久久久 | 久久久久亚洲天堂 | 国产精品精品 | 亚洲黄色精品 | 一本大道久久精品懂色aⅴ 五月婷社区 | 五月天久久综合网 | 国产精品18videosex性欧美 | 黄色免费在线看 | 国产成人精品aaa | 久久久国产精品成人免费 | 91精品在线免费观看 | 国产精品精品久久久久久 | 国产麻豆果冻传媒在线观看 | 久久网页 | 国产手机免费视频 | 国产视频一二区 | 久久久噜噜噜久久久 | 18性欧美xxxⅹ性满足 | 国产在线免费av | 欧美国产高清 | 在线电影av | 免费一级片在线观看 | 91久色蝌蚪 | 麻豆传媒在线免费看 | 久久免费av电影 | 国产一级在线免费观看 | 国产毛片在线 | 国产二区电影 | 四虎永久免费 | av久久久久久 | 日韩欧美国产精品 | 草久久精品 | 久久人人97超碰精品888 | 韩日电影在线 | 激情动态| 国产亚洲资源 | 91视频高清完整版 | 日韩激情一二三区 | 久草网在线 | 免费观看午夜视频 | 欧美日韩国产亚洲乱码字幕 | 国产欧美中文字幕 | 麻豆视屏 | 国产成人精品久久二区二区 | 色国产视频 | 96精品视频 | 不卡国产视频 | 中文字幕亚洲高清 | 精品女同一区二区三区在线观看 | 久久老司机精品视频 | 麻豆视频入口 | 亚洲另类在线视频 | 91尤物国产尤物福利在线播放 | 伊人国产视频 | 国产黄色免费在线观看 | 亚洲综合网 | 日本婷婷色| av一二三区| 91精品综合在线观看 | 欧美日韩在线视频观看 | 成人免费观看a | 人人爽人人爽人人爽人人爽 | 三级黄色大片在线观看 | 久久久黄色免费网站 | 中文字幕人成不卡一区 | av大全在线免费观看 | 国产精品高清免费在线观看 | 久久草网 | 国产精品美女久久久久久久久 | 五月天激情视频 | 天天av综合网 | 日韩精品专区在线影院重磅 | 精品一区二区在线观看 | 欧美电影黄色 | 国产成人av片 | 91精品老司机久久一区啪 | 国产黄色在线看 | 91手机在线看片 | 亚洲精品乱码久久久久久按摩 | 久久免费精品国产 | 精品国产一区二区三区四区vr | 四虎海外影库www4hu | www178ccom视频在线 | 天天摸日日操 | 日韩精品首页 | 日日干视频 | 五月视频| 九九热在线观看 | 一区二区视频在线看 | 久久久三级视频 | 日本久久电影网 | 婷婷干五月 | 国产中文字幕三区 | 最近中文字幕在线中文高清版 | 99久久精品免费看国产 | 91在线视频观看免费 | 午夜久久久久久久 | 国产一级在线观看视频 | 日韩理论 | 最新av电影网址 | 亚洲欧美怡红院 | 美腿丝袜一区二区三区 | www.久久爱.cn | 日韩精品一区二区三区中文字幕 | 久久亚洲精品电影 | 夜夜婷婷 | 亚洲日本色 | 免费色av| 国产xxxx性hd极品 | 亚洲天堂毛片 | 国产中文字幕三区 | 国产精品麻豆99久久久久久 | 狠狠干网 | 国产精品久久久久久久久久久久冷 | 日韩毛片精品 | 日韩一二区在线观看 | 91亚洲精 | 日本狠狠色| 欧美日韩国产一二 | 免费看亚洲毛片 | 激情亚洲综合在线 | 久久艹在线| 成人精品影视 | .国产精品成人自产拍在线观看6 | 欧美日韩免费观看一区二区三区 | 中文av一区二区 | 色资源在线| 色婷婷欧美 | 黄色成人影院 | 91视频中文字幕 | 国产精品免费人成网站 | 久在线观看 | 99av在线视频 | 亚洲人成免费网站 | 国产五码一区 | 狠狠色噜噜狠狠狠狠2021天天 | 亚洲精品在线观看视频 | 国产一级久久久 | 午夜精品视频一区 | 国产伦理久久精品久久久久_ | 高清中文字幕av | 久久网站av | 91一区二区三区久久久久国产乱 | 美女精品在线 | 天天操狠狠操 | 四虎影视国产精品免费久久 | 久久国际影院 | 欧美亚洲免费在线一区 | 日本黄色免费电影网站 | 十八岁以下禁止观看的1000个网站 | 欧美性色黄大片在线观看 | 亚洲视频电影在线 | 久久久久国产精品一区二区 | 中文字幕欧美日韩va免费视频 | 免费a视频 | 天天操天天色天天 | 久久免费视频这里只有精品 | 97天天干 | 国产精品专区在线观看 | 久久精品96 | 亚洲永久免费av | 91精品久久久久久久久久久久久 | 精品一区二区精品 | 国产黄色片免费看 | www.香蕉视频在线观看 | 欧美一区二区三区在线 | 人人搞人人爽 | 天天色天天骑天天射 | 久久99精品国产麻豆宅宅 | 欧美另类z0zx | 中文字幕中文字幕在线中文字幕三区 | 欧美日韩一级久久久久久免费看 | 日韩在线中文字幕视频 | 国产字幕在线看 | 国产 av 日韩| 六月激情网 | 国产69精品久久久久久久久久 | 人人dvd| 欧美色噜噜噜 | 91色偷偷 | www.玖玖玖 | 2020天天干夜夜爽 | 最近中文字幕 | 亚洲成a人片综合在线 | 国产成人综合图片 | 日韩在线观看视频在线 | 人人精久 | 成人精品一区二区三区电影免费 | 国产美女视频网站 | 亚洲精品久久久蜜桃直播 | 黄色片视频免费 | www国产亚洲 | 久章草在线观看 | 欧美韩国在线 | avlulu久久精品 | 久久久久久不卡 | 在线不卡视频 | 草久久精品 | 天天看天天操 | 99在线观看视频网站 | 欧美亚洲精品在线观看 | 色婷婷啪啪免费在线电影观看 | 久久视了 | 99精品久久久 | 高清不卡毛片 | 久久久久9999亚洲精品 | 在线观看免费高清视频大全追剧 | www.一区二区三区 | 欧美男男tv网站 | 人人舔人人爽 | 精品爱爱 | 国产精品一区二区免费在线观看 | 日韩网页| 日韩一区二区三免费高清在线观看 | 久久综合色一综合色88 | 日韩欧美黄色网址 | 免费 在线 中文 日本 | 欧美日韩国产一区二 | 色婷婷综合在线 | 国产码电影 | 国产乱对白刺激视频在线观看女王 | 久久黄网站 | 81精品国产乱码久久久久久 | 人人狠 | 在线观看视频在线观看 | 日韩乱码中文字幕 | 国产精久久久久久妇女av | 日本精品久久久久久 | 亚洲网久久 | 99精品免费观看 | 欧美性脚交 | av在线免费播放网站 | 色视频在线免费观看 | 午夜美女网站 | 亚洲综合最新在线 | 久久精品视频在线观看免费 | 色噜噜在线观看 | 国产69精品久久久久9999apgf | 2021av在线 | 亚洲高清网站 | 美女黄视频免费 | 久久久久久美女 | 高清av网 | 日韩国产欧美在线播放 | 国产精品欧美 | 久99久中文字幕在线 | 婷婷丁香五 | 婷婷激情综合五月天 | 99爱视频在线观看 | 精品a视频 | 欧美国产高清 | 又黄又爽的免费高潮视频 | a黄色大片 | 亚洲免费婷婷 | 人人射人人爱 | 国产亚洲成人网 | 国产日韩精品一区二区三区在线 | www.天天成人国产电影 | 亚洲国产小视频在线观看 | 中文字幕电影网 | 国产不卡精品视频 | 国产精品久久一区二区三区, | 97久久久免费福利网址 |