版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選文檔操作系統(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)康亩嗟老到y(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í)間 =0
2、 時(shí),撤銷(xiāo)該進(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 類(lèi)說(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è)
4、有“就緒”狀態(tài)( ready ) 、 “運(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 流程圖就締隊(duì)列首過(guò)程開(kāi)帕運(yùn)打時(shí)間片翱.玷
5、打SE程己占相.LH;時(shí)間加I運(yùn)行進(jìn)用的情郛戴畿一,斯需 舉行時(shí)可被,出道打進(jìn)和哺 入到就第劭列Jfi程充撤精當(dāng)明3.源程序核心代碼public void display()if(runningList.size()>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
6、).getPriority(),0,3);jt1.setValueAt(runningList.get(0).getStart(),0,4);jt1.setValueAt(runningList.get(0).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)
7、;/for(int i =0; i < readyList.size(); i+)jt2.setValueAt(readyList.get(i).getName().trim(),i,0);jt2.setValueAt(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.setVa
8、lueAt(readyList.get(i).getLength(),i,5);for(int j = readyList.size(); j < 6; j+)jt2.setValueAt(null,j,0);jt2.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(waiting
9、List.get(i).getName().trim(),i,0);jt3.setValueAt(waitingList.get(i).getIsIn(),i,1);jt3.setValueAt(waitingList.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 = wa
10、itingList.size(); j < 15; j+)jt3.setValueAt(null,j,0);jt3.setValueAt(null,j,1);jt3.setValueAt(null,j,2);jt3.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(hand
11、upList.get(i).getIsIn(),i,1);jt4.setValueAt(handupList.get(i).getTime(),i,2);jt4.setValueAt(handupList.get(i).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);jt
12、4.setValueAt(null,j,1);jt4.setValueAt(null,j,2);jt4.setValueAt(null,j,3);jt4.setValueAt(null,j,4);jt4.setValueAt(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.g
13、et(i).getLimit();System.out.println("one");System.out.println();/ 時(shí)間和優(yōu)先級(jí)減一public void sub()if(runningList.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(
14、runningList.get(0).getPriority()-1);if(runningList.get(0).getTime()<0)runningList.get(0).setTime(0);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).getT
15、ime()-1);if(runningList.get(0).getTime()=0)putOutMemory(runningList,0);if(runningList.get(0).getPriority()<15)if(runningList.get(0).getPriority()>=1)runningList.get(0).setPriority(runningList.get(0).getPriority()-1);/public class MyRunnable implements Runnablepublic void run()while(true)timeMa
16、nager();tryThread.sleep(1000);ex)catch(InterruptedException精選文檔/public class MyRunnable1 implements Runnablepublic void run() while(true)PManager();tryThread.sleep(1000);catch(InterruptedExceptionex)/得 到 list 中 優(yōu) 先 權(quán) 最 高 的/public int getFirstW(ArrayList<Data> list)if(list.size()>0)int min =
17、 0;for(int i = 1;i<list.size();i+ )if(list.get(min).getPriority() > list.get(i).getPriority()min = i;可編輯精選文檔min+;return min;elsereturn 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.ge
18、t(i);list.clear();for(int i = 0; i < sList.size();i+)list.add(sList.get(i);public void 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
19、(i);/public void putInMemory()if(runningList.size()>0)if(runningList.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(unAs
20、signList.get(i).getLimit()runningList.get(0).getLength()update1(unAssignList,i);elseunAssignList.get(i).setBase(unAssignList.get(i).getBase()+runningList.get(0).get Length();unAssignList.get(i).setLimit(unAssignList.get(i).getLimit()-runningList.get(0).get Length();break;if(readyList.size()>0)for
21、(int j = 0; j < readyList.size(); j+)if(readyList.get(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()read
22、yList.get(j).getLength()update1(unAssignList,i);elseunAssignList.get(i).setBase(unAssignList.get(i).getBase()+readyList.get(ngth();>=j).getLeunAssignList.get(i).setLimit(unAssignList.get(i).getLimit()-readyList.get(j).getLength();break;/public void putOutMemory(ArrayList<Data> list, int num
23、)list.get(num).setIsIn(0);boolean 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).getLe
24、ngth()+unAssignList.get(i).getLi mit();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).getLi mit();flag2 = true
25、;break;elseunAssignList.get(i).setLimit(unAssignList.get(i).getLimit()+unAssignList.get(i+1) .getLimit();update1(unAssignList,i+1);if(flag1 | flag2)elseint 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(sList1.ge
27、t(j);/JLISTprivate class MyRenderer extends DefaultListCellRendererObjectindex,public Component getListCellRendererComponent(JListlist,value,int index, boolean isSelected, boolean cellHasFocus)super.getListCellRendererComponent(list,value,isSelected,cellHasFocus);setBackground(Color.gray);for(int i
28、= 0; i < unAssignList.size(); i+)for(int j = unAssignList.get(i).getBase();unAssignList.get(i).getLimit()+unAssignList.get(i).getBase(); j+)if(index = j)setBackground(Color.white);/ 當(dāng)沒(méi)有內(nèi)容變?yōu)榘咨玶eturn this;/public void timeManager(), 調(diào)整/ 去掉 time=0 的,從 waiting 隊(duì)列加入新的進(jìn)程,排序waitingList 加入 runningLIst/ 去
29、掉 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+)readyList.add(sList.get(i);r
30、eadyList.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();for(int i = j; i
31、< 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");update(read
32、yList,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("running");readyL
33、ist.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(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+)readyList.add(sList.get(i);readyList.get(i).setState("ready");/ 從 waiting 隊(duì)列加入新的進(jìn)程int j = 0;int m = readyList.size();for(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海股權(quán)轉(zhuǎn)讓合同模板
- 450億廣告投放框架合同正式簽署
- 人力資源和社會(huì)保障局與勞動(dòng)合同法改革探討
- 個(gè)體戶(hù)全職員工標(biāo)準(zhǔn)勞動(dòng)合同合同范本
- 個(gè)人小型店面租賃合同樣本
- 個(gè)體藥店并購(gòu)轉(zhuǎn)讓合同及附件
- 產(chǎn)業(yè)合作投資合同
- 交通事故賠償合同范本大全
- 個(gè)人家政服務(wù)勞務(wù)合同
- 喪葬禮儀服務(wù)合同模板
- 高校鑄牢中華民族共同體意識(shí)教育的路徑研究
- 《個(gè)人所得稅征管問(wèn)題及對(duì)策研究》
- 2022年云南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 大學(xué)輔導(dǎo)員崗位考核參考指標(biāo)
- 隱名股東協(xié)議股權(quán)代持的協(xié)議書(shū)(范本)
- 初級(jí)中學(xué)語(yǔ)文教師資格考試學(xué)科知識(shí)與教學(xué)能力試題及解答參考(2024年)
- 2024年高端裝備制造行業(yè)現(xiàn)狀分析:國(guó)家政策確保高端裝備制造行業(yè)有序發(fā)展
- 《帶一本書(shū)去讀研:研究生關(guān)鍵學(xué)術(shù)技能快速入門(mén)》筆記
- 知識(shí)圖譜智慧樹(shù)知到答案2024年浙江大學(xué)
- 2024年吉林省吉林市中考一模物理試題(解析版)
- Unit 2 Last weekend C Story time (教學(xué)設(shè)計(jì))人教PEP版英語(yǔ)六年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論