




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上操作系統(tǒng)原理試驗(yàn)報(bào)告班級(jí): 學(xué)號(hào):姓名:實(shí)驗(yàn)一:CPU調(diào)度一、實(shí)驗(yàn)內(nèi)容 選擇一個(gè)調(diào)度算法,實(shí)現(xiàn)處理機(jī)調(diào)度。二、實(shí)驗(yàn)?zāi)康?多道系統(tǒng)中,當(dāng)就緒進(jìn)程數(shù)大于處理機(jī)數(shù)時(shí),須按照某種策略決定哪些進(jìn)程優(yōu)先占用處理機(jī)。本實(shí)驗(yàn)?zāi)M實(shí)現(xiàn)處理機(jī)調(diào)度,以加深了解處理機(jī)調(diào)度的工作。三、實(shí)驗(yàn)題目 1、設(shè)計(jì)一個(gè)按優(yōu)先權(quán)調(diào)度算法實(shí)現(xiàn)處理機(jī)調(diào)度的程序; 2、設(shè)計(jì)按時(shí)間片輪轉(zhuǎn)實(shí)現(xiàn)處理機(jī)調(diào)度的程序。四、實(shí)驗(yàn)要求PCB內(nèi)容: 進(jìn)程名/PID; 要求運(yùn)行時(shí)間(單位時(shí)間); 優(yōu)先權(quán); 狀態(tài): PCB指針;1、可隨機(jī)輸入若干進(jìn)程,并按優(yōu)先權(quán)排序;2、從就緒隊(duì)首選進(jìn)程運(yùn)行:優(yōu)先權(quán)-1/要求運(yùn)行時(shí)間-1 要求運(yùn)行時(shí)間
2、=0時(shí),撤銷該進(jìn)程3、重新排序,進(jìn)行下輪調(diào)度4、最好采用圖形界面;5、可隨時(shí)增加進(jìn)程;6、規(guī)定道數(shù),設(shè)置后備隊(duì)列和掛起狀態(tài)。若內(nèi)存中進(jìn)程少于規(guī)定道數(shù),可自動(dòng)從后備隊(duì)列調(diào)度一作業(yè)進(jìn)入。被掛起進(jìn)程入掛起隊(duì)列,設(shè)置解掛功能用于將指定掛起進(jìn)程解掛入就緒隊(duì)列。7、每次調(diào)度后,顯示各進(jìn)程狀態(tài)。實(shí)驗(yàn)二:內(nèi)存管理一、實(shí)驗(yàn)內(nèi)容 主存儲(chǔ)器空間的分配和回收二、實(shí)驗(yàn)?zāi)康?幫助了解在不同的存儲(chǔ)管理方式下,應(yīng)怎樣實(shí)現(xiàn)主存空間的分配和回收。三、實(shí)驗(yàn)題目 在可變分區(qū)管理方式下,采用最先適應(yīng)算法實(shí)現(xiàn)主存空間的分配和回收。 四、實(shí)驗(yàn)要求1、自行假設(shè)主存空間大小,預(yù)設(shè)操作系統(tǒng)所占大小并構(gòu)造未分分區(qū)表; 表目?jī)?nèi)容:起址、長(zhǎng)度、狀態(tài)(
3、未分/空表目)2、結(jié)合實(shí)驗(yàn)一,PCB增加為: PID,要求運(yùn)行時(shí)間,優(yōu)先權(quán),狀態(tài),所需主存大小,主存起始位置,PCB指針3、采用最先適應(yīng)算法分配主存空間;4、進(jìn)程完成后,回收主存,并與相鄰空閑分區(qū)合并.1、Vo類說(shuō)明(數(shù)據(jù)存儲(chǔ)結(jié)構(gòu))進(jìn)程控制塊PCB的結(jié)構(gòu):Public class PCB /進(jìn)程控制塊PCB,代表一個(gè)進(jìn)程/進(jìn)程名,作為進(jìn)程的標(biāo)識(shí);private String name; /要求運(yùn)行時(shí)間,假設(shè)進(jìn)程運(yùn)行的單位時(shí)間數(shù);private int time; /賦予進(jìn)程的優(yōu)先權(quán),調(diào)度時(shí)總是選取優(yōu)先數(shù)小的進(jìn)程先執(zhí)行;private int priority; /狀態(tài),假設(shè)有“就緒”狀態(tài)(re
4、ady)、“運(yùn)行”狀態(tài)(running)、/“后備”狀態(tài)(waiting)、“掛起”狀態(tài)(handup)private String state; /進(jìn)程存放在table中的位置private int start; /進(jìn)程的大小private int length;/進(jìn)程是否進(jìn)入內(nèi)存, 1為進(jìn)入,0為未進(jìn)入private int isIn;/進(jìn)程在內(nèi)存中的起始位置private int base; /進(jìn)程的大小private int limit; /一些get和set方法以及構(gòu)造器 省略 ;2流程圖3.源程序核心代碼public void display()if(runningList.siz
5、e()>0)jt1.setValueAt(runningList.get(0).getName().trim(),0,0);jt1.setValueAt(runningList.get(0).getIsIn(),0,1);jt1.setValueAt(runningList.get(0).getTime(),0,2);jt1.setValueAt(runningList.get(0).getPriority(),0,3);jt1.setValueAt(runningList.get(0).getStart(),0,4);jt1.setValueAt(runningList.get(0).
6、getLength(),0,5);elsejt1.setValueAt("無(wú)進(jìn)程",0,0);jt1.setValueAt("進(jìn)行",0,1);jt1.setValueAt(null,0,2);jt1.setValueAt(null,0,3);jt1.setValueAt(null,0,4);jt1.setValueAt(null,0,5);/for(int i =0; i < readyList.size(); i+)jt2.setValueAt(readyList.get(i).getName().trim(),i,0);jt2.setValu
7、eAt(readyList.get(i).getIsIn(),i,1);jt2.setValueAt(readyList.get(i).getTime(),i,2);jt2.setValueAt(readyList.get(i).getPriority(),i,3);jt2.setValueAt(readyList.get(i).getStart(),i,4);jt2.setValueAt(readyList.get(i).getLength(),i,5);for(int j = readyList.size(); j < 6; j+)jt2.setValueAt(null,j,0);j
8、t2.setValueAt(null,j,1);jt2.setValueAt(null,j,2);jt2.setValueAt(null,j,3);jt2.setValueAt(null,j,4);jt2.setValueAt(null,j,5);/for(int i =0; i < waitingList.size(); i+)jt3.setValueAt(waitingList.get(i).getName().trim(),i,0);jt3.setValueAt(waitingList.get(i).getIsIn(),i,1);jt3.setValueAt(waitingList
9、.get(i).getTime(),i,2);jt3.setValueAt(waitingList.get(i).getPriority(),i,3);jt3.setValueAt(waitingList.get(i).getStart(),i,4);jt3.setValueAt(waitingList.get(i).getLength(),i,5);for(int j = waitingList.size(); j < 15; j+)jt3.setValueAt(null,j,0);jt3.setValueAt(null,j,1);jt3.setValueAt(null,j,2);jt
10、3.setValueAt(null,j,3);jt3.setValueAt(null,j,4);jt3.setValueAt(null,j,5);/for(int i =0; i < handupList.size(); i+)jt4.setValueAt(handupList.get(i).getName().trim(),i,0);jt4.setValueAt(handupList.get(i).getIsIn(),i,1);jt4.setValueAt(handupList.get(i).getTime(),i,2);jt4.setValueAt(handupList.get(i)
11、.getPriority(),i,3);jt4.setValueAt(handupList.get(i).getStart(),i,4);jt4.setValueAt(handupList.get(i).getLength(),i,5);for(int j = handupList.size(); j < 15; j+)jt4.setValueAt(null,j,0);jt4.setValueAt(null,j,1);jt4.setValueAt(null,j,2);jt4.setValueAt(null,j,3);jt4.setValueAt(null,j,4);jt4.setValu
12、eAt(null,j,5);jl1.setCellRenderer(new MyRenderer();for(int i = 0; i < unAssignList.size(); i+)System.out.print(unAssignList.get(i).getBase()+" ");System.out.println(unAssignList.get(i).getLimit();System.out.println("one");System.out.println();/時(shí)間和優(yōu)先級(jí)減一 public void sub() if(run
13、ningList.size()>0&&runningList.get(0).getIsIn()=1) runningList.get(0).setTime(runningList.get(0).getTime()-1); if(runningList.get(0).getPriority()>=1)runningList.get(0).setPriority(runningList.get(0).getPriority()-1); if(runningList.get(0).getTime()<0) runningList.get(0).setTime(0);
14、 if(runningList.get(0).getTime()=0) putOutMemory(runningList,0); public void sub1() if(runningList.size()>0&&runningList.get(0).getIsIn()=1) runningList.get(0).setTime(runningList.get(0).getTime()-1);if(runningList.get(0).getTime()=0) putOutMemory(runningList,0); if(runningList.get(0).get
15、Priority()<15) if(runningList.get(0).getPriority()>=1)runningList.get(0).setPriority(runningList.get(0).getPriority()-1); / public class MyRunnable implements Runnable public void run() while(true)timeManager();try Thread.sleep(1000); catch(InterruptedException ex) /自動(dòng)調(diào)度/ public class MyRunnab
16、le1 implements Runnable public void run() while(true)PManager(); try Thread.sleep(1000); catch(InterruptedException ex) /得到list中優(yōu)先權(quán)最高的/ public int getFirstW(ArrayList<Data> list) if(list.size()>0) int min = 0; for(int i = 1;i<list.size();i+ ) if(list.get(min).getPriority() > list.get(
17、i).getPriority() min = i; min+; return min; else return 0; / /刪除列表中第幾個(gè)數(shù)據(jù)/ / public void update(ArrayList<Data> list, int num) sList.clear();for(int i = 0; i < list.size(); i+)if(i != num)sList.add(list.get(i);list.clear();for(int i = 0; i < sList.size();i+)list.add(sList.get(i); public v
18、oid update1(ArrayList<Data_Memory> list, int num) sList1.clear();for(int i = 0; i < list.size(); i+)if(i != num)sList1.add(list.get(i);list.clear();for(int i = 0; i < sList1.size();i+)list.add(sList1.get(i); / /放入內(nèi)存/ / public void putInMemory() if(runningList.size()>0) if(runningList.
19、get(0).getIsIn()=0) for(int i = 0; i < unAssignList.size(); i+) if(unAssignList.get(i).getLimit() >= runningList.get(0).getLength() runningList.get(0).setStart(unAssignList.get(i).getBase(); runningList.get(0).setIsIn(1); if(unAssignList.get(i).getLimit() = runningList.get(0).getLength() updat
20、e1(unAssignList,i); else unAssignList.get(i).setBase(unAssignList.get(i).getBase()+runningList.get(0).getLength(); unAssignList.get(i).setLimit(unAssignList.get(i).getLimit()-runningList.get(0).getLength(); break; if(readyList.size()>0) for(int j = 0; j < readyList.size(); j+) if(readyList.get
21、(j).getIsIn()=0) for(int i = 0; i < unAssignList.size(); i+) if(unAssignList.get(i).getLimit() >= readyList.get(j).getLength() readyList.get(j).setStart(unAssignList.get(i).getBase(); readyList.get(j).setIsIn(1); if(unAssignList.get(i).getLimit() = readyList.get(j).getLength() update1(unAssign
22、List,i); else unAssignList.get(i).setBase(unAssignList.get(i).getBase()+readyList.get(j).getLength(); unAssignList.get(i).setLimit(unAssignList.get(i).getLimit()-readyList.get(j).getLength(); break; / /移除內(nèi)存/ / public void putOutMemory(ArrayList<Data> list, int num) list.get(num).setIsIn(0); bo
23、olean flag1 = false; boolean flag2 = false; for(int i = 0; i < unAssignList.size(); i+) if(unAssignList.get(i).getBase() = (list.get(num).getLength()+list.get(num).getStart() unAssignList.get(i).setBase(list.get(num).getStart(); unAssignList.get(i).setLimit(list.get(num).getLength()+unAssignList.
24、get(i).getLimit(); flag1 = true; break; for(int i = 0; i < unAssignList.size(); i+) if(unAssignList.get(i).getBase()+unAssignList.get(i).getLimit() = list.get(num).getStart() if(!flag1) unAssignList.get(i).setLimit(list.get(num).getLength()+unAssignList.get(i).getLimit(); flag2 = true; break; els
25、e unAssignList.get(i).setLimit(unAssignList.get(i).getLimit()+unAssignList.get(i+1).getLimit(); update1(unAssignList,i+1); if(flag1 | flag2) else int i = 0; while(unAssignList.get(i).getBase()<list.get(num).getStart() i+; Data_Memory data = new Data_Memory(); data.setBase(list.get(num).getStart()
26、; data.setLimit(list.get(num).getLength(); sList1.clear(); for(int j = 0; j < i; j+) sList1.add(unAssignList.get(j); sList1.add(data); for(int j = i; j < unAssignList.size(); j+) sList1.add(unAssignList.get(j); unAssignList.clear(); for(int j = 0; j < sList1.size(); j+) unAssignList.add(sLi
27、st1.get(j); / / /JLIST private class MyRenderer extends DefaultListCellRenderer public Component getListCellRendererComponent(JList list, Object value,int index, boolean isSelected, boolean cellHasFocus) super.getListCellRendererComponent(list, value, index, isSelected,cellHasFocus); setBackground(C
28、olor.gray); for(int i = 0; i < unAssignList.size(); i+) for(int j = unAssignList.get(i).getBase() ; j < unAssignList.get(i).getLimit()+unAssignList.get(i).getBase(); j+) if(index = j) setBackground(Color.white);/當(dāng)沒(méi)有內(nèi)容變?yōu)榘咨?return this; / / public void timeManager() /去掉time=0的,從waiting隊(duì)列加入新的進(jìn)程,排
29、序,調(diào)整waitingList加入runningLIst/去掉time=0的if(runningList.size()>0)if(runningList.get(0).getTime()=0)runningList.clear();sList.clear();for(int i = 0; i < readyList.size(); i+)if(readyList.get(i).getTime()>0)sList.add(readyList.get(i);readyList.clear();for(int i =0; i < sList.size();i+)readyLi
30、st.add(sList.get(i);readyList.get(i).setState("ready");/從waiting隊(duì)列加入新的進(jìn)程int j = 0;int m = readyList.size();for(; m < 6 && j < waitingList.size(); m+,j+)readyList.add(waitingList.get(j);readyList.get(m).setState("ready");/sort(readyList);/調(diào)整waitingListsList.clear();f
31、or(int i = j; i < waitingList.size(); i+)sList.add(waitingList.get(i);waitingList.clear();for(int i =0; i < sList.size();i+)waitingList.add(sList.get(i);/加入runningLIstif(runningList.size()=0)if(readyList.size()>0)runningList.add(readyList.get(0);runningList.get(0).setState("running&quo
32、t;);update(readyList,0);if(waitingList.size()>0)readyList.add(waitingList.get(0);readyList.get(5).setState("ready");update(waitingList,0);else /if(runningList.size()>0)if(readyList.size()>0)readyList.add(runningList.get(0);runningList.clear();readyList.get(0).setState("runnin
33、g");readyList.get(readyList.size()-1).setState("ready");runningList.add(readyList.get(0);update(readyList,0);putInMemory();sub();display();jtf1.grabFocus(); public void PManager() if(runningList.size()>0) if(runningList.get(0).getTime()=0) runningList.clear(); sList.clear(); for(in
34、t i = 0; i < readyList.size(); i+) if(readyList.get(i).getTime()>0) sList.add(readyList.get(i); readyList.clear(); for(int i =0; i < sList.size();i+) readyList.add(sList.get(i); readyList.get(i).setState("ready"); /從waiting隊(duì)列加入新的進(jìn)程 int j = 0; int m = readyList.size(); for(; m < 6 && j < wai
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 第15課《我們不亂扔》教學(xué)設(shè)計(jì)-2024-2025學(xué)年一年級(jí)道德與法治上冊(cè)統(tǒng)編版
- 展覽館裝修合同
- 2025年度建筑企業(yè)農(nóng)民工勞動(dòng)合同創(chuàng)新模式試點(diǎn)方案
- 2025年度五星級(jí)酒店與VIP客人個(gè)性化服務(wù)協(xié)議
- 2025年度房產(chǎn)贈(zèng)與與可持續(xù)發(fā)展合同
- 2025年度冷鏈物流貨運(yùn)損壞賠償協(xié)議書
- 二零二五年度人工智能教育平臺(tái)合作協(xié)議中的支付及費(fèi)用分?jǐn)偧?xì)則
- 2025年度帶寵物友好房屋出租協(xié)議電子版
- 2025年度廣告代理合同解除通知期限與費(fèi)用結(jié)算規(guī)范
- 2025年度報(bào)廢車買賣及報(bào)廢車輛拆解與環(huán)保設(shè)施投資合同
- 2022-2023年質(zhì)量員之市政質(zhì)量專業(yè)管理實(shí)務(wù)通關(guān)提分題庫(kù)及完整答案
- 四年級(jí)語(yǔ)文下冊(cè)第六單元【集體備課】(教材解讀+教學(xué)設(shè)計(jì))
- 云南礦產(chǎn)資源分布
- 2015-2022年青島酒店管理職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文/數(shù)學(xué)/英語(yǔ)筆試參考題庫(kù)含答案解析
- 保險(xiǎn)第三方理賠調(diào)查服務(wù)方案
- 我愛(ài)運(yùn)動(dòng)手抄報(bào)電子小報(bào)模板(附A4線稿)可打印涂色
- GB/T 9113-2010整體鋼制管法蘭
- GB/T 32722-2016土壤質(zhì)量土壤樣品長(zhǎng)期和短期保存指南
- GB/T 2951.12-2008電纜和光纜絕緣和護(hù)套材料通用試驗(yàn)方法第12部分:通用試驗(yàn)方法-熱老化試驗(yàn)方法
- 2009數(shù)據(jù)結(jié)構(gòu)英文試卷A及答案
- FZ/T 51010-2014纖維級(jí)聚對(duì)苯二甲酸1,3-丙二醇酯切片(PTT)
評(píng)論
0/150
提交評(píng)論