免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

基于Java的操作系統(tǒng)課設(shè):FCFS作業(yè)調(diào)度、RR進(jìn)程調(diào)度與內(nèi)存管理聯(lián)動(dòng)

基于Java的操作系統(tǒng)課設(shè):FCFS作業(yè)調(diào)度、RR進(jìn)程調(diào)度與內(nèi)存管理聯(lián)動(dòng) 簡(jiǎn)介一份面向計(jì)算機(jī)相關(guān)專業(yè)學(xué)生的操作系統(tǒng)課程設(shè)計(jì)源碼與報(bào)告包圍繞作業(yè)調(diào)度、內(nèi)存管理、進(jìn)程調(diào)度與進(jìn)程阻塞喚醒四個(gè)核心模塊展開。項(xiàng)目用隨機(jī)數(shù)初始化10個(gè)作業(yè)進(jìn)入后備隊(duì)列采用先來先服務(wù)FCFS完成作業(yè)調(diào)度內(nèi)存中最多駐留5個(gè)進(jìn)程處于阻塞狀態(tài)的進(jìn)程仍占用內(nèi)存就緒和運(yùn)行狀態(tài)進(jìn)程以時(shí)間片輪轉(zhuǎn)RR算法調(diào)度首次適應(yīng)FF算法負(fù)責(zé)內(nèi)存分配進(jìn)程結(jié)束時(shí)回收并合并空閑分區(qū)整體串成結(jié)構(gòu)清晰、模塊劃分明確的可直接運(yùn)行的控制臺(tái)演示程序。壓縮包共8個(gè)文件以4個(gè)Java源文件為主可直接導(dǎo)入IDE調(diào)試另附PDF與Word課設(shè)報(bào)告、Markdown說明和License文件便于閱讀設(shè)計(jì)、整理文檔。包體約1.28MB體量緊湊已有約259人學(xué)習(xí)下載適合操作系統(tǒng)課設(shè)參考算法組合、代碼框架與報(bào)告寫法。1. 基于 Java 的操作系統(tǒng)課設(shè)作業(yè)調(diào)度、內(nèi)存管理與進(jìn)程調(diào)度怎么串成一條線操作系統(tǒng)課設(shè)最怕的不是某個(gè)算法寫不出來而是作業(yè)調(diào)度、內(nèi)存管理、進(jìn)程調(diào)度各寫各的最后拼不到一起。這份基于 Java 的控制臺(tái)課設(shè)把 FCFS 作業(yè)調(diào)度、RR 時(shí)間片輪轉(zhuǎn)、FF 首次適應(yīng)內(nèi)存分配和進(jìn)程阻塞喚醒全部串在一條主流程里10 個(gè)隨機(jī)作業(yè)從后備隊(duì)列一步步走進(jìn)內(nèi)存、上 CPU、被阻塞、再被喚醒整個(gè)過程在控制臺(tái)就能看到。適合正在做操作系統(tǒng)課設(shè)、特別是“老師要求多個(gè)算法聯(lián)動(dòng)而不是單獨(dú)演示”的 Java 學(xué)生。我拆完源程序和報(bào)告后發(fā)現(xiàn)它最大的價(jià)值不是某個(gè)算法寫得漂亮而是把“作業(yè)調(diào)度 → 內(nèi)存分配 → 進(jìn)程調(diào)度 → 阻塞喚醒 → 內(nèi)存回收”這個(gè)完整閉環(huán)講清楚了。接下來按模塊拆開講每個(gè)部分都能直接照抄進(jìn)你自己的課設(shè)。2. FCFS 作業(yè)調(diào)度與后備隊(duì)列10 個(gè)作業(yè)怎么排隊(duì)進(jìn)內(nèi)存2.1 作業(yè)調(diào)度和進(jìn)程調(diào)度為什么必須分開很多同學(xué)會(huì)把作業(yè)調(diào)度和進(jìn)程調(diào)度混成同一個(gè)東西這是第一個(gè)認(rèn)知坎。作業(yè)調(diào)度也叫高級(jí)調(diào)度它決定的是“哪個(gè)作業(yè)能從磁盤后備隊(duì)列進(jìn)入內(nèi)存”進(jìn)程調(diào)度也叫低級(jí)調(diào)度它決定的是“內(nèi)存里已經(jīng)就緒的進(jìn)程下一個(gè)誰上 CPU”。這份課設(shè)的流程是先用隨機(jī)數(shù)生成 10 個(gè)作業(yè)放進(jìn)后備隊(duì)列作業(yè)調(diào)度采用 FCFS先來先服務(wù)每次從后備隊(duì)列頭部取一個(gè)作業(yè)但這個(gè)作業(yè)能不能進(jìn)內(nèi)存還要看內(nèi)存里并發(fā)進(jìn)程數(shù)是否達(dá)到上限。上限是 5 個(gè)。這里有個(gè)關(guān)鍵設(shè)定阻塞狀態(tài)的進(jìn)程依然占著內(nèi)存也就是說就緒、運(yùn)行、阻塞三種狀態(tài)的進(jìn)程數(shù)加起來最多是 5。我當(dāng)初第一次看這個(gè)設(shè)定覺得奇怪后來想明白了——這是在模擬“內(nèi)存空間被占用”的現(xiàn)實(shí)約束不是每個(gè)進(jìn)程都能立刻進(jìn)內(nèi)存。所以作業(yè)調(diào)度觸發(fā)時(shí)機(jī)有兩個(gè)一是初始時(shí)內(nèi)存為空按 FCFS 依次調(diào)入前 5 個(gè)作業(yè)二是某個(gè)進(jìn)程運(yùn)行結(jié)束后釋放內(nèi)存再?gòu)暮髠潢?duì)列頭部補(bǔ)一個(gè)進(jìn)來。2.2 后備隊(duì)列的數(shù)據(jù)結(jié)構(gòu)與隨機(jī)作業(yè)生成作業(yè)的數(shù)據(jù)結(jié)構(gòu)直接決定后續(xù)所有模塊怎么寫。先看作業(yè)實(shí)體類的核心字段public class Job { private int jobId; // 作業(yè)編號(hào) private int arrivalTime; // 到達(dá)時(shí)間 private int serviceTime; // 需要服務(wù)的總時(shí)間 private int memorySize; // 所需內(nèi)存大小 private int status; // 作業(yè)狀態(tài)0-后備 1-就緒 2-運(yùn)行 3-阻塞 4-完成 private int remainingTime; // 剩余服務(wù)時(shí)間RR調(diào)度要用 private int memoryStart; // 在內(nèi)存中的起始地址內(nèi)存分配后寫入 }隨機(jī)生成 10 個(gè)作業(yè)的代碼邏輯通常長(zhǎng)這樣Random random new Random(); ListJob backlogQueue new ArrayList(); for (int i 1; i 10; i) { Job job new Job(); job.setJobId(i); job.setArrivalTime(i); // 簡(jiǎn)化處理第i個(gè)作業(yè)第i時(shí)刻到達(dá) job.setServiceTime(random.nextInt(20) 5); // 服務(wù)時(shí)間 5~24 job.setMemorySize(random.nextInt(80) 20); // 內(nèi)存需求 20~99 job.setStatus(0); // 后備狀態(tài) backlogQueue.add(job); } // 按到達(dá)時(shí)間排序保證FCFS的隊(duì)列順序 backlogQueue.sort(Comparator.comparingInt(Job::getArrivalTime));參數(shù)說明serviceTime 范圍設(shè) 5~24 是為了保證在時(shí)間片輪轉(zhuǎn)下能觀察到多次調(diào)度切換如果服務(wù)時(shí)間太短進(jìn)程一兩個(gè)時(shí)間片就跑完了輪轉(zhuǎn)效果不明顯。memorySize 范圍 20~99 是配合內(nèi)存總大小設(shè)計(jì)的如果內(nèi)存總量是 512這個(gè)區(qū)間能保證產(chǎn)生多種分配情況偶爾出現(xiàn)碎片。arrivalTime 用 i 而不是隨機(jī)值是為了讓 FCFS 的順序確定方便驗(yàn)證算法正確性——你不想在調(diào)試時(shí)分不清是調(diào)度算法錯(cuò)了還是隨機(jī)數(shù)導(dǎo)致的現(xiàn)象不穩(wěn)定。2.3 FCFS 調(diào)度主循環(huán)的寫法作業(yè)調(diào)度的主循環(huán)和進(jìn)程調(diào)度是嵌套關(guān)系外層循環(huán)負(fù)責(zé)從后備隊(duì)列調(diào)作業(yè)進(jìn)內(nèi)存內(nèi)層循環(huán)負(fù)責(zé)內(nèi)存中進(jìn)程的時(shí)間片輪轉(zhuǎn)。核心邏輯while (!backlogQueue.isEmpty() || !runningProcesses.isEmpty()) { // 1. 檢查內(nèi)存中的進(jìn)程是否結(jié)束結(jié)束則回收內(nèi)存并嘗試調(diào)入新作業(yè) for (int i 0; i runningProcesses.size(); i) { Process proc runningProcesses.get(i); if (proc.getRemainingTime() 0) { memoryManager.release(proc); runningProcesses.remove(i); // 有進(jìn)程結(jié)束從后備隊(duì)列按FCFS調(diào)入新作業(yè) if (!backlogQueue.isEmpty()) { Job nextJob backlogQueue.remove(0); loadJobToMemory(nextJob); } } } // 2. 時(shí)間片輪轉(zhuǎn)調(diào)度內(nèi)存中的進(jìn)程 Process current getNextProcessByRR(runningProcesses); if (current ! null) { current.setStatus(2); // 運(yùn)行 current.setRemainingTime(current.getRemainingTime() - timeSlice); memoryManager.allocate(current); // 3. 可能觸發(fā)阻塞條件模擬I/O等待 if (shouldBlock(current)) { current.setStatus(3); // 阻塞 blockedQueue.add(current); } } }這里有個(gè)很關(guān)鍵的細(xì)節(jié)進(jìn)程結(jié)束釋放內(nèi)存后不是立即從后備隊(duì)列調(diào)入作業(yè)而是要先做內(nèi)存回收、再觸發(fā)調(diào)入。順序不能反——先釋放內(nèi)存才能知道空閑分區(qū)有多大否則首次適應(yīng)算法拿到的分區(qū)表是過期的。另外注意 loadJobToMemory 內(nèi)部還要再做一次內(nèi)存分配檢查如果內(nèi)存不夠作業(yè)應(yīng)該留在后備隊(duì)列頭部而不是丟棄這就是所謂的“重新排隊(duì)”。2.4 作業(yè)調(diào)度模塊的驗(yàn)證方法調(diào)試作業(yè)調(diào)度最容易翻車的地方是“調(diào)入時(shí)機(jī)”和“并發(fā)數(shù)控制”。我給個(gè)自查清單初始時(shí)是否正確調(diào)入了 5 個(gè)作業(yè)內(nèi)存中進(jìn)程結(jié)束一個(gè)后后備隊(duì)列是否只補(bǔ)一個(gè)后備隊(duì)列為空時(shí)循環(huán)是否還在跑內(nèi)存里的進(jìn)程作業(yè)調(diào)入時(shí)并發(fā)數(shù)是否嚴(yán)格不超過 5。建議在每次作業(yè)調(diào)入或調(diào)出時(shí)打印一行日志格式類似[調(diào)度] 作業(yè)3 調(diào)入內(nèi)存當(dāng)前并發(fā)數(shù): 4/5這樣一眼就能看出調(diào)度節(jié)奏對(duì)不對(duì)。3. 時(shí)間片輪轉(zhuǎn)與進(jìn)程狀態(tài)流轉(zhuǎn)阻塞是怎么插入調(diào)度周期的3.1 RR 調(diào)度中的就緒隊(duì)列與阻塞隊(duì)列劃分時(shí)間片輪轉(zhuǎn)算法的關(guān)鍵是你得維護(hù)的就緒隊(duì)列順序。這份課設(shè)里內(nèi)存中的進(jìn)程分成三態(tài)就緒、運(yùn)行、阻塞。運(yùn)行態(tài)在同一時(shí)刻只有一個(gè)就是當(dāng)前拿到 CPU 時(shí)間片的進(jìn)程阻塞態(tài)進(jìn)程在等待 I/O 或某個(gè)事件不參與輪轉(zhuǎn)就緒態(tài)排隊(duì)等 CPU。我建議用兩個(gè)隊(duì)列分別維護(hù)就緒和阻塞而不是用一個(gè)狀態(tài)字段硬扛否則輪轉(zhuǎn)一圈回來你都不知道誰該被跳過。RR 調(diào)度器的核心實(shí)現(xiàn)public Process getNextProcessByRR(ListProcess processes) { // 按上次運(yùn)行時(shí)間排序保證輪轉(zhuǎn)順序穩(wěn)定 processes.sort((p1, p2) - { if (p1.getLastRunTime() ! p2.getLastRunTime()) { return p1.getLastRunTime() - p2.getLastRunTime(); } return p1.getProcessId() - p2.getProcessId(); }); for (Process p : processes) { if (p.getStatus() 1) { // 就緒 p.setLastRunTime(System.currentTimeMillis()); return p; } } return null; // 沒有就緒進(jìn)程時(shí)CPU空轉(zhuǎn) }注意這個(gè)排序邏輯lastRunTime 記錄的是進(jìn)程上一次被調(diào)度的時(shí)間用當(dāng)前時(shí)間戳作為排序鍵能保證輪轉(zhuǎn)公平性。但如果是純控制臺(tái)模擬用時(shí)間戳?xí)屆看芜\(yùn)行結(jié)果都不一樣難以復(fù)現(xiàn) bug。我實(shí)際調(diào)試時(shí)改成計(jì)數(shù)器自增——每輪調(diào)度全局計(jì)數(shù)器 1lastRunTime 記錄的是第幾輪這樣日志可復(fù)現(xiàn)排查問題方便得多。這是課設(shè)里值得注意的一個(gè)細(xì)節(jié)。3.2 阻塞與喚醒的模擬策略阻塞在這份課設(shè)里是個(gè)重點(diǎn)它把進(jìn)程調(diào)度和作業(yè)調(diào)度連接起來了。常見的模擬方式是給每個(gè)進(jìn)程一個(gè)隨機(jī)阻塞概率運(yùn)行到某個(gè)時(shí)間點(diǎn)就進(jìn)入阻塞阻塞若干個(gè)時(shí)間片后自動(dòng)喚醒回到就緒隊(duì)列private boolean shouldBlock(Process p) { // 運(yùn)行了隨機(jī)時(shí)長(zhǎng)后以一定概率模擬I/O阻塞 if (p.getStatus() 2 p.getRunTicks() p.getBlockAfter()) { return random.nextInt(100) 30; // 30%概率阻塞 } return false; }喚醒邏輯我建議寫在 RR 主循環(huán)的固定位置每輪調(diào)度先檢查阻塞隊(duì)列中是否有進(jìn)程阻塞時(shí)間已到到了就喚醒并放入就緒隊(duì)列尾部public void wakeUpBlockedProcesses() { IteratorProcess it blockedQueue.iterator(); while (it.hasNext()) { Process p it.next(); p.setBlockTime(p.getBlockTime() - 1); if (p.getBlockTime() 0) { p.setStatus(1); // 就緒 readyQueue.add(p); it.remove(); } } }這里有個(gè)隱藏坑喚醒的進(jìn)程應(yīng)該放到就緒隊(duì)列尾部還是頭部教材上通常說喚醒后進(jìn)入就緒隊(duì)列但沒說隊(duì)頭還是隊(duì)尾。按時(shí)間片輪轉(zhuǎn)的公平性應(yīng)該放尾部否則剛被喚醒的進(jìn)程插隊(duì)到老進(jìn)程前面輪轉(zhuǎn)就亂套了。我在這個(gè)點(diǎn)上栽過跟頭日志里看到某個(gè)進(jìn)程連續(xù)兩次拿 CPU 才發(fā)現(xiàn)是喚醒位置寫錯(cuò)了。3.3 總運(yùn)行時(shí)間片與切換次數(shù)的統(tǒng)計(jì)課設(shè)報(bào)告里一般要求分析調(diào)度算法的性能指標(biāo)。我在這份源碼的進(jìn)程類里加了一組統(tǒng)計(jì)字段首次運(yùn)行時(shí)間、完成時(shí)間、等待時(shí)間、周轉(zhuǎn)時(shí)間、帶權(quán)周轉(zhuǎn)時(shí)間。等待時(shí)間累加在調(diào)度主循環(huán)里for (Process p : runningProcesses) { if (p.getStatus() ! 2) { // 非運(yùn)行態(tài)等待時(shí)間1 p.setWaitTime(p.getWaitTime() 1); } }等待時(shí)間的統(tǒng)計(jì)邏輯是每輪調(diào)度只給非運(yùn)行態(tài)進(jìn)程累加。注意阻塞時(shí)間算不算等待時(shí)間不同課設(shè)要求不一樣——有的老師算有的不算。我建議單獨(dú)統(tǒng)計(jì)阻塞等待時(shí)間和就緒等待時(shí)間報(bào)告里可以分開列。這樣答辯時(shí)老師問“阻塞對(duì)性能的影響”你能直接拿出數(shù)據(jù)。4. 首次適應(yīng)內(nèi)存分配與回收空閑分區(qū)鏈的邊界處理4.1 內(nèi)存分區(qū)表的數(shù)據(jù)結(jié)構(gòu)與 FF 算法實(shí)現(xiàn)內(nèi)存管理模塊要維護(hù)一個(gè)空閑分區(qū)表和一個(gè)已分配分區(qū)表。首次適應(yīng)First Fit算法的核心是空閑分區(qū)按地址從小到大排序分配時(shí)從頭掃描找到第一個(gè)足夠大的分區(qū)就切割分配。代碼實(shí)現(xiàn)public MemoryBlock allocate(int size) { for (int i 0; i freeBlocks.size(); i) { MemoryBlock block freeBlocks.get(i); if (block.getSize() size) { // 分配從空閑塊中切出size大小 MemoryBlock allocated new MemoryBlock(block.getStart(), size); int remaining block.getSize() - size; if (remaining 0) { // 更新空閑塊為剩余部分 block.setStart(block.getStart() size); block.setSize(remaining); } else { // 正好用完直接從空閑鏈表移除 freeBlocks.remove(i); } return allocated; } } return null; // 內(nèi)存不足 }分區(qū)表用 ArrayList 保存空閑塊每次分配后需要重新按起始地址排序。注意“正好用完”這個(gè)分支很多實(shí)現(xiàn)會(huì)忽略恰好相等的情況導(dǎo)致空閑鏈表里殘留大小為 0 的空塊后面合并時(shí)出現(xiàn)下標(biāo)越界。這個(gè)邊界問題你遲早會(huì)遇到不如現(xiàn)在就把 if/else 寫完整。4.2 內(nèi)存回收與相鄰空閑分區(qū)合并進(jìn)程結(jié)束時(shí)回收內(nèi)存具體要做兩件事把已分配塊轉(zhuǎn)換成空閑塊加入空閑鏈表檢查該塊與相鄰空閑塊是否連續(xù)連續(xù)則合并。這里的相鄰不只是物理相鄰而是地址相鄰具體實(shí)現(xiàn)public void release(MemoryBlock block) { freeBlocks.add(new MemoryBlock(block.getStart(), block.getSize())); // 按起始地址排序后檢查相鄰 freeBlocks.sort(Comparator.comparingInt(MemoryBlock::getStart)); for (int i 0; i freeBlocks.size() - 1; i) { MemoryBlock current freeBlocks.get(i); MemoryBlock next freeBlocks.get(i 1); if (current.getStart() current.getSize() next.getStart()) { // 合并 current.setSize(current.getSize() next.getSize()); freeBlocks.remove(i 1); i--; // 繼續(xù)檢查新的相鄰關(guān)系 } } }合并邏輯里有個(gè)細(xì)節(jié)合并后需要把游標(biāo) i 減回去否則連續(xù)三個(gè)相鄰空閑塊合并時(shí)只處理了前兩個(gè)第三個(gè)漏掉。這是內(nèi)存回收最容易出的 bug——不是合并邏輯看不懂而是循環(huán)游標(biāo)處理不到位。我調(diào)試時(shí)打印過每一輪的 freeBlocks 狀態(tài)用地址連續(xù)性檢查腳本對(duì)比才發(fā)現(xiàn)這個(gè)問題。4.3 首次適應(yīng)相比最佳適應(yīng)壞適應(yīng)的取舍為什么這份課設(shè)選首次適應(yīng)而不是最佳適應(yīng)Best Fit首次適應(yīng)的優(yōu)點(diǎn)是分配速度快、偏向保留高地址大塊空間缺點(diǎn)是低地址區(qū)域會(huì)積累小碎片。最佳適應(yīng)相反分配時(shí)找最小夠用塊內(nèi)存利用率高但速度慢且產(chǎn)生大量難以利用的微小碎片。對(duì)于課設(shè)場(chǎng)景首次適應(yīng)實(shí)現(xiàn)簡(jiǎn)單、現(xiàn)象直觀更不容易在答辯時(shí)被追問到死角。如果老師問“FF 的缺點(diǎn)是什么”你可以回答“低地址區(qū)域的碎片化”——這個(gè)回答能顯示你真的理解而不是背代碼。當(dāng)然如果你學(xué)有余力我建議在源碼里再加一個(gè) Best Fit 的實(shí)現(xiàn)用 boolean 變量切換兩種算法報(bào)告里對(duì)比分析碎片率。這屬于加分項(xiàng)一般老師看到這個(gè)會(huì)說“這個(gè)同學(xué)有思考”。4.4 內(nèi)存狀態(tài)的可視化輸出控制臺(tái)程序怎么展示內(nèi)存分配做一個(gè)簡(jiǎn)單的字符畫內(nèi)存映像圖public void printMemoryStatus() { char[] mem new char[MEMORY_SIZE]; Arrays.fill(mem, .); // . 表示空閑 for (MemoryBlock block : allocatedBlocks) { for (int i block.getStart(); i block.getStart() block.getSize(); i) { mem[i] #; } } System.out.println(new String(mem)); }輸出一行 512 個(gè)字符的二進(jìn)制圖一眼就能看出內(nèi)存碎片的情況。這個(gè)輸出放在每次進(jìn)程調(diào)入調(diào)出之后。對(duì)照著看首次適應(yīng)算法下低地址區(qū)域的碎片化累積過程非常直觀——你會(huì)發(fā)現(xiàn)碎片越來越多新的作業(yè)越來越難找到大的連續(xù)空閑區(qū)。這也是報(bào)告里最有說服力的截圖素材。5. 實(shí)操避坑從參數(shù)設(shè)置到并發(fā)控制這 7 個(gè)坑我已經(jīng)替你踩過了5.1 并發(fā)進(jìn)程數(shù)超過 5 個(gè)作業(yè)提前調(diào)入導(dǎo)致狀態(tài)錯(cuò)亂現(xiàn)象控制臺(tái)輸出里出現(xiàn)了 6 個(gè)甚至更多進(jìn)程同時(shí)在內(nèi)存中運(yùn)行幾個(gè)時(shí)間片后數(shù)據(jù)開始亂跳。原因作業(yè)調(diào)入內(nèi)存的檢查條件寫錯(cuò)位置。常見錯(cuò)誤是把并發(fā)數(shù)檢查寫在 FCFS 調(diào)度器的開頭而不是每次調(diào)入前都檢查。還有一種情況是進(jìn)程結(jié)束回收內(nèi)存后忘了把進(jìn)程從 runningProcesses 里移除導(dǎo)致已釋放內(nèi)存的進(jìn)程還在占用名額。解決在 loadJobToMemory 方法入口處強(qiáng)制校驗(yàn)if (runningProcesses.size() MAX_CONCURRENCY) return;同時(shí)進(jìn)程結(jié)束回收時(shí)必須同時(shí)從 runningProcesses、memoryManager 的已分配表兩個(gè)地方移除。我建議把并發(fā)數(shù)的檢查收口到一個(gè)方法里所有調(diào)入邏輯都走這個(gè)方法不旁路。5.2 時(shí)間片輪轉(zhuǎn)出現(xiàn)連續(xù)兩個(gè)時(shí)間片分配給同一進(jìn)程現(xiàn)象日志顯示進(jìn)程 A 運(yùn)行完一個(gè)時(shí)間片后沒切走下一個(gè)時(shí)間片還是 A。原因調(diào)度器在選擇下一個(gè)進(jìn)程時(shí)把當(dāng)前運(yùn)行進(jìn)程的狀態(tài)改成了就緒但排序時(shí) lastRunTime 沒有更新導(dǎo)致按時(shí)間戳排序后它還是排在最前面又被打回運(yùn)行態(tài)。解決進(jìn)程被調(diào)度器選中時(shí)立刻更新 lastRunTime然后在每次調(diào)度前把運(yùn)行態(tài)的進(jìn)程改為就緒態(tài)。如果是用計(jì)數(shù)器而不是真實(shí)時(shí)間戳要保證計(jì)數(shù)器在每次選擇前自增。這個(gè)坑排查起來非常隱蔽因?yàn)榕及l(fā)情況下看不出來多跑幾個(gè)時(shí)間片就會(huì)發(fā)現(xiàn)某個(gè)進(jìn)程饑餓了。5.3 進(jìn)程結(jié)束內(nèi)存回收后空閑分區(qū)沒有合并碎片越來越多現(xiàn)象內(nèi)存中空閑空間總值足夠但連續(xù)空閑空間很少新作業(yè)調(diào)入時(shí)總是“內(nèi)存不足”。原因回收邏輯里只添加了新空閑塊沒有觸發(fā)相鄰合并或者合并循環(huán)里游標(biāo)處理有問題連續(xù)三個(gè)相鄰空閑塊只合并了前兩個(gè)。解決每次 release 后都強(qiáng)制走一遍完整的合并循環(huán)并且考慮把相鄰合并提取成公共方法分配和回收時(shí)都可以調(diào)用。驗(yàn)證方法連續(xù)讓多個(gè)進(jìn)程結(jié)束后打印空閑分區(qū)表檢查所有空閑塊的起始地址是否嚴(yán)格遞增、是否還存在相鄰塊未合并。我在 4.2 節(jié)里寫的 i-- 那行就是從坑里爬出來后補(bǔ)上的。5.4 就緒隊(duì)列為空時(shí) CPU 空轉(zhuǎn)的無限循環(huán)現(xiàn)象所有進(jìn)程都進(jìn)入阻塞態(tài)但程序還在空轉(zhuǎn)控制臺(tái)刷屏飛快。原因RR 調(diào)度器返回 null 時(shí)主循環(huán)沒有處理這種情況還是繼續(xù)執(zhí)行導(dǎo)致空轉(zhuǎn)死循環(huán)。解決調(diào)度器返回 null 時(shí)直接 continue同時(shí)每次循環(huán)至少執(zhí)行一次阻塞隊(duì)列的檢查——因?yàn)橹挥凶枞M(jìn)程的阻塞時(shí)間遞減才能喚醒進(jìn)程。更穩(wěn)妥的做法是加一個(gè)“全阻塞退出”判斷如果就緒隊(duì)列為空且阻塞隊(duì)列也即將為空說明所有進(jìn)程都完成了跳出主循環(huán)。5.5 隨機(jī)數(shù)種子不固定同一個(gè) Bug 沒辦法復(fù)現(xiàn)現(xiàn)象第一次跑崩了第二次跑又正常沒法定位問題。原因每次運(yùn)行 random 生成的作業(yè)參數(shù)不同操作系統(tǒng)課設(shè)不像 Web 開發(fā)那樣輸入確定隨機(jī)的數(shù)據(jù)讓排查難上加難。解決給 Random 構(gòu)造器傳入固定種子比如new Random(42)每次跑出來的 10 個(gè)作業(yè)完全相同。調(diào)試定位完問題后再改成不傳種子的版本觀察多組數(shù)據(jù)的表現(xiàn)。這個(gè)方法只對(duì)調(diào)試有用最終提交的版本建議用系統(tǒng)時(shí)間做種子否則答辯老師發(fā)現(xiàn)每次都是同一組數(shù)據(jù)會(huì)懷疑你的代碼是不是寫死了。5.6 阻塞時(shí)間參數(shù)設(shè)置不合理進(jìn)程永遠(yuǎn)醒不過來現(xiàn)象某個(gè)進(jìn)程進(jìn)入阻塞隊(duì)列后再也沒被喚醒其他進(jìn)程正常輪轉(zhuǎn)系統(tǒng)整體速度緩慢。原因阻塞時(shí)間設(shè)置得太長(zhǎng)或者喚醒檢查只在特定條件下執(zhí)行阻塞進(jìn)程被漏掉。常見是把阻塞時(shí)間設(shè)為固定大數(shù)或者喚醒邏輯寫在“就緒隊(duì)列非空”的分支里阻塞隊(duì)列一旦為空就跳過檢查。解決把阻塞隊(duì)列的檢查放到主循環(huán)的最前面無論就緒隊(duì)列是否為空每輪都先檢查阻塞進(jìn)程的剩余時(shí)間。阻塞時(shí)間建議用random.nextInt(3) 11~3 個(gè)時(shí)間片就夠了太長(zhǎng)會(huì)導(dǎo)致進(jìn)程長(zhǎng)時(shí)間不能參與調(diào)度太短可能進(jìn)程運(yùn)行兩下又醒了看不出阻塞現(xiàn)象。5.7 進(jìn)程 ID 混亂回收后 ID 復(fù)用引發(fā)統(tǒng)計(jì)錯(cuò)誤現(xiàn)象報(bào)告里的周轉(zhuǎn)時(shí)間統(tǒng)計(jì)數(shù)據(jù)明顯不對(duì)某個(gè)進(jìn)程的等待時(shí)間變成了負(fù)數(shù)。原因進(jìn)程結(jié)束后從隊(duì)列移除但新的作業(yè)調(diào)入時(shí)沿用了同樣的編號(hào)統(tǒng)計(jì)數(shù)組里的歷史數(shù)據(jù)被覆蓋。解決作業(yè) ID 從后備隊(duì)列生成時(shí)保持唯一進(jìn)程結(jié)束只標(biāo)記為完成狀態(tài)不重新分配 ID。如果想把 ID 復(fù)用需要在復(fù)用時(shí)檢查該 ID 的歷史統(tǒng)計(jì)是否已歸檔。最省事的方式是進(jìn)程對(duì)象不復(fù)用結(jié)束就丟棄新作業(yè)進(jìn)內(nèi)存時(shí)新建進(jìn)程對(duì)象這個(gè)對(duì)象與原作業(yè)共享 jobId 但統(tǒng)計(jì)字段獨(dú)立。這是我自己在寫報(bào)告時(shí)加統(tǒng)計(jì)功能踩到的坑數(shù)據(jù)對(duì)不上特別耗時(shí)。6. 從模塊拼裝到完整復(fù)現(xiàn)一份可以照用的驗(yàn)證清單和調(diào)試套路課設(shè)拿到手先不要急著跑我建議按下面這個(gè)順序走一遍20 分鐘內(nèi)能確認(rèn)每個(gè)模塊工作正常。第一步打開 README看清楚它定義的運(yùn)行入口和參數(shù)常量——內(nèi)存總大小、時(shí)間片長(zhǎng)度、最大并發(fā)數(shù)這三個(gè)值決定了整個(gè)模擬的行為。如果時(shí)間片設(shè)得太大RR 退化成了 FCFS如果內(nèi)存總大小設(shè)得太小10 個(gè)作業(yè)可能一個(gè)都調(diào)不進(jìn)去。第二步把隨機(jī)數(shù)種子固定跑一次完整流程記錄每一步的控制臺(tái)輸出。第三步手動(dòng)算一遍前 2~3 個(gè)作業(yè)的流轉(zhuǎn)過程和控制臺(tái)輸出對(duì)照確認(rèn)調(diào)度順序沒錯(cuò)。驗(yàn)證清單我整理成這樣作業(yè)調(diào)度是否嚴(yán)格 FCFS即后備隊(duì)列頭部永遠(yuǎn)是最先到達(dá)的未調(diào)入作業(yè)并發(fā)進(jìn)程數(shù)峰值是否≤5RR 輪轉(zhuǎn)順序是否按就緒隊(duì)列從頭到尾循環(huán)阻塞進(jìn)程是否不參與輪轉(zhuǎn)阻塞喚醒后是否進(jìn)入就緒隊(duì)列尾部?jī)?nèi)存回收后空閑分區(qū)表中無相鄰可合并塊所有進(jìn)程結(jié)束后后備隊(duì)列為空、內(nèi)存全部空閑。每一條都可以用一條日志輸出對(duì)一次不用猜。我在按這份課設(shè)改寫成自己的版本時(shí)把上面的每條驗(yàn)證做成了一個(gè)checkStatus()方法跑完一步就自動(dòng)檢查一遍。這套思路做完之后它成了我每次操作系統(tǒng)實(shí)驗(yàn)的通用模板后來做存儲(chǔ)管理實(shí)驗(yàn)時(shí)換了一組數(shù)據(jù)就繼續(xù)用。復(fù)盤這套課設(shè)我感覺最重要的收獲不是某個(gè)算法本身而是理解了“并發(fā)上限為 5 個(gè)進(jìn)程”這個(gè)約束是如何把作業(yè)調(diào)度、內(nèi)存分配、進(jìn)程調(diào)度串成閉環(huán)的——沒有這個(gè)上限作業(yè)調(diào)度和進(jìn)程調(diào)度就是兩套獨(dú)立的演示代碼有了它每個(gè)模塊之間才真正耦合起來。從那以后我每次拿到一個(gè)仿真的課設(shè)都先畫出“狀態(tài)流轉(zhuǎn)圖 資源約束條件”再動(dòng)手寫代碼這個(gè)習(xí)慣讓我少走了很多彎路。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美日本高清视频99| 色丁香五月婷婷| 97干在线播放| 婷婷丁香五月天综合AV| 精品夜夜澡人妻无码AV| 91色情播放| 色色色五月| 亚洲热热视频| 噜噜噜噜噜在线| 成人做爰黄A片免费看直播室男男| 六月婷婷狠狠| 玖玖热99| 涩五月婷婷| 婷婷五月天777| 激情综合五月丁香六月婷婷| 九月婷婷| 婷婷五月天狠狠| 99精品热视频| 精品热九九| 日本成人噜噜噜| 九九婷婷综合| 99精品综合| 五月天婷综合| 开心婷婷五月天激情网| 色六月丁香婷婷啪啪啪| 丁J香六月首页| 五月天激情网图片| 国产热精品| 狠干综合| 婷婷伊人五月天| 人人干人人看| 狠狠狠色激情综合适合| 久草xx性爱视频| 超碰伊人碰婷婷五月| 成人丁香五月天| 深爱激情av| 国产亚洲99久久| 狠狠操天天干| av性爱网站| 夜夜夜夜操| 丁香五月大香蕉AV| 爱操天堂| 天堂在线伊久| 99在线综合视频| 久综合4| 九九精品热| 色婷婷丁香五月天在线观看| 激情综合五月婷婷六月丁香 | 久久一品区| 色99久草在线| 日本99视频精品免费播放| 日本www免费九九| Blackedraw视频一区二区| 九月丁香婷婷综合| 51XX午夜影福利| 丁香婷婷五月综合| 色色色999| 色丁香五月| 99色视频在线| 五月天天久久香| 婷婷成人视频| 99综合| 五月婷婷激情综合av| 五月天色婷婷激情| 五月丁香婷婷综合视频| 来吧亚洲综合网| www.狠狠| 免费视频WWW在线观看网站| 在线网黄| 婷婷五月激情丁香| www.狠狠| 狠狠综合区| 99资源在线视频| 午夜福利8055| 97影院一级片| 色婷婷色情| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 久99热在线观看| 人人操人人操919999| 超碰免费人人| 婷婷久久五月| 国产夫妻操逼内射视频| 五月天色综合服务平台| 99色网站| 欧美叉叉叉BBB网站| 9精品久久999| 91综合在线观看首页| 99日精品视频| 五月综合激情久久| 99久久成人| 日日日天天干| 99在线免费视频| 丁香婷婷色五月| 国自产拍偷拍精品啪啪一区二区| 激情五月天婷婷播播久久综合91| 色青五月天| 99久久久国产大片| 九九热精品6| 深夜A片| 精品人妻久久久久| 91蜜桃婷婷狠狠久久综合9色| 欧美性生交XXXXX无码小说| 亚洲色五月| 欧美久久久久久久久中文字幕| 51成人| 先锋男人99资源| 色狠狠六月| 伊人五月天在线| 天天日天天操心| 亚洲AV永久无码影院黑人| AV在线资源| 狠狠香婷婷五月| 日本va欧美va欧美va| 九九色综合| 丁香五月婷婷影视先锋| 婷婷激情综合| 亚洲不卡| 亚洲黄网在线| 久久婷婷色丁香| 五月丁香91| 久久激丁香| 婷婷丁香五月天哟啪| 婷婷五月天成人小说| 婷婷五月天社区| 六六久久黄色| 五月丁香婷婷激激激综合网色播| 99爱爱| 91日本在线观看| 91亚洲免费片| 思思热在线视频精品| 大战熟女丰满人妻AV| 五月婷婷五月天| 99热在线这里只有精品| XX色综合| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 色五月五月丁香| 伊人久久婷婷| 日本9区视频| 丁香婷五月| 婷婷五月天基地| 色色色地址| 激情五月婷婷五月| 日本色99| 99热这里只有精品在线观看| 亚洲成片在线观看| 超碰高清在线| 久久婷婷原创视频| 99精色| 610018岁成人视频| 亚洲经典小视频| www色色色com| VA婷婷| 亚洲超碰在线| 99a级片| 伊人午夜综合色啪| 日韩AV一区二区三区| 婷婷五月天人妻| 做爰丰满少妇1313| 亚洲 五月 婷婷 成人| 99啪啪网| 国产91九色| 色综合色| 另类在线| 深爱五月婷婷| 成人狠狠成人狠狠成人狠狠成人狠狠| 欧美,日韩成人在线| 日在线V视频在线播放| 久久婷婷综| 欧美婷婷日本| 老美AA片| 九九热婷婷| 激情综合国产| 丰满老熟妇BBBBB搡BBB| 国产精品色婷婷AV综合色色| 超碰九九热| 99热这里有精力| 99小视频在线| WWW.HENHENL.| 五月婷婷AV| 青青草原中文字幕| 91美女啪啪| 婷婷五月开心中文字幕在线| 在线观看亚洲AV| 99热这里只有精品1025| 日日干干天天干| 婷婷综合玖玖五月| 五月丁香五月婷婷| 欧美天天综合网站上去吧| 五月丁香婷婷六月| 亚洲色婷婷五月| 五月激情射| 色综合99| www激情网| 亚洲视频另类| 免费看欧美成人A片无码| 色色色在线播放| 偷拍九九热| 99色五月| 婷婷欧美综合| 武则天精品久久| 日本视频久久| 99综合| 久色中文| 丁香六月婷婷综合| 九九无毛| 99re热视频这里只精品| 996热| 天天操夜夜玩!| 日韩一级网站| 色停停五月,在线观看| 大香蕉网站,大香蕉综合| 4399无码视频| 久99热| 99亚洲视频| 99r这里只有精品哦| 九九99久久| 婷婷综合精品视频97| www超碰| 丁香五月婷婷综合激情哟哟哟| www.99婷婷| 九九热这里只有精品12| 99久久久国产大片区| 五月开心啪啪| 婷婷亚洲在线| 91中文狠狠综合| 天天久久狠狠色综合| 金桔一区二区ab地址| 婷婷丁香五月在线观看91| 国产成人网| 色五月婷婷一二| 先锋男人99资源| 国产免费AV网站| A1片久久| 久久婷综合网| 五月婷婷综合性爱噜噜| 热久久这里只有三级视频| 色综合99| 日韩色色视频| 激情文学五月丁香六月婷婷| 五月天激情子轮| 天天操天天操| xxx日本东京热| 79精品在线视频| 狠狠婷婷日韩| 九月丁香八月婷婷加勒比| 噜噜噜噜综合在线| 天天日,天天干,天天操| 丁香六月五月天| 精品人妻久久久久久久| 在线五月婷婷小电影| 色99视| 91久女| 久久97久久99久久综合欧美| 五月婷婷香蕉| 色婷小说| 色婷婷国产精品综合在线观看| 99热国产免费| 婷婷五月花| 色婷婷六月| 91视频综合网| 91九色视频| 婷婷涩五月| 色色五月天丁香婷婷| www,五月天激情| 26UUU亚洲欧美| 色五月丁香激情视频| 久热黄色| 99色色热| 色婷婷丁香五月综合| 亭亭社区五月天| 日韩av网址大全| 精品皮股午夜AV| 79色色| 色色色色五月| 婷婷五月激情网| 色色网站在线| 潘金莲AAAAAAAAAA| 久热黄色| 日 日干 日日做| 秋霞影音91人妻久久| 婷婷五亚洲| 99久久综合| 六月丁香激情| 五月丁香网站| 久久久久久久久久久月丁| 国产性爱一级| 婷婷激情六月中文| 久久hd| 99热这里是精品| 97人人干| 啪啪 综合网| 这里只有精品视频视频在线观看| 婷婷丁香五月天哟啪| 噜综合| 校园激情 亚洲| 夜夜干夜夜操| 精品一二三区久久AAA片| 情色五月天 网站| 99热99操| www.色擼擼.com| 激情亭亭五月| 久久性爱网| 久久精品天| 99操碰| 九九九热精品| 五月婷婷丁香色播网| 91丁香五月| 97精品人人A片免费看| 97色综合| 四五月婷婷| 久re热视频| 婷婷色婷婷| 五月丁香亭亭AV女优| 五月丁香六月在线欧美| 99精品综合| 婷婷五月丁香五月| 伊人干综合| 射久久丁香五月| 婷婷丁香九月| 香蕉久久国产AV一区二区| 9色免费网| 久久综合激情五月天| 婷婷五月丁香香蕉| 五月丁香婷婷欧美色图视频五月丁香777电影 | 欧美色五月| 丁香六月婷婷激情| 色高清无码视频| 97婷婷狠狠| 欧美日本韩国亚洲| 26uuu.| 超碰a女人的天堂| 国产成人精品一区二三区熟女在线| 久久婷婷激情久久| 岛国AV网| 一级片无码| 五月天免费色| 丁香激情五月| 婷婷大美在线| 丰满女老板BD高清A片| 外国碰视频网站97| 五月天综合激情网| 夜夜资源站| 五月激情综合美女久久| 玖玖综合色区在线观看| 99色 色| 精品人妻伦一二三区久久| 激情六月丁香| 99热这里只有免费| 岛囯综合激情网| 丁香五月天无码| 狠狠色婷婷7777久| 亚洲色色爱| 亚洲激情五月| 午夜理论片最新午夜理论剧| 超碰av在线| 99亚洲天堂| 婷婷五月天激情开心网| 五月天婷婷AV| 九月婷婷激情| 四虎成人精品永久免费AV九九| 国产亚洲精品久久一区二区三区| 91国产精品视频播放| tingtingzonghewang| 亚洲综合另类| 这里只有精品久| 亚洲精品无AMM毛片| 激情婷婷人妻| 色婷婷亚洲综合网站| 99久久久国产精品免费蜜乳tv| 亚洲无AV在线中文字幕| 天天干天天叉| 97碰碰视频| 色婷婷综合亚洲| 青青草轻轻操| 综合色播| 五月天停停基地| 熟妇国产| AV在线中文| 国产一级片| 色色色99| 五月婷婷视频ab| 影音先锋一区二区资源站| 性生活视频98791| 欧美啪啪五月天| 婷婷中文字幕网| 久久久中文| 五月婷久久| 99re思思热这里| 婷婷五月天久草在线| 人人爽欧美婷婷久久久五月丁香| 翔田千里 50岁 无码| 天天做天天爱| 99热费观看| 成人婷婷| 婷婷丁香中文字幕| 色噜噜97视频在线观看| 管管補管管紱| 丁香五月天AV在线 | 96丁香六月婷婷蜜桃综合久久| 五月丁香六月婷婷成人| 香蕉久久av一区二区三区| 思思热久久久在线| 亭亭丁香aV| 九月激情婷婷丁香| 天堂A∨在线| 久久久er热| 在线超碰精品| 欧美激情综合| 天天综合精品| 五月天婷婷伊人| 日韩综合久| 久久久久久久人妻| 激情亭亭五月| www狠狠| 婷婷欧美综合| 一区=区操屄高清大全av| 国产精品视频免费看| 欧美日韓成人亚洲精品另类| 六月丁香停| 日欧一片内射VA在线影院| www.婷婷五月| 五月开心激情网| 激情性爱五月天| 婷婷五月丁香99| 亚洲无码99| 五月丁香婷婷成人网| ay2区| 99热高清在线| 99综合99| 人妻日日日| 亚洲午夜av| 婷婷五月花西瓜| 日日噜狠狠色综| 久久电影4399| 久久综合首页| 丁香视频| 99热欲| 欧美日韩中文国产一区发布| 天天干天天爽| 99热这里只有精品3| 第五色色色婷婷| 婷婷丁香成人在线视频| 五月婷婷丁香深深爱| 亚洲AV网站在线观看| 久久久免费图片视频| 国产无遮挡又黄又爽免费网站| 久久九九网| 天天综合精品| 九月婷婷色色| 91操片| 人人摸人人澡人人| 亚洲激情综合| 久99久99精品免| 国产三级秋霞| 狠狠插狠狠操| 久久这里只有精品热在99| 99热中文字幕久久| 色色射| 久机视频这只有精品| 婷婷五月天美女视频| 颜射 精品性爱av| 91操色| 婷婷基地成人五月天| 91久久久久久| 热99精品视频观看| 国产99视频永久免费| 五月婷婷和六月| 天天综合插插| www.亭亭五月天| va亚洲中文在线| 99视频一区| 国产精品国产VA片国产| 性色99| 深爱丁香激情| 五月天婷婷中文字幕在线播放| 天天热夜夜操| 丁香五月另类小说| 99热一区| 91久久婷婷| 激情综合五月丁香| 天天拍天天操| 五月天丁香啪啪网| 人人超碰99| 五月丁香久久婷| 97se视频在线| 99精品视频免费在线播放| 亚洲色综合| 操笔无码| 五月好婷婷| 成人开心五月天| 久久久久婷| 996热re视频精品视频| 99激情在线| 伊人99热| 超碰69天堂| 中文字幕无码成人电影| 五月天激情综合网俺也去| 五月天色导航婷婷资源婷婷| 五月婷在线色视频| 国产精品视频免费看| 啪啪啪大香蕉| 丁香五月欧美| 性爱111111| 中文av在线观看| 91一起操| ss视频xx91| 99热精品无码| 欧美经典片免费观看大全| 性爱激情五月| 超碰色综合| 五月天婷婷色紫薇阁| 综合综合网| 婷婷五月天天爽| 疯狂做受XXXX高潮A片| 97啪在线观看视频| 黄色五月婷婷| 色色色免费视频| 五月丁香啪啪网| 亚洲V国产V欧美V久久久久久| 亚洲色图在线视频| www色婷婷久久综合久色| 五月丁香激情在线| 伊人婷婷五月天| 久久综合图片| 无码九九| 无码99| 99视频精品| 操逼综合激情网| 侠女刀之记忆电影在线看免费| 99re最新地址| 丁香五月婷婷基地| 久久久激情视频| 国产成人va在线| 亚洲成人AV在线播放| 综合福利网| 成人丁香五月| 天天日天天摸| 久久综合55| 婷婷第六色| 99热精品在这里| 成人做爰A片免费看网站找不到了| 99九九热视频免费| 日日射天天射| 欧美交换配乱吟粗大25P| 狠狠99| 人人干AV| 超碰人妻公开在线| 久久五月丁香伊人青草| 97人凄人人操人人爽| 月丁香久久久| 婷婷六月天亚州| 欧美色色色| 日韩情色在线观看| 丁香五月综合网亚洲综合欧美狠狠 | 色综合99无码| 丁香六月av| 天天日夜夜拍| 九色视频91疯狂| 亚洲天天操| 色婷婷AV在线观看| 五月婷婷欧美激情| 乱乱av| 五月的丁香六月的婷婷| 九九热精品| 色婷久久| 国产精品色色| 婷婷精品视频| 色色综合网站| 丁香六月婷婷缴情欧美| 另类视频五月天| 久久九区| 日本色道视频网站| 五月婷婷熟女| 天天天干夜夜夜操| 丁香六月婷婷一区| 狠狠干综合| 婷婷六月丁香在线| 另类小说五月天| 99精品在线观看| 激情五月综合婷婷| 天天弄天天爽| 国产精品美女久久久久AV超清| 久热这里这里有精品| 26uuu欧美| 激情精品久久| 亚洲精品无人区| 五月色俺婷婷| txt五月激情四射网综合俺也来了 五月天婷婷丁香人人操91 | 婷婷五月天你懂的| 久热91精品| 99九九99九九九视频精彩| 99热都是精品| 九九视频这里只有精品在线播放| 熟妇无码乱子成人精品| 婷婷爱五月天人人爱| 4399精品一区二区| 97色女人在线| 九月婷婷综合八月丁香在线观看 | 热这里只有精| 97爱艹婷婷开心丁香激情综合| 婷婷综合在线观看视频| 久久9RE热视频精品98| 久久久婷婷五月亚洲97号色| 婷婷国产综合| 一区二区三区四日本| 五月婷婷丁香五月婷婷| 超碰成人AV| 婷婷久久五月| 丁香婷婷视频一区二区| 久综合九| 亚洲春色奇米影视| 天天日天天舔| 婷婷丁香77777| 开心五月婷婷伊人| 99久久99热这里只有精品| 婷婷六月激情| 99热这里只有精品1998| 欧美啪啪五月天| 久久a热| 激情五月丁香在线观看直播| 精品九九网| 色噜噜狠狠色综无码久久合欧美| 开心五月婷| 亚洲AV成人精品日韩在线播放| 另类少妇人与禽zOZZ0性伦| 五月婷婷我| 久久色婷婷| 五月激情丁香啪啪| 六月激情婷婷| 99爱视频在线| 五月色丁香成人| 91九色精品| 久久er99热精品一区二区| 五月婷婷丁香五月天| 丁香六月婷婷激情综合| 免费V片在线| 五月激情影院| 色婷婷www| 婷婷五月色综合| a色色色色色| 五月婷婷亚洲色图| 久久久久久久久久8888| 五月色综合| 九九亚洲小视频| 99这里有精品久久97| 丁香五月婷婷婷桃花影院| 99久久网站| 日本啪啪网| 丁香美女主播视频在线观看| 五月丁香六月婷婷免费| 级情九色| 九九99香蕉在线视频播放| 五月停停99| 九九色综合| 日本色综合| 亚美欧色影院| 五月丁香激情婷婷综合| 婷婷成人综合五月| 99在线观看亚洲| 久久婷视频| 色婷在线视频| 丁香五月综合激情久久潮喷| 91黄色五月天视频| 91.www综合| 91丨九色丨东北熟女| 思思热视频| 成人AV中文字幕| 五月亭亭狠狠| 五月婷婷六月丁香综合在线| 婷婷色情小说| 九九热这里只有精品在线观看| 久久五月网| 日本婷婷综合精品| 精品国产va久| 婷婷的五月天另类视频| 五月天激情Av| 久热这里精品免费| 激情五月亚洲| 五月婷网站| 日本激情五月| 亚洲日日日| 久久丁香五月婷| 99A片| 开心深爱激情网| 这里只有精品网站| 夜色综合网| 久9免费视频| WWW久久久| 99热免| 婷婷激情六月| 怎么样可以看免费的一级av| 婷婷综合中文字幕| 97香蕉人人在线观看| 欧美婷婷九月| 9久国产| 久久这里只有精品5| 伊人网欧美在线男人天堂五月丁香| 激情五月天综合网站网站网站| 五月丁香日本在线视频观看| 亚洲国产婷婷色五月| 亚洲AV激情五月综合网| 99精品爱| 超碰人人91| 超碰人人艹| 久久人妻精品| 97在线天堂| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 婷婷操久久| 夜夜骑夜夜撸| 日操夜操天天操不卡| 亚洲4区国产欧美| 五月天丁香婷| caopeng97日韩| 婷婷六月丁香欧美视频在线| 婷婷色色五月天| 少妇被躁爽到高潮无码文| 狠狠色综合图片| 美女激情综合| 婷婷五月天,影院| 99热思思| 色婷婷成人| 97色视频网| 丁香 婷婷 激情 综合 五月| 丁香五月天五码婷婷| 狠狠色丁香婷婷久久综合| 亚洲色婷婷| 五月花激情网| 激情另类综合| www.五月丁香av| 色婷婷狠狠18禁| 婷婷婷狠狠| 操人91| 99九九精品视频| 色色色色网| 婷婷五月综合免费在线| 欧美精品XXXXBBBB| 久久综合丁香| 热久久国产视频| 色丁香五月| 久久九九99.www| 丁香丁婷五月激情| 这里有精品| 精品国产一区二区三区四区阿崩 | 婷婷五月激情综合啪啪| 五月天五月色婷婷综合| 色碰碰| 9九九久久精品无码专区| 婷婷丁香五月天哟啪| 中文在线视频久1| 91蜜桃婷婷狠狠久久综合9色| 国产亚洲99久久精品熟| 综合狠狠伊人| 色婷操逼| www.99免费视频| 中文字幕性爱丰满| 久99热| 色狠狠色| 婷婷五月天天天| 日本人妻伦在线中文字幕| 99在线观看| 五月婷婷深深爱| 久久五月热| 天天日夜夜草进麻麻的子宫| 99无码视频| 综合色五月天| 五月丁香综合激情| 五月天婷婷激情六月久久| 欧洲亚洲免费视频区| 狠狠操狠狠操AV| 91九色熟女| 99久精品视频| 丁香五月婷婷五月| 五月天激情国产综合婷婷婷| AV网址大全在| 婷婷丁香五月天欧美| 色婷五月| 五月婷婷黄色| 六月丁香久久| 久久久久久xxxxx| 婷婷五月婷婷| 婷婷五月天成人在线视频| 成人电影一区| 亚洲超碰在线| 96丁香六月婷婷蜜桃综合久久| www.久久爱.com| 丁香美女五月天婷婷| 天天操五月天| 婷婷爱五月| 色五月五月婷婷| 九月婷婷色色| 婷婷综合网站| 在线综合网| 亚州激情网站无码| 四LLL少妇BBBB槡BBBB| 大香蕉AV在线| 精品无码久久久久久久久| 婷婷丁香六月五月天| 99热这里只有精品9| 丁香五月婷婷婷婷欧美综合| 久热免费视频| 久热中文字幕在线线观看| 婷久久久| 婷婷五月天激情电影小说| 4399在线观看免费毛片| 婷婷六月啪啪| 如何安全看伊人婷婷| 国产片XXXXA片国语对白| 五月激情综合五月| 手机在线视频观看9| 操逼巨乳91| 九九热这里只有精品首页| 五月丁香激情综合网| 激情婷婷综合五月少妇| 亚洲性爱AV| 综合五月丁香六月婷婷| 9 1超碰九色| 大香蕉AV在线| 五月天色社区| 色婷婷婷婷| 国产XXXX搡XXXXX搡麻豆| 这里只有精品视频在线看| 六月丁香停| 天天舔天天爽| www激情com| 天堂资源欧日浪女在线播放| 精品一二三区久久AAA片| 日本欧美国产| 丁香婷婷六月天| 精品亚洲国产成AV人片传媒| 99热中文字幕久久| 伊人婷婷五月天| 色135综合网| 亚洲色图五月丁香| 五月六月丁香婷婷在线观看| 99久久亚洲国产| 东京热免费视频| 九九热经典视频在线观看| 嫩模aV在线| 伊人九九68| 殴美日比视频| 丁香婷婷五月基地| 超碰在线国产| 国洲夜色亚热在线久久| 婷婷成人五月天| 六月婷婷色综合| 秋霞三级影视资源| 99在线免费视频播放| 色情五月综合婷婷| 欧美黄色韩日网| 丁香五月综合福利视频导航| 久久 无毛。| 黄色国久久| 日韩精品999| 色久五月天| 99这里有精品视频3| 亚洲人人操| 蜜桃五月天| 超碰99热| 久久五月综合| 激情丁香五月激情婷婷| 久久精品婷婷| www,com,五月色色| 五月四色激情| 成人午夜天| 久久久久久久久久8888| 激情五月天综合婷婷网| 精品无码人妻一区| 五月婷婷在线丁香| www.五月丁香| 丁香婷婷五月人体| 国产AV熟妇人震精品一品二区| 5月丁香啪啪啪| 99精品免费| 影音先锋777xfplay色资源网站| 操操操www.com| 亭亭色色五月天| 五月天基地| 五月久久| Av狠狠色丁香婷| 亚洲欧洲中文日韩久久AV乱码| 婷婷五月天奸女| 啪色综合| 人妻久久人妻久久第一区| 婷婷五月天激情丁香| 色情丁香五月天| 久热这里有精品视频| 国产精品久久久久久白浆色欲| 亚洲无码yw| 五月婷婷丁香综合,亚洲天堂| 日韩人妻白浆视频系列| 精品一二三区久久AAA片| 久久9视频| 久久激情五月婷婷| 99热综合| 日本99视频| 色九月| 色播婷婷五月天| 婷婷久热| 亚洲婷婷91丁香| 啊v视频在线观看| 丁香婷婷六月天| 9久视频| 9 1超碰九色| 深爱五月激情| 五月天大香蕉| 亚洲日韩一页精品发布| 综合欧美五月婷婷| 日本婷婷激情四射中文字幕在线观看| 久9综合| 91久久久久| 亚洲婷婷丁香五月| 99热99| WWW色色色COm| 亚洲中文字幕av| 日本熟女三区| 婷婷五月天成人动漫 | 色婷婷a| 婷婷中文无码| 亚洲激情综合| 亚洲成av人影院| 久777| 最新日韩AV中文字幕| 91色吧网| 九九久久五月天| 亚州激情在线视频| 色噜噜狠狠色综| 偷拍视频五月天| 色色色色色网| 色欲婷婷五月天| 欧美成人精品A片免费一区99| 影音先锋男人女人| 97成人超碰免| 色色色国产| 高清无码一区二区三区四区| 少妇人妻综合色6699| 超碰三级片| 狠狠色成人影片| 超碰2021| 色色五月婷婷久久| 五月丁香婷婷无码A∨| 五月激情丁香| 91一起操| 婷婷香草网| 91ncm视频| 亚洲精品乱码久久久久99| 99爱在线观看视频| 99在线热| 99热xx| 久99久视频免费观看| 狠狠做五月| 免费五月婷婷网| www.婷婷五月天.com| 粉嫩AV久久一区二区三区| 欧在线一区| site:901-07.com| 色狠狠综合入口| 五月丁香色综合| av不卡网站| 99re热视频这里只有综合亚洲| 色五月天成人在线| 国产成人AV在线| 中文字幕在线aⅴ免费观看| 色热久| 天天综合亚洲综合| 五月丁香啪| 91av色色乱视频| 天天肏天天插| 日韩亚洲视频| 高清a片基地| www.婷婷网| 五月丁香激情综合| 色一色综合| 日日干天天射| 99精品在这里| 少妇性BBB搡BBB爽爽爽电影| 五月婷婷三级| 久久人妻情侣| 丁香五月激情网| 日韩色久| 欧美日韩AAA| 日韩av手机在线观看| 五月婷色色| 激情综合五月婷婷| 美女婷婷激情亚洲| 久久久er热| 五月丁香六月成人| 欧美婷婷精品激| 婷婷五月图片小说网| 99ri视频| 婷婷色导航| www.婷婷六月天| 五月婷婷丁香综合,亚洲天堂| 午夜理论片最新午夜理论剧| 操人91| 97碰碰在线观看视频| 激情五月婷婷六月丁香| www.zbzhongsen.com| 五月丁香激情啪啪| 久婷婷婷| 亚洲热久| 激情五月天com| 久久婷婷青青| 这里只有精品视频一区| 国产精品久久久久久久久久久久| 亚洲在线综合| 免费观看的av| 国产激情在线| 五月丁香激情婷婷| 久久久久婷| 九九无码| www.AV在线| 99网99热| 五月丁香婷婷综合网色欲| 另类小说激情五月天| 伊人大香久久| 国产资源91在线| 99热黄| 婷婷丁香综合成人| 色天使色综合| 五月丁香六月婷婷网站| 91男人资源站| 欧美色婷婷| 超碰精品国产首页| 久久五月婷婷丁香| 九久久精品视频99| www.五月婷婷久久.com| 激情婷婷五月| 丁香五月偷拍| 另类图片 五月激情| 三男玩一女三A片| 丁香婷婷啪啪啪| 久久全意婷婷| 五月婷婷色五月| 激情婷婷五月天丁香| 大香蕉欧美在线| 久久9精品| 丁香五月久久| 婷婷五月av| 国产精品色色| w婷婷五月婷婷w| 亚洲无码 图片区| 色婷婷五月天视频网站| 1024成人在线观看| 色婷婷五月天偷拍| 婷婷五月永远18免费久久久| 精品人妻一区二区三区在| 夜夜综合色| 成人色图情色成人网 www.5b5b5bcom 五月天| 欧美久久网| 日本天天综合| 九月丁香婷婷网| 色五月激情| 3pAV| 五月婷丁香久久综合| 伊人深爱综合| 久久久久亚洲AV无码网影音先锋| 中文字幕在线日亚州9| 久久婷婷色丁香| 在线99精品| 日韩一级片| 婷婷五月色丁香在线看| 激情爱爱网站超大免费| 五月天偷拍| 色永久| 亚洲黄色精品| 97色五月婷婷在线| 亚州操操| 天天爽天天日人人爱| 狠狠久久婷| 久久香蕉影院| 女人天堂 AV| 婷婷香香五月| 九九热视频精品999| 中文字幕av久久爽一区| 婷婷色五月亚洲| 超碰a女人的天堂| 91av传媒高清在线视频网| 岛国av网站| 激情网 五月天| 亚洲狠狠婷婷| 婷婷丁香五月天综合激情| 久久久www| 色大综合| 大香蕉综合网| 天天操天天国产三级片处女学生妹| 九九黄色网| 天天摸天天做天天爱天天爽| 精品久色| 激情av在线| 国自产拍偷拍精品啪啪一区二区| 五月婷婷啪啪啪| 狠狠色婷婷777| 色婷婷黄色网络| 91互操| Caoub青青超碰 | 丁香五月在线人妻| 久久99精品久久久久久三级| 成人国产网站在线免费看| 婷婷激情在线| 婷婷va| 欧美激情五月天在线观看| 综合久久综合久久| 涩 五月 婷婷 狠狠| 国产乱妇无乱码大黄AA片| 久综合网| 五月婷婷69| 婷婷五月天色综合| 丁香五月婷婷亚洲综合精品在线| A1片久久久| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 五月丁香亭亭操逼| 在线成人av播放| 思思干精品| 久9热| 99亚州综合精品成人网| 99视频这里有精品| 都市激情小说婷婷| 日韩AV色色色| 丁香六月色婷婷欧美| 欧亚洲在线高清视频| 色综合色五月| 伊人色综合久久久| 精品综合爱| 色婷婷激情五月天| 丁香婷婷婷婷十二月在线观看视频| 免看黄大片AA | 大香蕉久| 99热在线播放| CHINESE熟女老女人HD视频| AA丁香综合激情| 九九AV| 婷婷俺去也| www.zbzhongsen.com| 亚洲人妻AV| 色色色国产| 97碰| 九九激情网| 婷婷久久五月丁香| 91久久婷婷| 五月婷婷丁香六月| 第四色五月天| 久热超碰| 国产精品成人AV在线观看春天| 久久98| 成人无码精品1区2区3区免费看| 少妇水多A片太爽了| 少妇AB又爽又紧无码网站| 四川BBB搡BBB爽爽视频| 强辱丰满人妻HD中文字幕| 日韩成人精品中文字幕电影| 五月天社区婷婷| 六月婷婷色色网| 9 9 9色色| 色5月婷婷色| AV在线大香蕉| 激情五月深爱五月观看| 五月婷婷亚洲综合网| 五月天激情网址| 六月丁香社区| 五月天色色婷婷| 97香蕉碰碰人妻国产欧美| www.色99| 99色综合久久| 日本色色影院| 亚洲av综合网| 啪啪啪啪五月天| 婷婷激情五月综合丁香社| 亚洲综合激情五月久久| 99久久9| 久色网| 九久热| 色青五月天| 影音先锋色婷婷| 六月丁香婷婷网| 激情五月天伊人影院| 啪啪 综合网| 欧洲第一无人区观看| 久超免费视频| 国产精品视频免费看| A一级操| 五月丁六月香av| 天天日夜夜拍| 日日干天天| 久久免费少妇高潮99精品| 超碰伊人碰婷婷五月| 日本色频| 人人草人人爱手机视频看看| 97av在线视频| 五月婷婷导航| 同性gv国产精品一区二区| 婷婷综合在线观看视频| 日本色久| 中文中文在线| 欧美日韩日韩成人| 激情色中文| 五月丁香六月婷婷欧美综合| 婷婷五月天综合网| 国产毛片操B| 色综合色综合网| 亚洲中文乱字字幕线在永久| www.五月婷婷.com| 色婷婷六月| 丁香激情五月| 色大综合| 狠狠做深爱婷婷久久综合一区| 激情丁香五月| 4399欧美另类视频| 久久av电影| 色五月播五月| 色色婷婷丁香| 久久综合影院| 丁香六月天之亚州热女| 啪啪激情综合| 韩国97天堂| 99'无码| 色婷婷六月天| 亚洲AV日韩在线观看| 深爱五月激情综合| 丁香五月手机在线| 成人超碰网| ww亚洲ww在线观看| 婷婷激情小说| 超极99精品| 婷婷五月天激情偷拍| 91精品久久久久久77777| 1024成人免费看| 天天日日天天| 丁香婷婷影院| 国产精品人妻在线网址| 亚洲激情免费视频| 欧美私人家庭影院| 丁香五月91| enecarbon-materials.com污K127封锁请涟系@wip1688 | 婷婷丁香红五月91C| 九月激情网| 欧美日韩成人高清在线| 久色大香蕉| 操逼福利视频| 超碰国产在线| 天天爽在线视频| 亚洲婷婷五月天| 1囯产午夜仑鲁鲁| 女人天堂 AV| 操大屄五月天视频| 激情综合五月激情XXXX| 色综合久| 激情综合区| 六月激情综合| 热九九九九| 狠狠草在线观看| 无码人妻一区二区一牛影视| 五月丁香亚洲五月| 成人午夜视频精品一区| 亚洲色色在线| 97热这里只有精品| 99爱视频精品在线观看| 26UUU精品一区二区| 超碰99在线| 97AV在线视频| 狠狠操综合| 久色激情| 99亚洲天堂| 综合色播| www.伊人天堂偷偷婷婷| 日木WWW视频| 五月天自拍视频|