




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)報(bào)告學(xué)院〔系〕名稱:計(jì)算機(jī)與通信工程學(xué)院姓名********學(xué)號*********專業(yè)信息與計(jì)算科學(xué)班級2012級1班實(shí)驗(yàn)工程實(shí)驗(yàn)一:處理機(jī)調(diào)度算法的實(shí)現(xiàn)課程名稱操作系統(tǒng)課程代碼0668036實(shí)驗(yàn)時間2014-11-285-6節(jié)2014-12-31-2節(jié)2014-12-55-6節(jié)實(shí)驗(yàn)地點(diǎn)主校區(qū)7-219批改意見成績教師簽字:實(shí)驗(yàn)內(nèi)容:設(shè)定系統(tǒng)中有五個進(jìn)程,每一個進(jìn)程用一個進(jìn)程控制塊表示。輸入每個進(jìn)程的“優(yōu)先數(shù)”和“要求運(yùn)行時間”。為了調(diào)度方便,將五個進(jìn)程按給定的優(yōu)先數(shù)從大到小連成就緒隊(duì)列。用一單元指出隊(duì)列首進(jìn)程,用指針指出隊(duì)列的連接情況。處理機(jī)調(diào)度總是選隊(duì)首進(jìn)程運(yùn)行。采用動態(tài)優(yōu)先數(shù)算法,進(jìn)程每運(yùn)行一次優(yōu)先數(shù)就減“1”,同時將運(yùn)行時間減“1”。假設(shè)某進(jìn)程運(yùn)行時間為零,那么將其狀態(tài)置為“結(jié)束”,且退出隊(duì)列。運(yùn)行所設(shè)計(jì)程序,顯示或打印逐次被選中進(jìn)程的進(jìn)程名,以及進(jìn)程控制塊的動態(tài)變化過程。實(shí)驗(yàn)要求:詳細(xì)描述實(shí)驗(yàn)設(shè)計(jì)思想、程序結(jié)構(gòu)及各模塊設(shè)計(jì)思路;詳細(xì)描述程序所用數(shù)據(jù)結(jié)構(gòu)及算法;明確給出測試用例和實(shí)驗(yàn)結(jié)果;為增加程序可讀性,在程序中進(jìn)行適當(dāng)注釋說明;認(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)行討論互相提高,但絕對禁止抄襲。【實(shí)驗(yàn)過程記錄〔源程序、測試用例、測試結(jié)果及心得體會等〕】源程序:類一: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)先級排序 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("請輸入進(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("請輸入第"+(i+1)+"個進(jìn)程的名字/優(yōu)先級/運(yùn)行時間用空格隔開:"); =input.next(); pcb.priority=input.nextInt(); pcb.time=input.nextInt(); pcbs.add(pcb); } System.out.println("進(jìn)程名\t優(yōu)先級\t運(yùn)行時間\t狀態(tài)"); admin.print(pcbs); //按優(yōu)先級排序 System.out.println(); System.out.println("按優(yōu)先級排序后的結(jié)果為:"); admin.sort(pcbs); System.out.println("進(jìn)程名\t優(yōu)先級\t運(yùn)行時間\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)先級\t運(yùn)行時間\t狀態(tài)"); admin.run(pcbs); }}運(yùn)行結(jié)果:請輸入進(jìn)程數(shù):5請輸入第1個進(jìn)程的名字/優(yōu)先級/運(yùn)行時間用空格隔開:進(jìn)程186請輸入第2個進(jìn)程的名字/優(yōu)先級/運(yùn)行時間用空格隔開:進(jìn)程263請輸入第3個進(jìn)程的名字/優(yōu)先級/運(yùn)行時間用空格隔開:進(jìn)程329請輸入第4個進(jìn)程的名字/優(yōu)先級/運(yùn)行時間用空格隔開:進(jìn)程454請輸入第5個進(jìn)程的名字/優(yōu)先級/運(yùn)行時間用空格隔開:進(jìn)程572進(jìn)程名 優(yōu)先級 運(yùn)行時間 狀態(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)先級排序后的結(jié)果為:進(jìn)程名 優(yōu)先級 運(yùn)行時間 狀態(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)先級 運(yùn)行時間 狀態(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度企業(yè)研發(fā)成果知識產(chǎn)權(quán)轉(zhuǎn)讓合同范本
- 2025年度醫(yī)療設(shè)備改造與售后服務(wù)協(xié)議
- 2025年度出租車公司車輛租賃合同修訂版
- 2025抖音主播品牌代言合作框架協(xié)議書
- 2025年C301-I型低壓甲醇合成催化劑合作協(xié)議書
- 2025年度咖啡廳店鋪轉(zhuǎn)讓合同范本
- 2025年創(chuàng)客中心項(xiàng)目發(fā)展計(jì)劃
- 科研部研究項(xiàng)目進(jìn)展與未來規(guī)劃計(jì)劃
- 教學(xué)資源的有效整合與利用計(jì)劃
- 度假村行業(yè)保安工作總結(jié)計(jì)劃
- 99S203 消防水泵接合器安裝圖集
- 寶石學(xué)基礎(chǔ)全套課件
- 市級臨床重點(diǎn)??粕陥?bào)書
- 手術(shù)風(fēng)險(xiǎn)及醫(yī)療意外險(xiǎn)告知流程
- 綜合實(shí)踐活動六年級下冊 飲料與健康課件 (共16張PPT)
- 數(shù)量金融的概況和歷史課件
- 《醫(yī)院重點(diǎn)??平ㄔO(shè)專項(xiàng)資金管理辦法》
- 最新短視頻運(yùn)營績效考核表KPI(優(yōu)選.)
- 設(shè)備基礎(chǔ)隔振設(shè)計(jì)探討
- 千字文全文帶拼音——完美打印版
- 蘭州大學(xué)接受進(jìn)修人員申請表
評論
0/150
提交評論