操作系統(tǒng)實(shí)驗(yàn)1:處理機(jī)調(diào)度_第1頁(yè)
操作系統(tǒng)實(shí)驗(yàn)1:處理機(jī)調(diào)度_第2頁(yè)
操作系統(tǒng)實(shí)驗(yàn)1:處理機(jī)調(diào)度_第3頁(yè)
操作系統(tǒng)實(shí)驗(yàn)1:處理機(jī)調(diào)度_第4頁(yè)
操作系統(tǒng)實(shí)驗(yàn)1:處理機(jī)調(diào)度_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

實(shí)驗(yàn)報(bào)告學(xué)院〔系〕名稱:計(jì)算機(jī)與通信工程學(xué)院姓名********學(xué)號(hào)*********專業(yè)信息與計(jì)算科學(xué)班級(jí)2012級(jí)1班實(shí)驗(yàn)工程實(shí)驗(yàn)一:處理機(jī)調(diào)度算法的實(shí)現(xiàn)課程名稱操作系統(tǒng)課程代碼0668036實(shí)驗(yàn)時(shí)間2014-11-285-6節(jié)2014-12-31-2節(jié)2014-12-55-6節(jié)實(shí)驗(yàn)地點(diǎn)主校區(qū)7-219批改意見成績(jī)教師簽字:實(shí)驗(yàn)內(nèi)容:設(shè)定系統(tǒng)中有五個(gè)進(jìn)程,每一個(gè)進(jìn)程用一個(gè)進(jìn)程控制塊表示。輸入每個(gè)進(jìn)程的“優(yōu)先數(shù)”和“要求運(yùn)行時(shí)間”。為了調(diào)度方便,將五個(gè)進(jìn)程按給定的優(yōu)先數(shù)從大到小連成就緒隊(duì)列。用一單元指出隊(duì)列首進(jìn)程,用指針指出隊(duì)列的連接情況。處理機(jī)調(diào)度總是選隊(duì)首進(jìn)程運(yùn)行。采用動(dòng)態(tài)優(yōu)先數(shù)算法,進(jìn)程每運(yùn)行一次優(yōu)先數(shù)就減“1”,同時(shí)將運(yùn)行時(shí)間減“1”。假設(shè)某進(jìn)程運(yùn)行時(shí)間為零,那么將其狀態(tài)置為“結(jié)束”,且退出隊(duì)列。運(yùn)行所設(shè)計(jì)程序,顯示或打印逐次被選中進(jìn)程的進(jìn)程名,以及進(jìn)程控制塊的動(dòng)態(tài)變化過程。實(shí)驗(yàn)要求:詳細(xì)描述實(shí)驗(yàn)設(shè)計(jì)思想、程序結(jié)構(gòu)及各模塊設(shè)計(jì)思路;詳細(xì)描述程序所用數(shù)據(jù)結(jié)構(gòu)及算法;明確給出測(cè)試用例和實(shí)驗(yàn)結(jié)果;為增加程序可讀性,在程序中進(jìn)行適當(dāng)注釋說(shuō)明;認(rèn)真進(jìn)行實(shí)驗(yàn)總結(jié),包括:設(shè)計(jì)中遇到的問題、解決方法與收獲等;實(shí)驗(yàn)報(bào)告撰寫要求結(jié)構(gòu)清晰、描述準(zhǔn)確邏輯性強(qiáng);實(shí)驗(yàn)過程中,同學(xué)之間可以進(jìn)行討論互相提高,但絕對(duì)禁止抄襲?!緦?shí)驗(yàn)過程記錄〔源程序、測(cè)試用例、測(cè)試結(jié)果及心得體會(huì)等〕】源程序:類一:package實(shí)驗(yàn)一;publicclassPCB{ Stringname; intpriority; inttime; Stringstate="就緒"; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicintgetPriority(){ returnpriority; } publicvoidsetPriority(intpriority){ this.priority=priority; } publicintgetTime(){ returntime; } publicvoidsetTime(inttime){ this.time=time; }}類二:package實(shí)驗(yàn)一;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.util.Vector;classAdmin{ //輸出 publicvoidprint(Vector<PCB>pcbs){ for(inti=0;i<pcbs.size();i++){ System.out.println(pcbs.get(i).name+"\t"+pcbs.get(i).priority+ "\t"+pcbs.get(i).time+"\t"+pcbs.get(i).state); } } //按進(jìn)程的優(yōu)先級(jí)排序 publicvoidsort(Vector<PCB>pcbs){ for(inti=0;i<pcbs.size();i++){ for(intj=0;j<pcbs.size();j++){ if(pcbs.get(i).priority>pcbs.get(j).priority){ inttmp=pcbs.get(i).priority; pcbs.get(i).priority=pcbs.get(j).priority; pcbs.get(j).priority=tmp; Stringname=pcbs.get(i).name; pcbs.get(i).name=pcbs.get(j).name; pcbs.get(j).name=name; intt=pcbs.get(i).time; pcbs.get(i).time=pcbs.get(j).time; pcbs.get(j).time=t; } } } } //運(yùn)行 publicvoidrun(Vector<PCB>pcbs){ inti=1; while(true){ System.out.println("第"+i+"次運(yùn)行情況:"); pcbs.get(0).state="正在運(yùn)行"; print(pcbs); pcbs.get(0).priority--; pcbs.get(0).time--; if(pcbs.get(0).time==0){ System.out.println("============================"); pcbs.get(0).state="已被移出"; System.out.println(pcbs.get(0).name+"\t"+pcbs.get(0).priority+"\t"+ pcbs.get(0).time+"\t"+pcbs.get(0).state); pcbs.remove(0); } sort(pcbs); if(pcbs.size()==0){ System.out.println("程序已結(jié)束運(yùn)行"); break; } i++; } } }類三:package實(shí)驗(yàn)一;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.util.Scanner;importjava.util.Vector;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassExperiment{ publicstaticvoidmain(String[]args){ Experimentex=newExperiment(); Vector<PCB>pcbs=newVector<PCB>(); System.out.println("請(qǐng)輸入進(jìn)程數(shù):"); Scannerinput=newScanner(System.in); intn=input.nextInt(); Adminadmin=newAdmin(); //添加進(jìn)程 for(inti=0;i<n;i++){ PCBpcb=newPCB(); System.out.println("請(qǐng)輸入第"+(i+1)+"個(gè)進(jìn)程的名字/優(yōu)先級(jí)/運(yùn)行時(shí)間用空格隔開:"); =input.next(); pcb.priority=input.nextInt(); pcb.time=input.nextInt(); pcbs.add(pcb); } System.out.println("進(jìn)程名\t優(yōu)先級(jí)\t運(yùn)行時(shí)間\t狀態(tài)"); admin.print(pcbs); //按優(yōu)先級(jí)排序 System.out.println(); System.out.println("按優(yōu)先級(jí)排序后的結(jié)果為:"); admin.sort(pcbs); System.out.println("進(jìn)程名\t優(yōu)先級(jí)\t運(yùn)行時(shí)間\t狀態(tài)"); admin.print(pcbs); //運(yùn)行 System.out.println(); System.out.println("進(jìn)程運(yùn)行狀態(tài):"); System.out.println("進(jìn)程名\t優(yōu)先級(jí)\t運(yùn)行時(shí)間\t狀態(tài)"); admin.run(pcbs); }}運(yùn)行結(jié)果:請(qǐng)輸入進(jìn)程數(shù):5請(qǐng)輸入第1個(gè)進(jìn)程的名字/優(yōu)先級(jí)/運(yùn)行時(shí)間用空格隔開:進(jìn)程186請(qǐng)輸入第2個(gè)進(jìn)程的名字/優(yōu)先級(jí)/運(yùn)行時(shí)間用空格隔開:進(jìn)程263請(qǐng)輸入第3個(gè)進(jìn)程的名字/優(yōu)先級(jí)/運(yùn)行時(shí)間用空格隔開:進(jìn)程329請(qǐng)輸入第4個(gè)進(jìn)程的名字/優(yōu)先級(jí)/運(yùn)行時(shí)間用空格隔開:進(jìn)程454請(qǐng)輸入第5個(gè)進(jìn)程的名字/優(yōu)先級(jí)/運(yùn)行時(shí)間用空格隔開:進(jìn)程572進(jìn)程名 優(yōu)先級(jí) 運(yùn)行時(shí)間 狀態(tài)進(jìn)程1 8 6 就緒進(jìn)程2 6 3 就緒進(jìn)程3 2 9 就緒進(jìn)程4 5 4 就緒進(jìn)程5 7 2 就緒按優(yōu)先級(jí)排序后的結(jié)果為:進(jìn)程名 優(yōu)先級(jí) 運(yùn)行時(shí)間 狀態(tài)進(jìn)程1 8 6 就緒進(jìn)程5 7 2 就緒進(jìn)程2 6 3 就緒進(jìn)程4 5 4 就緒進(jìn)程3 2 9 就緒進(jìn)程運(yùn)行狀態(tài):進(jìn)程名 優(yōu)先級(jí) 運(yùn)行時(shí)間 狀態(tài)第1次運(yùn)行情況:進(jìn)程1 8 6 正在運(yùn)行進(jìn)程5 7 2 就緒進(jìn)程2 6 3 就緒進(jìn)程4 5 4 就緒進(jìn)程3 2 9 就緒第2次運(yùn)行情況:進(jìn)程5 7 2 正在運(yùn)行進(jìn)程1 7 5 就緒進(jìn)程2 6 3 就緒進(jìn)程4 5 4 就緒進(jìn)程3 2 9 就緒第3次運(yùn)行情況:進(jìn)程1 7 5 正在運(yùn)行進(jìn)程2 6 3 就緒進(jìn)程5 6 1 就緒進(jìn)程4 5 4 就緒進(jìn)程3 2 9 就緒第4次運(yùn)行情況:進(jìn)程2 6 3 正在運(yùn)行進(jìn)程5 6 1 就緒進(jìn)程1 6 4 就緒進(jìn)程4 5 4 就緒進(jìn)程3 2 9 就緒第5次運(yùn)行情況:進(jìn)程5 6 1 正在運(yùn)行進(jìn)程1 6 4 就緒進(jìn)程4 5 4 就緒進(jìn)程2 5 2 就緒進(jìn)程3 2 9 就緒============================進(jìn)程5 5 0 已被移出第6次運(yùn)行情況:進(jìn)程1 6 4 正在運(yùn)行進(jìn)程2 5 2 就緒進(jìn)程4 5 4 就緒進(jìn)程3 2 9 就緒第7次運(yùn)行情況:進(jìn)程2 5 2 正在運(yùn)行進(jìn)程4 5 4 就緒進(jìn)程1 5 3 就緒進(jìn)程3 2 9 就緒第8次運(yùn)行情況:進(jìn)程4 5 4 正在運(yùn)行進(jìn)程1 5 3 就緒進(jìn)程2 4 1 就緒進(jìn)程3 2 9 就緒第9次運(yùn)行情況:進(jìn)程1 5 3 正在運(yùn)行進(jìn)程2 4 1 就緒進(jìn)程4 4 3 就緒進(jìn)程3 2 9 就緒第10次運(yùn)行情況:進(jìn)程2 4 1 正在運(yùn)行進(jìn)程4 4 3 就緒進(jìn)程1 4 2 就緒進(jìn)程3 2 9 就緒============================進(jìn)程2 3 0 已被移出第11次運(yùn)行情況:進(jìn)程1 4 2 正在運(yùn)行進(jìn)程4 4 3 就緒進(jìn)程3 2 9 就緒第12次運(yùn)行情況:進(jìn)程4 4 3 正在運(yùn)行進(jìn)程1 3 1 就緒進(jìn)程3 2 9 就緒第13次運(yùn)行情況:進(jìn)程1 3 1 正在運(yùn)行進(jìn)程4 3 2 就緒進(jìn)程3 2 9 就緒============================進(jìn)程1 2 0 已被移出第14次運(yùn)行情況:進(jìn)程4 3 2 正在運(yùn)行進(jìn)程3 2 9 就緒第15次運(yùn)行情況:進(jìn)程4 2 1 正在運(yùn)行進(jìn)程3 2 9 就緒============================進(jìn)程4 1 0 已被移出

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論