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

歡迎訪問 生活随笔!

生活随笔

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

windows

操作系统课程设计之页面置换算法(流程模拟)

發布時間:2023/12/10 windows 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统课程设计之页面置换算法(流程模拟) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

請求分頁系統設計及應用

1. 概述

1.1目的與意義

本次課程設計的目的在于通過實踐進一步扎實頁面置換過程的理論知識、提高實踐動手能力,提高對頁面置換算法的具體過程,數據的流動路線,線程的同步互斥機制的認識程度,提高軟件開發動手能力,熟練掌握從需求到總體設計到詳細設計再到實際運行測試的軟件設計過程。
操作系統的課程設計對我們學習軟件工程專業的同學來說十分重要且必要,可以讓我們通過編程實驗,更加深入得理解和掌握操作系統的基本理論和功能技術,通過這次課設,可以幫助我們將相對抽象的理論應用于實踐,提高分析問題和解決問題的能力,提高編寫和開發系統程序的能力以及交流互助的能力。

1.2主要完成的任務

基本任務:
(1)完成訪問快表、訪問頁表、缺頁中斷、頁面置換等過程的模擬;
(2)完成物理地址的轉換;
(3)完成自動生成邏輯頁面地址,并根據頁面地址獲取邏輯頁面號;
(4)完成頁面地址范圍、訪問地址序列個數、快表訪問時間、頁表訪問時間、缺頁中斷時間、是否訪問快表等參數的設置;
(5)完成線程模擬訪問頁面序列的情況下線程的暫停、終止與恢復功能;
(6)完成FIFO、LRU、LFU、OPT頁面置換算法的實現與模擬;
擴展功能:
(1)完成不同算法在同一頁面訪問序列的情況下缺頁率的對比;
(2)完成同一算法在不同物理塊下缺頁率的對比;
(3)完成FIFO算法Belady現象的驗證;
(4)完成同一算法在不同頁面范圍的下缺頁率的對比(其他變量保持不變);
(5)完成用戶手動分配物理塊的模擬(對某一置換算法,暫停其該線程對頁面序列的訪問,由用戶分配物理塊來擴展該線程的駐留集);
(6)完成CLOCK、PBA頁面置換算法的實現與模擬;
(7)完成創新功能(多個線程使用類似于PBA算法的方法通過獲取互斥空閑物#理塊資源的途徑實現頁面訪問)的實現于模擬;

1.3使用的開發工具

語言及程序:C#
開發平臺:VS2017
運行環境:Windows10
處理器:Intel? Core?i7-7700HQ CPU @2.80GHZ
已安裝的內存(RAM):8.00GB
系統類型:64位操作系統,基于x64的處理器

1.4解決的主要問題

前端:
GDI+的雙緩沖問題
動畫流暢度的提升
用GDI+畫大圖時速度較慢
動畫演示時,拖動滾動條,圖像丟失的問題
用GDI+繪制表格控件的制作(采用特殊圖形作為單元格)。

后端:
解決了最初訪問快表、訪問頁表等過程單獨設計并滿足整體的流程的難題;將成功訪問到某個頁面時對一些數據結構的維護與頁面置換時對一些數據結構的維護分成單獨的函數,并用專門的維護與頁面置換的控制函數來控制,解決了在同一個訪問流程(即先頁面數組越界判斷、快表與頁表的訪問,若頁表中不存在頁面號則缺頁中斷的過程)下,支持不同算法的運行問題;解決了FIFO、LRU、LFU、OPT、CLOCK,頁面置換在相應數據結構設計以及相關數據結構維護上的難題;

2. 使用的基本概念和原理

2.1虛擬存儲器的相關知識

2.1.1對換

(1)將阻塞進程,暫時不用的程序,數據換出
(2)將具備運行條件的進程換入
(3)類型
①整體對換:進程對換,解決內存緊張
②部分對換:頁面對換/分段對換:提供虛存支持
(4)對換空間的管理
外存對換區比文件區側重于對換速度,因此,對換區一般采用連續分配,采用數據結構和分配回收類似于可變化分區分配
(5)換出
①選出被換出進程:
因素:優先級,駐留時間,進程狀態
②換出過程:
對于共享段:計數減1, 是0則換出,否則不換
修改PCB和MCB(或內存分配表)
(6)換入
①選擇換入進程:優先級,換出時間等
②請內存換入

2.1.2地址變換機構

基本任務:邏輯地址——物理地址的映射
(1)頁號→塊號:通過頁表來完成
(2)頁內地址→塊內地址:無需轉換

基本地址變換機構:
(1)越界保護
(2)每個進程對應一頁表,其信息放在PCB中,執行時將其首地址裝入頁表寄存器

圖1 無快表的地址變換機構

圖2 有快表的地址變化機構

(3)地址變化過程

圖3 有快表的地址變化過程

2.1.3多級頁表
?頁表可能很大,將其離散存放在不同頁塊中。
?建一“外部頁表”來管理這些離散頁表塊。
相當于單級頁表中的頁表寄存器,一般應常駐內存。
每項記錄頁表始址,且增加存在位。
?64位機器頁表一般>3級,最外層頁表常駐。

圖4 多級頁表結構

2.1.4尋址技術

物理地址,CPU地址總線傳來的地址,由硬件電路控制(現在這些硬件是可編程的了)其具體含義。物理地址中很大一部分是留給內存條中的內存的,但也常被映射到其他存儲器上(如顯存、BIOS等)。在沒有使用虛擬存儲器的機器上,虛擬地址被直接送到內存總線上,使具有相同地址的物理存儲器被讀寫;而在使用了虛擬存儲器的情況下,虛擬地址不是被直接送到內存地址總線上,而是送到存儲器管理單元MMU,把虛擬地址映射為物理地址。
線性地址(Linear Address)也叫虛擬地址(virtual address)是邏輯地址到物理地址變換之間的中間層。在分段部件中邏輯地址是段中的偏移地址,然后加上基地址就是線性地址。是一個32位無符號整數,可以用來表示高達4GB的地址,也就是,高達4294967296個內存單元。線性地址通常用十六進制數字表示,值得范圍從0x00000000到0xfffffff)程序代碼會產生邏輯地址,通過邏輯地址變換就可以生成一個線性地址。如果啟用了分頁機制,那么線性地址可以再經過變換以產生一個物理地址。如果沒有啟用分頁機制,那么線性地址直接就是物理地址。
邏輯地址是在有地址變換功能的計算機中,訪內指令給出的地址 (操作數) 叫邏輯地址,也叫相對地址,也就是是機器語言指令中,用來指定一個操作數或是一條指令的地址。要經過尋址方式的計算或變換才得到內存儲器中的實際有效地址即物理地址。一個邏輯地址由兩部份組成,段標識符: 段內偏移量。段標識符是由一個16位長的字段組成,稱為段選擇符。其中前13位是個索引號,后面3位包含一些硬件細節。

2.1.5交換技術

缺頁異常被觸發通常有兩種情況——
(1)程序設計的不當導致訪問了非法的地址
(2)訪問的地址是合法的,但是該地址還未分配物理頁框

2.1.6內存管理技術

堆和棧都是虛擬地址空間上的概念

2.1.7段頁安全思想

基本思想:
分頁系統能有效地提高內存的利用率,而分段系統能反映程序的邏輯結構,便于段的共享與保護,將分頁與分段兩種存儲方式結合起來,就形成了段頁式存儲管理方式。
在段頁式存儲管理系統中,作業的地址空間首先被分成若干個邏輯分段,每段都有自己的段號,然后再將每段分成若干個大小相等的頁。對于主存空間也分成大小相等的頁,主存的分配以頁為單位。
段頁式系統中,作業的地址結構包含三部分的內容:段號,頁號,頁內位移量。
程序員按照分段系統的地址結構將地址分為段號與段內位移量,地址變換機構將段內位移量分解為頁號和頁內位移量。
為實現段頁式存儲管理,系統應為每個進程設置一個段表,包括每段的段號,該段的頁表始址和頁表長度。每個段有自己的頁表,記錄段中的每一頁的頁號和存放在主存中的物理塊號。

2.2 內存分配策略

在請求分頁系統中,可采取兩種內存分配策略,即固定和可變分配策略。在進行置換時,也可采取兩種策略,即全局置換和局部置換。
(1)固定分配局部置換
(2)可變分配全局置換
(3)可變分配局部置換

2. 3頁面置換算法

把選擇換出頁面的算法稱為頁面置換算法置換算法的好壞將直接影響到系統的性能。
本實驗小組完成的頁面置換算法由FIFO、LRU、LFU、OPT、改進CLOCK下面將詳細介紹上述算法中涉及到的思路以及需要的設計結構等問題。
(1)FIFO算法
思路:選擇在內存駐留時間最長的頁面進行置換
實現:維護一個記錄所有位于內存中的邏輯頁面鏈表,鏈表元素按駐留內存的時間排序,鏈首最長,鏈尾最短,出現缺頁時,選擇鏈首頁面進行置換,新頁面加到鏈尾
特點:實現簡單;性能較差,調出的頁面可能是經常訪問的
該算法通過一個先進先出隊列實現對置換哪個駐留集中頁面的選擇的問題。但是該算法隨著分配的物理塊增大,有時會出現缺頁率上升的現象,即Belady現象,繪制FIFO隨著物理塊數增大缺頁率的變化情況以及設定好特殊的頁面訪問序列成功的實現了FIFO算法的Belady現象的觀察。
頁面置換算法的功能:當出現缺頁異常,需調入新頁面而內存已滿時,置換算法選擇被置換的物理頁面。
(2)LRU算法
思路:選擇最長時間沒有被引用的頁面進行置換,因為如果某些頁面長時間未被訪問,則它們在將來還可能會長時間不會訪問
實現:缺頁時,計算內存中每個邏輯頁面的上一次訪問時間,選擇上一次使用到當前時間最長的頁面
特點:可能達到最優的效果,維護這樣的訪問鏈表開銷比較大
LRU置換算法選擇最近最久未使用的頁面予以淘汰。在本實驗的過程中,小組將LRU算法分成了缺頁時頁面置換以及訪問到頁面時對數據結構的維護兩部分。其中數據結構采用與FIFO相同的隊列,頁面置換部分也保持與FIFO相同,但是在訪問到某一頁面時,通過把隊列中該頁取出放置到隊尾來實現最近最久未使用的頁面永遠放在隊首的方法,好比在模擬一個棧,來實現LRU數據結構的維護。

(3)LFU算法
思路:缺頁時,置換訪問次數最少的頁面
實現:每個頁面設置一個訪問計數,訪問頁面時,訪問計數加1,缺頁時,置換計數最小的頁面
特點:算法開銷大,開始時頻繁使用,但以后不使用的頁面很難置換

在采用LFU算法時,應為在內存中的每個頁面設置一個移位寄存器,用來記錄該頁面被訪問的頻率。該置換算法選擇在最近時期使用最少的頁面作為淘汰頁。
將LFU實現簡化為統計之前訪問頁面的次數,訪問次數最少的頁面將會被新訪問的頁面置換出去。
(4)OPT算法
其所選擇的被淘汰頁面將是以后永不使用的,或許是在最長(未來)時間內不再被訪問的頁面。采用最佳置換算法通??杀WC獲得最低的缺頁率。
OPT算法在實際中不可能實現,但是在模擬的過程中,知道以后會訪問什么頁面是已知的,所以讓OPT算法的模擬實現成為可能。
在OPT算法中并沒有用到特定的數據結構,僅通過獲取接下來的訪問頁面的序列便可以實現對將來最久未使用的頁面的確定。
(5)CLOCK算法

圖5 簡單的clock算法

2.4 進程與線程

進程是操作系統資源分配的基本單位,而線程是任務調度和執行的基本單位。
為模擬虛擬存儲器中的不斷訪問頁面的進程,實驗過程中使用多個線程的并發執行來模擬虛擬存儲系統當中的進程。在之后的描述中也會用進程來描述小組模擬的實際過程,但請明確這些“進程”實際上是通過線程來實現的。
進程的執行過程是線狀的, 盡管中間會發生中斷或暫停,但該進程所擁有的資源只為該線狀執行過程服務。一旦發生進程上下文切換,這些資源都是要被保護起來的。這是進程宏觀上的執行過 程。而進程又可有單線程進程與多線程進程兩種。我們知道,進程有 一個進程控制塊 PCB ,相關程序段 和 該程序段對其進行操作的數據結構集 這三部分,單線程進程的執行過程在宏觀上是線性的,微觀上也只有單一的執行過程;而多線程進程在宏觀上的執行過程同樣為線性的,但微觀上卻可以有多個執行 操作(線程),如不同代碼片段以及相關的數據結構集。線程的改變只代表了 CPU 執行過程的改變,而沒有發生進程所擁有的資源變化。除了 CPU 之外,計算機內的軟硬件資源的分配與線程無關,線程只能共享它所屬進程的資源。與進程控制表和 PCB 相似,每個線程也有自己的線程控制表 TCB ,而這個 TCB 中所保存的線程狀態信息則要比 PCB 表少得多,這些信息主要是相關指針用堆棧(系統棧和用戶棧),寄存器中的狀態數據。進程擁有一個完整的虛擬地址空間,不依賴于線程而獨立存在;反之,線程是進程的一部分,沒有自己的地址空間,與進程內的其他線程一起共享分配給該進程的所有資源。
資源互斥
在使用GDI+進行畫圖時,因為要同時運行多個線程,而所有的線程都會公用一個畫圖的緩沖區,所以要進行資源互斥的設計,同時對每個方法中使用的公共變量可以采用生成對應的局部變量,或者是使用mutex進行限制。

3. 總體設計

3.1 技術總路線

本次課設的前端(展示)及后端(算法處理、接口等)的基本技術路線均是先面向過程寫方法,然后采用面向對象的方法進行封裝。

(1)采用快速原型的方法,先實現前端界面的主要功能的大致顯示。
(2)然后對后臺進行開發。
(3)前后臺接口設計。
(4)前后臺交互。
(5)前端界面優化
(6)創新點開發

3.2.總體結構

本次課設項目共分為三大部分

(1)前端設計
(2)后臺設計
(3)接口設計
主要分為三個大模塊
(1)不同的頁面置換算法的速度和缺頁率的比較如下圖

圖6 多個頁面置換算法的比較(運行截圖)

(2)簡易動畫的制作,對話碰撞模型的構建如下圖

圖7 動畫的界面

(3)知識遷移,利用(2)中的原理來模擬一個尋仙問路游戲(不完善,不感興趣建議跳過)下圖

圖8 用來模擬外存的場景

圖9 用來模擬內存的場景

圖10 用來模擬處理器的場景

3.3 總體實現流程

(1)采用快速原型的方法,簡單的建立了一個前端的面向過程的界面,從而弄清項目中的難點
(2)針對項目中的難點進行后臺開發
(3)采用面向對象的方法進行封裝
(4)進行接口的設計
(5)美化前端

3.4后端主要創立的線程及其任務

(1)動畫運行線程,主要負責動畫的動態運行
(2)加速線程,對動畫的速度進行調整
(3)每個頁面置換都獨立為一個線程
(4)一個線程運行所有的頁面置換算法。
(5)更新數據線程,主要負責跟隨動畫的運行實時更新數據。
(6)一個線程負責準備GDI+繪制圖片
(7)各種監視其他線程執行情況的線程

3.6 數據保存與展示的設計

數據保存:
(1)保存輸入的數據和運行結果

圖11 保存的文件

(2)保存運行截圖

圖12 運行截圖1

圖13 運行截圖2

數據展示:
(1)直觀的以表格的形式來并發或者單個執行頁面置換算法。
(2)采用動畫的形式直觀的對數據在CPU,內存,外存之間的數據流動(如下圖)

圖14 設計展示

4. 詳細設計

4.1 頁面參數設計

為方便前端后端的交互、傳輸信息的確定是一個非常重要的工作。頁面參數既應該滿足在后端實現的過程中可以通過輸入參數來進行算法的執行,也要考慮到前端是否能傳輸這樣的數據。 根據題目要求,添加前端能夠設置頁面邏輯地址的隨機生成、快表訪問時間、頁表訪問時間、缺頁中斷時間等信息。 根據創先內容及后臺需要,還需要對頁面訪問模擬過程中分配的物理塊以及需要頁面訪問的最大值等信息的設計。 根據上述基本需求,可以設定需求的基本參數信息,為了方便對其管理,單獨將其設置為一個頁面請求類Request,其存儲的基本信息參數如下所示: 1.class Request //全局變量設置 2. { 3. public static ArrayList test_FIFO = new ArrayList(); 4. public static ArrayList test_LRU = new ArrayList(); 5. public static ArrayList test_OPT = new ArrayList(); 6. public static ArrayList test_SNRU = new ArrayList(); 7. public static bool kuaibiao = true;//快表的有無 8. public static int NumsOfwulikuai = 3; //頁內物理塊個數 --相當于對快表大小的限制 9. public static int TimeOfneicun = 100; //內存的存取時間 10. public static int TimeOfkuaibiao = 10; //訪問快表時間 11. public static int TimeOfqueye = 500; //缺頁中斷時間 12. // public static int NumsOfneicun = 20; //內存中的數量--頁表的大小 13. public static int NumsOfYebiao = 20; //內存中的數量--頁表的大小 14. public static int NumsOfKuaibiao = 20; //內存中的數量--頁表的大小 15. // public static string xulie = "1323H,3516H,16A7H,6B23H,3D21H,16FCH,7121H,36FCH,9121H"; 16. public static string xulie = "70000H, 00000H, 1AAA0H, 2AAA0H, 0AAA0H, 3AAA0H, 0AAA0H, 4AAA0H,2AAA0H,3AAA0H,0EEE0H, 3AAA0H, 2AAA0H, 1AAA0H, 2AAA0H, 0AAA0H, 1AAA0H, 7AAA0H,0AAA0H,1AAA0H"; 17. public static string[] physicalArray = { "70000H", "00000H", "1AAA0H", "2AAA0H", "0AAA0H", "3AAA0H", "0AAA0H", "4AAA0H", "2AAA0H", "3AAA0H", "0EEE0H", "3AAA0H", "2AAA0H", "1AAA0H", "2AAA0H", "0AAA0H", "1AAA0H", "7AAAH","0AAAH","1AAAH" }; 18. public static string[] logicArray = { "7", "0", "1", "2", "0", "3", "0", "4", "2", "3","0","3","2","1","2","0","1","7","0","1"}; 19. } 將其設置為全局變量,實現多個實例的request訪問的唯一性。

人物移動的數據結構設計實現展示如下:
1.

public static class player 2. { 3. public static bool loading = true; 4. public static PictureBox pic = new PictureBox(); 5. public static bool kuaibiao; 6. public static Point location=new Point(0,0); 7. static List<List<Image>> image_move = new List<List<Image>>(); //人物八個方向走路的圖片集 8. static List< List<Image> > image_stand = new List<List<Image> > (); //人物站立的圖片集 9. static int[] current_pic=new int[16]; 10. static int sleepTime = 50; 11. public static int cpu_action = 0; 12. public static int neicun_action = 0; 13. public static int waicun_action = 0; 14. // public static int current_num = 0; 15.} , 人物的移動部分圖片如下(共八個方向的移動與站立,圖 為向左上方移動的圖片):

圖 15 左上方人物移動圖

4.2 頁面訪問

處理設計

訪問快表、訪問頁表以及缺頁中斷等操作進行分開封裝,方便進行后期有無頁表,并方便多個頁面置換算法的實現。以為代碼較長,這里只展示一個創新性的改進的SNRU算法。 1.public void SNRU() 2. { 3. init(); 4. Dictionary<int, string> map = new Dictionary<int, string>();//存儲每一個內存頁框所存的內容 5. string outline = ""; 6. int totalVisitTime = 0; 7. int sleepTime = 0; 8. int unFindCount = 0; 9. //初始化 10. for (int i = 0; i < Request.NumsOfwulikuai; i++) 11. { 12. Q[i].pageId = -1; 13. Q[i].A = 0; 14. Q[i].M = 0; 15. } 16. stack1CurrentX = stack1InitialX + 70;//Stack1的初始坐標X+70 17. for (int i = 0; i < xulieLength; i++) //xulieLength表示有多少個要訪問的塊 18. { 19. outline = ""; 20. sleepTime = 0; 21. stack1CurrentY = stack1InitialY;//Stack1的初始坐標Y 22. string currentPage = Request.logicArray[i].Trim();//待處理元素 23. int changedLocation = -1; 24. if (!inblock(currentPage))//缺頁 25. { 26. unFindCount++;//缺頁次數加1 27. if (map.Count() < Request.NumsOfwulikuai) 28. { //物理塊未裝滿 不用置換,直接添加 29. int loaction = map.Count();//頁面的Key,入隊的位置 30. map.Add(loaction, currentPage); 31. for (int k = 0; k < Request.NumsOfwulikuai; k++) 32. { 33. if (Q[k].pageId == -1) 34. { 35. Q[k].pageId = str16_int10(currentPage); 36. break; 37. } 38. } 39. } 40. else 41. { //物理塊已經裝滿,進行頁面置換 42. int loaction = Search(); 43. Q[loaction].pageId = str16_int10(currentPage); 44. Q[loaction].A = 1; 45. changedLocation = loaction; 46. map.Remove(loaction); 47. map.Add(loaction, currentPage); 48. } 49. 50. if (kuaibiao_exist) 51. { 52. totalVisitTime += Request.TimeOfkuaibiao + Request.TimeOfneicun + Request.TimeOfqueye + Request.TimeOfkuaibiao + Request.TimeOfneicun; 53. sleepTime = Request.TimeOfkuaibiao + Request.TimeOfneicun + Request.TimeOfqueye + Request.TimeOfkuaibiao + Request.TimeOfneicun; 54. 55. } 56. else 57. { 58. totalVisitTime += (Request.TimeOfneicun + Request.TimeOfqueye + Request.TimeOfneicun);//訪問內存時間+缺頁中斷時間 59. sleepTime = (Request.TimeOfneicun + Request.TimeOfqueye + Request.TimeOfneicun); 60. } 61. 62. 63. mutexForGraphic.WaitOne(); 64. #region 動態演示,通過圖形更新 65. //繪制當前訪問頁 66. g.DrawRectangle(pen, stack1CurrentX, stack1CurrentY, dx, dy); 67. g.DrawString(currentPage, font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 68. 69. //繪制內存情況 70. foreach (KeyValuePair<int, string> pair in map) 71. { 72. stack1CurrentY += dy; 73. g.DrawRectangle(pen, stack1CurrentX, stack1CurrentY, dx, dy); 74. if (pair.Key == changedLocation) 75. { 76. g.DrawString(pair.Value, font, brushred, stack1CurrentX + 4, stack1CurrentY + 4); 77. } 78. else 79. { 80. g.DrawString(pair.Value, font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 81. } 82. } 83. for (int j = 0; j < (Request.NumsOfwulikuai - map.Count()); j++) 84. { 85. stack1CurrentY += dy; 86. g.DrawRectangle(pen, stack1CurrentX, stack1CurrentY, dx, dy); 87. g.DrawString("", font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 88. } 89. 90. //是否缺頁 91. stack1CurrentY += dy; 92. g.DrawRectangle(pen, stack1CurrentX, stack1CurrentY, dx, dy); 93. g.DrawString("√", font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 94. 95. //缺頁次數 96. stack1CurrentY += dy; 97. g.DrawRectangle(pen, stack1CurrentX, stack1CurrentY, dx, dy); 98. g.DrawString(unFindCount.ToString(), font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 99. 100. stack1CurrentX += dx; 101. #endregion 102. mutexForGraphic.ReleaseMutex(); //畫布緩沖區 103. } 104. else 105. { 106. 107. if (kuaibiao_exist) //物理塊中有表示快表中也有 108. { 109. totalVisitTime += Request.TimeOfkuaibiao + Request.TimeOfneicun; 110. sleepTime = Request.TimeOfkuaibiao + Request.TimeOfneicun; 111. } 112. else 113. { 114. totalVisitTime += 2 * Request.TimeOfneicun; 115. sleepTime = 2 * Request.TimeOfneicun; 116. } 117. 118. mutexForGraphic.WaitOne(); 119. #region 動態演示,通過圖形更新 120. //繪制當前訪問頁 121. g.DrawRectangle(pen, stack1CurrentX, stack1CurrentY, dx, dy); 122. g.DrawString(currentPage, font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 123. 124. //繪制內存情況 125. for (int j = 0; j < Request.NumsOfwulikuai; j++) 126. { 127. stack1CurrentY += dy; 128. g.DrawRectangle(pen, stack1CurrentX, stack1CurrentY, dx, dy); 129. g.DrawString(" ", font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 130. } 131. //缺頁率情況 132. stack1CurrentY += dy; 133. g.DrawRectangle(pen, stack1CurrentX, stack1CurrentY, dx, dy); 134. g.DrawString(" ", font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 135. 136. //缺頁次數 137. stack1CurrentY += dy; 138. g.DrawRectangle(pen, stack1CurrentX, stack1CurrentY, dx, dy); 139. g.DrawString(unFindCount.ToString(), font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 140. 141. stack1CurrentX += dx; 142. #endregion 143. mutexForGraphic.ReleaseMutex(); 144. } 145. //實時顯示當前最新界面的物理地址 146. MyForm.BeginInvoke(new Action(() => 147. { 148. string text; 149. int tmp = -1; 150. foreach (KeyValuePair<int, string> kvp in map) 151. { 152. if (kvp.Value == currentPage) 153. { 154. tmp = kvp.Key; 155. break; 156. } 157. 158. } 159. if (tmp == -1) 160. { 161. text = "程序未運行"; 162. } 163. string address = Request.physicalArray[i]; 164. address = get_physical_address(tmp, address); 165. text = "當前的最新邏輯頁的物理地址為:" + address; 166. physical_address.Text = text; 167. 168. })); 169. //實時統計缺頁率和累計用時 170. MyForm.BeginInvoke(new Action(() => 171. { 172. double current_queyelv = ((unFindCount * 1.0 / (i + 1)) * 100); 173. Request.test_SNRU.Add(current_queyelv); 174. quyelv.Text = "改進的CLOCK算法當前缺頁率:" + unFindCount + "/" + (i + 1) + "=" + ((unFindCount * 1.0 / (i + 1)) * 100).ToString("F2") + "%"; 175. })); 176. 177. MyForm.BeginInvoke(new Action(() => 178. { 179. totaltime.Text = "改進的CLOCK算法當前累計用時:" + totalVisitTime + "nm"; 180. })); 181. 182. 183. System.Threading.Thread.Sleep(sleepTime); 184. } 185. mutexForGraphic.WaitOne(); 186. #region 統計信息 187. stack1CurrentY = stack1InitialY; 188. g.DrawString("統計信息", font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 189. stack1CurrentY += dy; 190. g.DrawString("缺頁率:" + unFindCount + "/" + xulieLength + "=" + (unFindCount * 1.0 / xulieLength) * 100 + "%", font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 191. stack1CurrentY += dy; 192. g.DrawString("累計用時:" + totalVisitTime + "ns", font, brush, stack1CurrentX + 4, stack1CurrentY + 4); 193. #endregion 194. mutexForGraphic.ReleaseMutex(); 195. }

對應的流程圖如下

圖16 流程圖

4.4 LRU頁面置換設計

LRU采用的數據結構與FIFO數據結構相同,均為一個簡單的Python列表形式。這里我們維護這個列表,保證列表的首部為最久未使用的頁面,列表的尾部為剛訪問的頁面。所以在頁面置換的過程中,我們依舊只需調換隊首元素完成調頁,所以可以發現LRU的實現過程與FIFO是相同的,所以在FIFO中FIFO的調頁函數也適用于LRU。 既然LRU調頁與FIFO一樣,但是顯然二者的算法流程是不一樣的,而且LRU應當是訪問到頁面以后再將頁面放入隊尾更加合適,而不是簡單的置換頁面的時候就把頁面號放入隊尾,因為缺頁調換時并沒有成功獲取到頁面號對應的物理塊號。 為解決上述問題,專門聲明定義了LRU專用數據結構(即self.__access_history列表)的維護函數(當然在其他的算法中也會存在這樣的維護操作): 上述代碼中僅進行了兩個操作,將訪問到的頁面從隊列中彈出來以及將訪問到的頁面放入隊尾。該函數在訪問快表或頁表并成功找到對應頁面號時執行,也就意味著LRU不同于FIFO的地方便是如果頁面號存在于快表或頁表中,則將該頁面號放入隊尾表示該頁面剛剛訪問過。如此便實現了將最近最久未使用的頁面保持在隊列首的位置。

4.5 LFU 頁面置換設計

LFU頁面置算法實際上是統計存在于駐留集物理塊中頁面的訪問次數,每次調頁時調換訪問次數最小的頁面調換,如果調換次數最小的頁面有多個頁,則根據一定的邏輯,調換最久未訪問的頁面,設計維護LFU的頁面訪問記錄用的數據結構如下:

5. 編碼設計

5.1開發環境的設置和建立

語言及程序:C#
開發平臺:VS2017
運行環境:Windows10
處理器:Intel? Core?i7-7700HQ CPU @2.80GHZ
已安裝的內存(RAM):8.00GB
系統類型:64位操作系統,基于x64的處理器

5.2程序設計時要注意的事項

(1)采用面向對象的方法進行開發
(2)先采用面向過程的方法進行簡易程序的制作
(3)頁面的布局很重要

5.3關鍵構件/插件的特點和使用

本程序都是用VS2017采用C#進行開發,并自己編寫了碰撞模型。

5.4解決的技術難點、經常犯的錯誤

人物移動,碰撞,對話模型的設計與編碼
1.采用一個線程進行監聽(類似TS鎖),物體的
相對位置,滿足條件觸發相應的事件。適用于頻繁互動的情況
2.不頻繁的互動,直接在程序中寫好
線程監聽
基于TS鎖的原理實現,每經過一段時間查看一下被監聽線程的狀態
LFU算法的實現過程中,對于數據結構的設計以及維護非常存在困難,另外LFU表維護的過程中為了保證訪問次數按順序排序,需要有序的插入元素,然而每一個元素并不是簡單的數據結構,在排序過程中存在很多困難。
對創新功能的設計存在一系列的問題:在最初的過程中設定完全按照PBA算法的描述設計,但是由于模擬的空閑物理塊有限,導致如果保留物理塊內數據然后放入空閑物理塊鏈尾,會存在空閑物理塊鏈尾的物理塊被別的進程獲取而導致即使當前進程在第二個時鐘周期有需要該頁面,但存儲該頁面的物理塊已分配給別的進程而導致缺頁率依舊很高的現象,當然經過討論后已經解決了此問題(參考詳細設計)。

6.測試時出現過的問題及其解決方法

遇到的問題:畫面閃爍問題
解決方法:雙緩沖技術

6.1 導致畫面閃爍的關鍵原因分析:

6.1.1繪制窗口由于大小位置狀態改變進行重繪操作時

繪圖窗口內容或大小每改變一次,都要調用Paint事件進行重繪操作,該操作會使畫面重新刷新一次以維持窗口正常顯示。刷新過程中會導致所有圖元重新繪制,
而各個圖元的重繪操作并不會導致Paint事件發生,因此窗口的每一次刷新只會調用Paint事件一次。窗口刷新一次的過程中,每一個圖元的重繪都會立即顯示到窗口,
因此整個窗口中,只要是圖元所在的位置,都在刷新,而刷新的時間是有差別的,閃爍現象自然會出現。
所以說,此時導致窗口閃爍現象的關鍵因素并不在于Paint事件調用的次數多少,而在于各個圖元的重繪。
根據以上分析可知,當圖數目不多時,窗口刷新的位置也不多,窗口閃爍效果并不嚴重;當圖元數目較多時,繪圖窗口進行重繪的圖元數量增加,繪圖窗口每一次刷新
都會導致較多的圖元重新繪制,窗口的較多位置都在刷新,閃爍現象自然就會越來越嚴重。特別是圖元比較大繪制時間比較長時,閃爍問題會更加嚴重,因為時間延遲會更長。
解決上述問題的關鍵在于:窗口刷新一次的過程中,讓所有圖元同時顯示到窗口。

6.1.2進行鼠標跟蹤繪制操作或者對圖元進行變形操作時

當進行鼠標跟蹤繪制操作或者對圖元進行變形操作時,Paint事件會頻繁發生,這會使窗口的刷新次數大大增加。雖然窗口刷新一次的過程中所有圖元同時顯示到窗口,但也會有時間延遲,因為此時窗口刷新的時間間隔遠小于圖元每一次顯示到窗口所用的時間。因此閃爍現象并不能完全消除!
所以說,此時導致窗口閃爍現象的關鍵因素在于Paint事件發生的次數多少。
解決此問題的關鍵在于:設置窗體或控件的幾個關鍵屬性。

6.2 雙緩沖的關鍵技術

在編程當中,或多或少會接觸到圖像編程,對于圖像編程來說窗口閃爍是個常見的問題,當窗口有大量的復雜的圖元數據需要重繪,或者擁有自定義控件中的窗口閃爍問題更是顯而易見的。出現閃爍的原因有很多種,大部分原因主要是因為觸發WM_PAINT消息時窗體進行了重繪操作,此過程先是用窗體的背景色擦除窗口表面,再把窗體的圖像繪制上去,但是如果這2個操作不在同一時間段完成的話,就會先看到背景色(大部分為白色)接著才看到圖像,這樣就會出現我們所說的窗體閃爍現象。那么如何解決這個問題呢,解決方法有很多,其中有個比較好的方法(個人認為)就是采用雙緩沖機制來繪圖,基本上可以解決大部分的問題。
雙緩沖的原理:盡量快的輸出圖像,使輸出在一個刷新周期內完成,如果輸出內容很多比較慢,那么采用內存緩沖的方法,先把要輸出的內容在內存準備好,然后一次性輸出到窗體上,簡單的說來就是在窗口刷新一次的過程中,讓所有圖元同時顯示到窗口中。
在C#中 .Net Framework為編程人員提供了很好的操作雙緩沖的方法,為采用雙緩沖機制繪制比較復雜的圖像數據帶來便捷。下面簡單的介紹在C#中實現雙緩沖的幾種方法。

利用默認的雙緩沖

(1)在應用程序中使用雙緩沖的最簡便的方法是使用 .NET Framework 為窗體和控件提供的默認雙緩沖。通過將 DoubleBuffered 屬性設置為 true。

1.this.DoubleBuffered=true;

(2)使用 SetStyle 方法可以為 Windows 窗體和所創作的 Windows 控件啟用默認雙緩沖,在窗體或者控件的構造函數中添加如下代碼即可:

1. SetStyle(ControlStyles.ResizeRedraw,true); 2. SetStyle(ControlStyles.OptimizedDoubleBuffer,true); 3. SetStyle(ControlStyles.AllPaintingInWmPaint,true); 4.或者: 1. this.SetStyle(ControlStyles.ResizeRedraw | 2. ControlStyles.OptimizedDoubleBuffer | 3. ControlStyles.AllPaintingInWmPaint, true); 4. this.UpdateStyles(); 在C# 中手動管理緩沖圖像有2中方法,一種是利用單獨開辟內存實現雙緩沖這種傳統的方法,還有一種是利用 .Net Framework 中獨有的BufferedGraphicsContext類實現。方法一: 自己開辟一個緩沖區(如一個不顯示的Bitmap對象),在其中繪制完成后,再一次性顯示,代碼如下: 1. //1、在內存中建立一塊“虛擬畫布” 2. Bitmap bmp = new Bitmap(200,200); 3. 4. //2、獲取這塊內存畫布的Graphics引用 5. Graphics bufferGraphics = Graphics.FromImage(bmp); 6. 7. //3、在這塊內存畫布上繪圖 8. bufferGraphics.Clear(this.BackColor); 9. bufferGraphics.DrawRectangle(Pens.Black,0,0,bmp.Width -1,bmp.Height -1); 10. bufferGraphics.DrawEllipse(Pens.Red,10,10,100,50); 11. bufferGraphics.DrawLine(Pens.Green,10,100,100,200); 12. 13. //4、將內存畫布畫到窗口中 14. using(Graphics g = e.Graphics) 15. { 16. g.DrawImage(bmp, 10, 10); 17. } 18. 19. //5. 釋放資源 20. bmp.Dispose(); 21. bufferGraphics.Dispose();

7. 軟件使用說明

(1)基本功能
①多個頁面置換算法的比較
②動畫的演示
(2)需要運行的環境 windows10
(3)安裝 exe文件
(4)運行 windows10
(5)操作 直接界面即可

8. 總結

(1)完成的部分
動畫游戲模型搭建完畢,正打算應用于一個自己開發的小游戲。
(2)未完成的部分
小游戲實現了人物的移動,以及自動尋路的過程,正在完善打怪升級的程序。
(3)創新功能
①對CLOCK算法進行了改進,對PBA算法進行挖掘,同時對LFU算法的不同實現過程進行了對比。
②允許多個線程并發執行,對比鮮明。
③制作了較為直觀的動畫展示過程

(4)收獲、經驗、教訓和感受等
收獲:
①自己寫了簡易的碰撞,跟隨,對話模型,對于一些集成開發工具的原理有了一定的簡單了解
②掌握了一定的多線程編程策略
③對數據在cpu,內存,外存之間的運轉有了更深的理解
(5)經驗教訓:
①界面布局很重要
②明確用戶的需求
③項目的開發要及時的進行審查。
(6)感受:
最后,衷心感謝老師的悉心指導,感謝這次課程設計的機會,使我們得到了很好的鍛煉,學無止境,我們現在了解的東西還很少,還不能很好地掌握自己的專業知識,我們要謙虛的積極認真學習,不斷的增強自身的能力,提高個人素質,向一個真正的IT人士發展。

9.參考文獻

[1]博客boobo 頁面置換算法及例題
原文鏈接:https://www.cnblogs.com/RB26DETT/p/10035804.html
[2]博客IuStar 操作系統(5)頁面置換算法
原文鏈接:https://www.cnblogs.com/lustar/p/7875705.html
[3]博客 奄奄不息 頁面置換算法詳解
原文鏈接:https://blog.csdn.net/qq_41209741/article/details/99586257

總結

以上是生活随笔為你收集整理的操作系统课程设计之页面置换算法(流程模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

av成人在线看 | 国产精品久久久久久a | 国产精品高清免费在线观看 | 成人av亚洲 | 欧美日韩在线第一页 | 西西444www| av五月婷婷| 天天射天天干天天插 | 91视频在线免费看 | 人人爱在线视频 | 亚洲久久视频 | 色综合中文字幕 | 日韩国产在线观看 | 亚洲一区二区三区四区在线视频 | 成人91免费视频 | 视频国产区 | 久久99视频免费观看 | 色多多视频在线 | 91久久国产露脸精品国产闺蜜 | 久久久免费观看视频 | 免费a视频在线 | 久久99国产一区二区三区 | 国产精品中文久久久久久久 | 91网在线| 黄色大全免费网站 | 欧美日韩免费在线视频 | 中文字幕在线一二 | 97av在线视频 | 在线视频一二三 | 免费看污片 | 久久视频免费在线 | 免费亚洲黄色 | 精品国产黄色片 | 精品久久久久久国产 | 麻豆91在线看 | 日韩超碰| 国产免费观看视频 | 中文av网站| 久久av网| 五月综合婷 | 97成人在线视频 | 最新日韩视频在线观看 | 免费看成人 | 亚洲国产色一区 | 久久综合狠狠综合久久狠狠色综合 | 国产最顶级的黄色片在线免费观看 | 91久久精品一区二区二区 | 亚洲人在线视频 | 日韩免费高清在线观看 | 亚洲国产精品第一区二区 | 午夜视频黄 | 国产福利网站 | 激情九九 | 国产 在线观看 | 天堂v中文| 超薄丝袜一二三区 | 国产精品第三页 | 最近日本mv字幕免费观看 | 国产精品久久久久久久久久免费看 | 天天天天天天干 | 中文字幕一区二区三区四区久久 | 国产视频不卡一区 | 一区二区三区av在线 | 一区二区视 | 亚洲我射av | www.亚洲精品在线 | 色综合久久久久综合 | 国产成人精品女人久久久 | 婷婷国产v亚洲v欧美久久 | 国产看片网站 | 综合激情av | 国产高潮久久 | 国产在线观看一区 | 最近中文字幕在线播放 | 国产亚洲va综合人人澡精品 | 欧美日韩在线视频观看 | 91黄在线看 | av免费网| 日韩精品欧美一区 | 日本中文字幕视频 | 中文字幕在线网 | 久久国精品 | 亚洲国产精品久久久久 | 超碰在线98 | 日韩一级片观看 | 亚洲综合欧美精品电影 | 日日夜夜狠狠操 | 欧美先锋影音 | 91日韩在线专区 | 在线看免费 | 久久99国产综合精品免费 | 麻豆播放| 在线影视 一区 二区 三区 | 狠狠干网 | 免费成人黄色av | 99精品视频免费 | av在线播放中文字幕 | 免费看一及片 | 亚洲情感电影大片 | 欧美在线18| 97在线观看免费观看高清 | 国产精品毛片一区二区 | 亚洲成人av一区二区 | 日韩精品1区2区 | 五月天婷婷综合 | 亚洲一级电影视频 | 最新av网址在线观看 | 免费av大全 | 狠狠久久综合 | 丰满少妇高潮在线观看 | 国产一二三在线视频 | 韩国一区视频 | 日韩在线观看a | 婷婷久久久 | 波多野结衣小视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 97香蕉视频 | 最新中文在线视频 | 97人人爽 | 国产在线观看二区 | av黄色国产 | 在线视频亚洲 | 久久成年人网站 | 成人免费看片98欧美 | 免费观看版 | 久久九九久久 | 亚洲欧美国产精品va在线观看 | 综合久久精品 | 久久国产精品久久国产精品 | 欧美成年网站 | 人人艹视频 | 日韩网站在线免费观看 | 五月婷婷狠狠 | 日本h在线播放 | 国产精品第一 | 久久精品99国产精品亚洲最刺激 | 国产永久免费观看 | 日本在线观看中文字幕无线观看 | 亚洲日韩欧美视频 | 91成人免费电影 | 午夜精品久久久久久久久久久 | 久久天天拍 | 亚洲精品18日本一区app | 亚洲综合色激情五月 | 色婷婷激情五月 | 日韩精品免费在线观看视频 | 片网站 | 亚洲伦理一区二区 | 亚洲精品tv久久久久久久久久 | 日韩一区二区三 | 婷婷六月综合网 | 中文资源在线观看 | 成人av电影免费在线观看 | 在线观看精品视频 | 99久久精品无码一区二区毛片 | 国产成人精品免费在线观看 | 2019中文| 黄色软件大全网站 | 丁香综合激情 | 国产高清不卡在线 | 久久精品视频免费观看 | 久久草在线免费 | 性色av一区二区 | 久久夜色精品国产欧美乱极品 | 国产麻豆精品传媒av国产下载 | www.久艹| 国产精品区免费视频 | 最近更新中文字幕 | 久久午夜电影 | 国产美女免费观看 | 欧美日韩在线播放 | 久草资源在线 | 色综合色综合色综合 | 狠狠色香婷婷久久亚洲精品 | 国产精品久久久久三级 | 91夫妻视频| 精品特级毛片 | 国产香蕉视频在线观看 | 69视频永久免费观看 | 日日操天天操狠狠操 | 久久久99精品免费观看乱色 | 国产在线国偷精品产拍免费yy | 成人资源在线播放 | 99视频精品免费视频 | 九九在线视频 | 又大又硬又黄又爽视频在线观看 | 在线色亚洲 | 免费在线一区二区 | 夜又临在线观看 | 久久国内精品视频 | 国产成人久| 成人在线黄色 | 日本久久高清视频 | 免费日韩精品 | 国产一区二区三区黄 | 国产免码va在线观看免费 | 91一区在线观看 | 成人在线黄色 | 天天拍天天爽 | 人成免费网站 | 亚洲狠狠丁香婷婷综合久久久 | 一级黄色片在线免费看 | 国产在线播放一区二区 | 成人在线一区二区 | 国产精品毛片久久 | 爱干视频| 亚洲欧美视频一区二区三区 | 中文在线字幕免费观看 | 色天天久久 | 欧美日韩中文字幕视频 | 中文字幕视频免费观看 | 久久短视频 | 久久99精品国产一区二区三区 | 国产精品国产三级在线专区 | 五月婷婷av在线 | 五月婷婷色综合 | 亚洲国产中文字幕 | www.久久视频 | 人人爽久久涩噜噜噜网站 | 久久看片网站 | 中文字幕韩在线第一页 | 国产99免费| 91在线精品秘密一区二区 | 欧美坐爱视频 | 国产91av视频在线观看 | 久久久综合色 | 久久69精品 | 91av原创| 久久久九色精品国产一区二区三区 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 久久久久高清 | 久久久精品视频网站 | 99热在线精品观看 | 国产精品麻豆三级一区视频 | 最近日本mv字幕免费观看 | 综合黄色网 | 91免费视频黄 | 亚洲涩涩一区 | 91麻豆精品国产 | 午夜久久电影网 | 九九免费在线观看 | 天天操天天射天天舔 | 日韩在线观看视频免费 | av网站播放| 在线免费观看av网站 | 免费在线激情电影 | 亚洲另类视频在线 | 在线观看免费国产小视频 | 免费看黄在线看 | 97人人爽| 国产 一区二区三区 在线 | 午夜精品久久久久久久久久久久 | 亚洲激情在线 | 中文字幕免费高清在线观看 | 欧美精品免费一区二区 | 亚洲精品在线一区二区 | 天堂在线一区 | 国产剧情一区二区 | 久久99久久99精品免视看婷婷 | 免费v片| 五月婷婷丁香综合 | 欧美综合在线视频 | 成人av一区二区三区 | 久 久久影院 | 不卡精品 | 国产精品久久久久三级 | 中文字幕在线日亚洲9 | 精品国产精品一区二区夜夜嗨 | 国产精品剧情在线亚洲 | 国产99区 | 国产黄在线 | 色视频在线观看免费 | 精品嫩模福利一区二区蜜臀 | 天天干夜夜干 | 992tv在线观看 | 国产精品国产精品 | 国产精品久久久久久久久软件 | 亚洲成人精品在线 | 激情欧美国产 | 日本精品一区二区三区在线播放视频 | 免费在线观看日韩欧美 | 韩国精品一区二区三区六区色诱 | 日韩aa视频| 18做爰免费视频网站 | 欧洲精品视频一区二区 | 999久久久久久久久久久 | 久久综合爱 | 日日爽日日操 | 久久九九影视 | 日韩理论在线观看 | 日韩一区正在播放 | 国产理论免费 | 欧美日韩xx | 成人免费视频视频在线观看 免费 | 人人讲| 国产一级久久久 | 久久在线免费观看视频 | 国产美女精品视频 | 操老逼免费视频 | 不卡视频国产 | 色综合久久综合中文综合网 | 国产精品一区二区av日韩在线 | 国产福利91精品 | 国产aa免费视频 | 九九免费在线观看 | 久久综合爱 | 国产视频一区在线 | 国产69久久久欧美一级 | 在线视频婷婷 | 超碰av免费 | av免费在线网站 | 亚洲在线免费视频 | 91精品在线麻豆 | 婷婷综合亚洲 | 在线观看91av | 日韩欧美一区二区三区视频 | 精品一二三区 | 成人在线电影观看 | 日韩中文字幕第一页 | 久久人91精品久久久久久不卡 | 久久黄色成人 | 伊人看片 | 高清久久久 | 国产品久精国精产拍 | 成年人黄色大片在线 | 在线观看视频亚洲 | 日韩电影中文,亚洲精品乱码 | 精品国产成人在线 | 成 人 黄 色 视频播放1 | 精品久久久久久久久中文字幕 | 91精品国自产拍天天拍 | 午夜av影院 | 亚洲国产影院 | 欧美国产91 | 久久99偷拍视频 | 一区二区成人国产精品 | 天天干,天天干 | 在线观看中文字幕2021 | 久久成人免费电影 | 欧美精品免费一区二区 | 奇米影视8888在线观看大全免费 | 精品国产欧美 | 欧美国产日韩一区 | 麻豆va一区二区三区久久浪 | 91理论片午午伦夜理片久久 | 亚洲 欧美 日韩 综合 | 日韩理论电影在线观看 | 亚洲国产欧美在线人成大黄瓜 | 国产精品毛片一区二区在线 | 久久精品第一页 | 欧美性生活久久 | 六月丁香六月婷婷 | 午夜婷婷综合 | 久久精品2 | 亚洲黄色一级大片 | 97电影院在线观看 | 午夜色性片| 成人a视频在线观看 | 精品久久网 | 色永久免费视频 | 亚洲成人中文在线 | 亚洲2019精品 | 激情五月婷婷网 | 天天操天天操天天操天天操天天操天天操 | 国产手机视频在线 | 久久免费精品一区二区三区 | 丝袜美女视频网站 | 91看片淫黄大片一级在线观看 | 色99久久 | 国产精品欧美久久久久天天影视 | 九九热精品国产 | 精品国产亚洲日本 | 麻豆久久| 日本久久久精品视频 | 国内精品久久久久久中文字幕 | 91精品一区二区三区蜜臀 | 欧美国产大片 | 天天操天天操天天操天天操天天操 | 午夜精品一二三区 | 国产在线久久久 | 日韩欧美在线视频一区二区三区 | 男女激情免费网站 | 中日韩在线视频 | 91成人精品一区在线播放69 | zzijzzij日本成熟少妇 | 国内精品久久久久久 | 最近中文字幕国语免费高清6 | 91精选 | 网站你懂的| 97自拍超碰 | 高清中文字幕av | 亚洲免费公开视频 | 久久久久 | 国产原厂视频在线观看 | 一区二区三区观看 | 久久久久女人精品毛片九一 | 一级一片免费观看 | 天天久久夜夜 | 国产精品手机在线观看 | 超碰成人av | 二区三区在线视频 | 天天色草 | 超碰99在线 | 色综合激情久久 | 大荫蒂欧美视频另类xxxx | 国产一级性生活视频 | 亚洲闷骚少妇在线观看网站 | 五月婷婷在线观看视频 | 丁香五月亚洲综合在线 | 精品国产一区二区三区久久久蜜臀 | 国产美女视频一区 | 国产精品一区二区久久精品 | 亚洲综合爱 | 激情五月婷婷综合网 | 日韩精品久久久久久久电影99爱 | 日韩激情av在线 | 91高清视频在线 | 久草在线视频首页 | 天天噜天天色 | 韩国av免费在线观看 | 十八岁以下禁止观看的1000个网站 | 深夜免费福利网站 | 中文字幕文字幕一区二区 | 天堂av免费在线 | 久久专区| www.色的| 69夜色精品国产69乱 | 99色99| 天天天天天天天操 | 国产只有精品 | 久久免费视频一区 | 天天色天天操天天爽 | 亚洲精品乱码久久久久久蜜桃91 | 正在播放 国产精品 | 国产视频在线观看一区 | 亚洲激情p | 人人爽人人爽人人爽学生一级 | 91精品少妇偷拍99 | 一二三区av | 中文字幕国产精品一区二区 | 91最新国产 | 九九久久婷婷 | 一区二区三区四区不卡 | 99精品福利 | 国产中文字幕网 | 91福利视频免费 | 国产精品成人免费精品自在线观看 | 国产精品久久久区三区天天噜 | 精品99在线观看 | 日日摸日日 | 日韩电影在线观看一区二区 | 亚洲一二三在线 | 伊色综合久久之综合久久 | 伊人黄色网 | 中文字幕成人网 | 黄色三级久久 | 开心激情综合网 | 亚洲国产成人精品电影在线观看 | 国内精品免费久久影院 | 狠狠狠色丁香综合久久天下网 | 91av在线不卡 | 色狠狠操 | 五月天,com| 色窝资源| 成 人 黄 色 视频免费播放 | 国产男女免费完整视频 | 天天干天天玩天天操 | 久久视频在线观看 | 日韩欧美一二三 | 久久久这里有精品 | 国产黄免费看 | 久久91久久久久麻豆精品 | 久草爱| 日本最大色倩网站www | 成人小视频在线 | 久久精精品 | 亚洲成a人片77777kkkk1在线观看 | 国产精品久久久久久久久久久久午夜 | 国产精品 日韩 | 中文字幕中文字幕在线中文字幕三区 | 日韩电影在线观看一区二区 | 粉嫩av一区二区三区四区 | 午夜精品久久久久久久99 | 999成人 | 欧美日韩xxx | 人人插人人草 | 国产手机免费视频 | 久久人人添人人爽添人人88v | 免费看片网页 | 亚洲综合在线五月 | 色综合婷婷 | 五月婷婷视频 | 伊人久久国产精品 | 91日韩国产 | 成人午夜黄色影院 | 中文字幕在线观看日本 | 草久热 | 亚洲国产精品传媒在线观看 | 精品久久网站 | 香蕉在线视频播放网站 | 天堂网一区二区三区 | 视频在线一区二区三区 | 国产精品成人久久 | 在线观看日韩精品 | 人人插人人搞 | 91人人在线| 欧美污污视频 | 国产另类xxxxhd高清 | 日韩一区二区三区免费电影 | 久久激情小视频 | 久久国产精品网站 | 欧美在线观看小视频 | 色综合久久久久久久 | 深爱激情五月综合 | 国产日韩精品一区二区三区 | 欧美了一区在线观看 | 亚洲天天在线 | 丁香六月婷 | 婷婷在线观看视频 | 亚洲欧美久久 | 国产综合福利在线 | 国产午夜三级一区二区三 | adc在线观看 | 高清日韩一区二区 | 黄色大片日本免费大片 | 五月婷婷色播 | 在线播放一区二区三区 | 国产福利小视频在线 | 精品1区二区 | www.久久久com| 精品在线观看免费 | 日本xxxxav| 色综合久久久久 | av福利在线| 亚洲精品综合欧美二区变态 | 中文字幕视频免费观看 | 久青草电影| 中文免费在线观看 | 日韩在线小视频 | 中文字幕第一 | 噜噜色官网 | 国产精品去看片 | 天天射天天干天天 | 久色小说| 亚洲乱码久久 | 九九国产视频 | 国产成人久久久77777 | 欧美少妇的秘密 | 玖玖视频免费在线 | 亚洲伊人av | 91九色网站 | av电影不卡在线 | av一区二区三区在线观看 | 狠狠狠色丁香婷婷综合久久五月 | 天堂av在线中文在线 | 高潮毛片无遮挡高清免费 | 亚洲国产精品成人va在线观看 | 一区二区中文字幕在线观看 | 久久久久久免费毛片精品 | 成人网看片 | 91香蕉视频 | 国产高清小视频 | 91久久久久久国产精品 | 久久精品aaa | 国产精品久久久久久久久久免费 | 中文字幕在线观看免费高清电影 | 美女网站在线看 | 婷婷丁香av | 国产91综合一区在线观看 | 97碰碰碰| 久久久国产精品成人免费 | 国产很黄很色的视频 | 66av99精品福利视频在线 | 在线三级av | 国产精品中文字幕在线观看 | 成人国产电影在线观看 | 91精品久久香蕉国产线看观看 | 香蕉网在线播放 | 久久久婷 | 久久久久久久久网站 | 日韩在线免费播放 | 天天射天天色天天干 | 国产精品女主播一区二区三区 | 国产成人一级电影 | 久久久免费观看 | 99久久夜色精品国产亚洲96 | 国产午夜精品一区 | 500部大龄熟乱视频使用方法 | av亚洲产国偷v产偷v自拍小说 | 中文字幕观看av | 狠狠色丁香婷婷综合久小说久 | 天天草天天干天天 | 亚洲免费永久精品国产 | 97福利| 国产精品麻豆91 | 午夜精品久久久久久久99无限制 | 丁香六月av| 高清美女视频 | 国产黄色理论片 | 国产精品区在线观看 | 国产精品免费一区二区三区在线观看 | 狠狠色丁香婷综合久久 | 天天舔天天搞 | 色婷婷国产在线 | 91精品福利在线 | 日韩电影中文字幕 | 黄色成人av在线 | 日韩电影一区二区在线 | 亚洲涩涩一区 | 国产在线黄 | 欧洲一区二区在线观看 | 欧美a在线看 | 激情五月播播久久久精品 | 天天天在线综合网 | 国产欧美精品一区二区三区四区 | av在线播放不卡 | 91在线精品一区二区 | 99精品视频在线观看视频 | 正在播放国产91 | 亚洲视频 中文字幕 | www.色com | 亚洲视频电影在线 | 丁香花在线观看免费完整版视频 | 极品美女被弄高潮视频网站 | 国产欧美日韩精品一区二区免费 | 免费视频91| 日韩精品高清不卡 | 日韩精品免费一区 | 日韩最新av在线 | 四虎永久免费在线观看 | 91精品资源 | 色网站在线观看 | 国产成人免费av电影 | 国产手机视频在线播放 | 久久精品网址 | 99精品国产99久久久久久福利 | 丁香五月亚洲综合在线 | 天堂在线一区二区 | 1024手机在线看 | 在线视频精品播放 | 久久亚洲电影 | 国产二区免费视频 | 欧美日本啪啪无遮挡网站 | 天天色综合三 | 色综合久久久久久中文网 | 国产精品99久久久精品免费观看 | 少妇自拍av | 国产99久久九九精品免费 | 久久精品波多野结衣 | 久久成人国产精品一区二区 | av高清在线观看 | 成人av一区二区兰花在线播放 | 日本护士三级少妇三级999 | 日韩成人不卡 | 91探花国产综合在线精品 | 欧美调教网站 | 国产高清视频免费最新在线 | 黄色毛片视频免费观看中文 | 夜夜操天天 | 欧美不卡视频在线 | 久久av影院| 九九九热 | 狠狠艹夜夜干 | 日韩久久久久久 | 亚洲伊人第一页 | 中文字幕日韩国产 | 国产精品一区免费观看 | 欧洲视频一区 | 日韩av电影免费在线观看 | 五月天电影免费在线观看一区 | 欧美日韩精品在线观看视频 | 性色av香蕉一区二区 | 久久国产精品99国产 | 国产精品99久久久久久有的能看 | 国产一区二区视频在线播放 | 日韩最新av在线 | 亚洲欧洲久久久 | 亚洲国产中文字幕 | 久久国产网站 | 欧美一级久久久 | 国产三级精品三级在线观看 | 丁香综合av | 狠狠激情中文字幕 | 成人影片在线免费观看 | 黄色软件在线观看 | 亚洲日日日 | 亚洲三级精品 | 日韩精品久久久久久久电影99爱 | 国产亚洲精品久久久久动 | 久热免费| 久草线 | 开心激情五月婷婷 | 亚洲第一av在线 | 久久精品伊人 | 精品欧美一区二区三区久久久 | 国产精品欧美一区二区 | 99精品热视频只有精品10 | 欧美做受高潮电影o | 日韩欧美精品在线观看视频 | 国产精品久久一区二区三区, | 国产精国产精品 | 国产精品18久久久久久久久久久久 | 日韩视频在线观看视频 | 中文字幕电影高清在线观看 | 国产成人精品综合 | 97狠狠干| 欧美伦理电影一区二区 | 久草在线免费色站 | 在线观看国产高清视频 | 就要干b | 亚洲人成人在线 | 日日夜日日干 | 黄网站色视频免费观看 | 国产精品久久久久久久久久久久午夜 | 欧美不卡视频在线 | 天天操天天射天天爱 | 亚洲午夜av | 美女精品国产 | 日韩激情久久 | 国产精品剧情在线亚洲 | 国产精品视频最多的网站 | 91视频亚洲| 五月婷婷久 | 欧美一区在线看 | 国产精品免费久久久久久久久久中文 | 日韩免费一区二区三区 | 黄色片免费电影 | 免费色视频网站 | 狠狠色丁香九九婷婷综合五月 | 一本一本久久a久久精品综合 | 大胆欧美gogo免费视频一二区 | 亚洲精品在线观 | 天天干中文字幕 | 麻花传媒mv免费观看 | 日韩成人精品在线观看 | 欧美成人手机版 | 久久一区二区免费视频 | 久久久久久久久久网 | 97超碰在 | 色综合久久精品 | av免费观看在线 | 天天鲁天天干天天射 | 99视频在线免费观看 | 美女国产免费 | 亚洲精品一区二区三区四区高清 | 精品久久久久久久久久久久 | 奇米网在线观看 | 成人蜜桃视频 | 免费a现在观看 | 日韩影视大全 | 又黄又爽又湿又无遮挡的在线视频 | av观看久久久 | 91在线中文| 久草精品视频在线观看 | 精品久久久久久国产偷窥 | 国产资源在线播放 | 日韩成人精品一区二区 | 国产专区视频在线 | av在线电影网站 | 免费看黄的 | 亚洲精品九九 | 夜夜操天天摸 | 99久久久成人国产精品 | 欧美成人手机版 | 2023av在线 | 91在线蜜桃臀| 久久精品国产精品亚洲精品 | 欧美日韩二区在线 | 久久久久二区 | 久久久久久久久久久久久久电影 | 国产成人免费精品 | 国产专区日韩专区 | 91高清免费看 | 久久久久女教师免费一区 | 欧美大片第1页 | 美女免费网站 | 国产精品日韩久久久久 | 天天天综合网 | 久久6精品 | 最近日本韩国中文字幕 | 麻豆小视频在线观看 | 精品在线一区二区三区 | 91九色网址 | 婷五月激情 | 亚洲色影爱久久精品 | 欧美人牲| 99精品久久久久久久久久综合 | 色噜噜狠狠狠狠色综合 | 中文字幕网站视频在线 | 日韩视频一区二区在线观看 | 天天操天天射天天操 | 国产精品久免费的黄网站 | 在线国产视频 | 九九热1| 国产精品视屏 | 激情小说 五月 | 国产福利91精品一区二区三区 | 国产福利免费看 | 日韩一级精品 | 激情综合色播五月 | 日韩精品一区二区在线观看视频 | 精品视频一区在线观看 | 一级免费黄视频 | 久久黄视频| 欧美日韩超碰 | 高清av中文在线字幕观看1 | 国产精品正在播放 | 99久久免费看 | 91精品国产91p65 | 香蕉久久久久久av成人 | 国产在线欧美日韩 | 日日操操 | 欧美精品一区二区蜜臀亚洲 | 久香蕉 | 玖玖色在线观看 | 欧美专区国产专区 | 精品国产亚洲一区二区麻豆 | 久久99免费视频 | 探花在线观看 | 午夜国产福利在线 | 亚洲涩涩网站 | 视频精品一区二区三区 | 亚洲三级在线免费观看 | 亚洲精品视频第一页 | 亚洲成人精品久久 | 日韩a在线播放 | 在线播放91| 成年人免费看 | 国产精品久久久久久久免费 | 亚洲一区二区三区毛片 | 日韩精品视频免费看 | 在线电影av | 国产精品久久久久久高潮 | 99国产免费网址 | 久章草在线观看 | 中文字幕在线一区二区三区 | 色婷婷导航 | 国产色婷婷 | 99久久久国产精品 | 日韩毛片一区 | 日韩在线 | 久久久久女人精品毛片九一 | 国产免费大片 | 色婷久久 | 中文字幕三区 | 国产va饥渴难耐女保洁员在线观看 | 久久免费高清视频 | 国产视频2区 | 免费黄色一区 | 97中文字幕| 久久人人爽人人爽人人片av免费 | 亚洲欧美日韩精品一区二区 | 国产色 在线 | 日韩成人精品一区二区 | 成年人免费观看在线视频 | 三级视频日韩 | 最新日韩视频 | 亚洲区精品| 欧美最新大片在线看 | 亚洲精品自拍 | 久久久久免费电影 | 96超碰在线 | 一区二区视频在线免费观看 | 久久精品亚洲精品国产欧美 | 亚洲黄色一级大片 | 天天操天天拍 | 精品久久久久久亚洲综合网站 | aⅴ精品av导航| 四虎永久免费 | 久草久草在线 | 美女视频是黄的免费观看 | 日韩丝袜视频 | 天天天天色综合 | 啪啪小视频网站 | 四虎在线永久免费观看 | 顶级欧美色妇4khd | 午夜色性片 | av在线免费在线 | 五月婷婷操 | av免费看电影 | 美女久久久久久久久久久 | 国产第一页精品 | 久久99国产精品自在自在app | 国产黄色片免费看 | 亚洲少妇xxxx | 久久影院中文字幕 | 国产精品欧美久久久久久 | 精品在线亚洲视频 | 99综合久久 | 草久久精品 | 亚洲一区网站 | 国产精品久久一区二区无卡 | 欧美在线视频a | 在线视频 成人 | 深夜福利视频一区二区 | 日韩视频在线观看视频 | 激情久久伊人 | 九九免费精品视频在线观看 | 久久成年人 | 免费看的黄网站软件 | 中文字幕在线观看资源 | 免费视频久久久久 | 免费网站在线观看成人 | 一区二区视频在线免费观看 | 免费观看成人 | 91传媒91久久久| 97国产情侣爱久久免费观看 | 激情网五月 | 黄视频色网站 | 91最新视频 | 亚洲一级二级 | 国产精品久久久久久久久费观看 | 日批网站在线观看 | 五月亚洲综合 | 中文字幕一二 | 久久久免费少妇 | 亚洲一区黄色 | 九九九九色 | 中文字幕精品一区二区精品 | 国产男女爽爽爽免费视频 | 欧美日韩一区二区视频在线观看 | 国产精品理论在线观看 | 91麻豆福利 | 亚洲精品国产高清 | 精品一二三区视频 | 欧美91片| 欧美日韩国产二区三区 | 日韩视频图片 | 亚洲欧美日韩中文在线 | 九九久| 在线免费观看涩涩 | 国产中文字幕一区二区三区 | 丁香综合 | 在线观看国产亚洲 | 色一级片 | 天躁狠狠躁| 国产91在线观 | 91在线产啪| 91在线一区| 毛片黄色一级 | 青青看片 | 九九久久婷婷 | www.69xx| 在线国产精品视频 | 天天做日日爱夜夜爽 | 中文字幕在线观看免费 | www.xxxx欧美 | 一本一本久久aa综合精品 | 美女免费视频黄 | 亚洲激情校园春色 | 韩国视频一区二区三区 | 美国av大片| 九九九九精品九九九九 | 亚洲日本va午夜在线影院 | 麻豆视频在线免费观看 | 国产视频日韩视频欧美视频 | 天天综合五月天 | 国产一级二级av | 久草免费资源 | 日韩综合色 | 日本aaaa级毛片在线看 | 99久久久成人国产精品 | 美女视频a美女大全免费下载蜜臀 | 欧美小视频在线观看 | 国产精品免费一区二区三区在线观看 | 天天操天天舔天天爽 | 草在线视频 | www色com| 欧美一区二区在线免费观看 | 黄色一集片 | 中文字幕 国产视频 | 一级片视频在线 | 久久黄色小说视频 | 四虎成人精品永久免费av | 欧美精品久久久久久久久久丰满 | 一区二区成人国产精品 | 国产精品9999久久久久仙踪林 | 久久综合99 | 99热99| 中文字幕色综合网 | 免费成人在线观看视频 | 91麻豆精品国产91久久久久久 | 99精品国产在热久久下载 | 亚洲精品国产精品国自产在线 | 久久精品一区八戒影视 | 久久a免费视频 | 男女视频91| 五月婷婷综合在线视频 | 国产在线永久 | 午夜国产一区二区三区四区 | 欧美激情精品久久久 | 日韩中文字幕免费视频 | 这里有精品在线视频 | 久久精品黄 | 精品国内自产拍在线观看视频 | 99国产视频在线 | 国产精品免费一区二区三区在线观看 | 精品国产亚洲一区二区麻豆 |