版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
南通大學(xué)信息科學(xué)技術(shù)學(xué)院操作系統(tǒng)實(shí)驗(yàn)報(bào)告書實(shí)驗(yàn)名稱低級(jí)進(jìn)程調(diào)度算法班級(jí)學(xué)號(hào)姓名指導(dǎo)教師日期2019.06.03成績實(shí)驗(yàn)2低級(jí)進(jìn)程調(diào)度算法一、實(shí)驗(yàn)?zāi)康哪M實(shí)現(xiàn)作業(yè)調(diào)度算法(包括先來先服務(wù)調(diào)度算法和短作業(yè)優(yōu)先調(diào)度算法)掌握在編譯環(huán)境(VisualStudio或DEVC++或Eclipse)中調(diào)試程序。二、實(shí)驗(yàn)任務(wù)本實(shí)驗(yàn)要求用C/C++/Java語言編寫一個(gè)進(jìn)程調(diào)度模擬程序,使用不同算法實(shí)現(xiàn)進(jìn)程調(diào)度。具體要求如下:編寫一個(gè)進(jìn)程調(diào)度程序,允許多個(gè)進(jìn)程并發(fā)執(zhí)行。采取多種進(jìn)程調(diào)度算法(先來先服務(wù)(FCFS)調(diào)度算法,短作業(yè)優(yōu)先(SJF)調(diào)度算法,分析比較各個(gè)算法的優(yōu)缺點(diǎn)。三、實(shí)驗(yàn)要求復(fù)習(xí)低級(jí)進(jìn)程調(diào)度算法的原理,做好實(shí)驗(yàn)預(yù)習(xí),完成算法分析和流程圖繪制。使用不同算法實(shí)現(xiàn)進(jìn)程調(diào)度(包括先來先服務(wù)調(diào)度算法和短作業(yè)優(yōu)先調(diào)度算法),利用編程軟件編譯調(diào)試程序并測試其正確性,最后給出測試結(jié)論。實(shí)驗(yàn)完畢,寫出實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)報(bào)告必須包含的內(nèi)容如下(可以根據(jù)實(shí)驗(yàn)任務(wù)增加其他內(nèi)容):(1)實(shí)驗(yàn)?zāi)康?。?)實(shí)驗(yàn)預(yù)習(xí)內(nèi)容:算法文字描述、流程圖、實(shí)驗(yàn)方法與實(shí)驗(yàn)步驟等。(3)在編譯環(huán)境中調(diào)試程序。(4)運(yùn)行結(jié)果的分析。(5)實(shí)驗(yàn)體會(huì)與小結(jié)。四、實(shí)驗(yàn)預(yù)習(xí)內(nèi)容1.算法分析(1)先來先服務(wù)算法(FCFS)FCFS是最簡單的調(diào)度算法,既可以用作作業(yè)調(diào)度,也可以用作進(jìn)程調(diào)度。這種算法優(yōu)先考慮系統(tǒng)中等待時(shí)間最長的作業(yè)(進(jìn)程),而不管作業(yè)所需執(zhí)行時(shí)間長短。做法是從后備隊(duì)列中選擇幾個(gè)最先進(jìn)入該隊(duì)列的作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源和創(chuàng)建進(jìn)程,然后放入就緒隊(duì)列。進(jìn)程調(diào)度中使用此算法時(shí),每次都從就緒的進(jìn)程隊(duì)列中選擇一個(gè)最先進(jìn)入該隊(duì)列的進(jìn)程,為之分配處理機(jī),使之投入運(yùn)行,該進(jìn)程會(huì)一直運(yùn)行到完成或者因發(fā)生某事件而阻塞后,進(jìn)程調(diào)度程序才會(huì)把處理機(jī)分配給其他進(jìn)程。(2)短作業(yè)優(yōu)先算法(SJF)由于在實(shí)際情況中短作業(yè)(進(jìn)程)所占比例很大,為了讓它們比長作業(yè)優(yōu)先執(zhí)行,就有了此算法。SJF顧名思義以作業(yè)長短來確定優(yōu)先級(jí),作業(yè)越短優(yōu)先級(jí)越高,作業(yè)的長短用作業(yè)所需的運(yùn)行時(shí)間來衡量,此算法一樣也可以用做進(jìn)程調(diào)度,它將從外存的作業(yè)后備隊(duì)列中選擇若十個(gè)估計(jì)運(yùn)行時(shí)間最短的作業(yè),優(yōu)先將它們調(diào)入內(nèi)存運(yùn)行。2.算法流程圖(1)先來先服務(wù)算法(FCFS)(2)短作業(yè)優(yōu)先算法(SJF)輸出進(jìn)程各參
數(shù)并計(jì)算平均
I周籬M間I實(shí)驗(yàn)核心代碼#include<iostream>usingnamespacestd;intArrivalTime[20];doubleServiceTime[20],FinishTime[20],WholeTime[20],AveWholeTime[20],AveWeightWholeTime[20],WeightWholeTime[20],FCFS_AverageT,SJF_AverageT,FCFS_AverageWT,SJF_AverageWT,AllTime,WeightAllTime;doublea[20];intb[20],c[20],d[20];voidFCFS()(intProcessNum;cout<<"先來先服務(wù)算法"<<endl;cout<<"請(qǐng)輸入進(jìn)程個(gè)數(shù):";cin>>ProcessNum;cout<<"輸入進(jìn)程到達(dá)時(shí)間:"<<endl;for(inti=0;i<ProcessNum;i++){cin>>ArrivalTime[i];}cout<<"請(qǐng)輸入進(jìn)程服務(wù)時(shí)間:"<<endl;for(inti=0;i<ProcessNum;i++){cin>>ServiceTime[i];}cout<<endl;for(inti=0;i<ProcessNum;i++){FinishTime[i]=ServiceTime[i];}for(inti=0;i<ProcessNum;i++){FinishTime[i+1]=FinishTime[i]+FinishTime[i+1];}for(inti=0;i<ProcessNum-1;i++){cout<<"時(shí)刻"<<FinishTime[i]<<":第”<<i+2<<”個(gè)進(jìn)程開始運(yùn)行。"<<endl;}cout<<endl;cout<<"FCFS完成時(shí)間:”;for(inti=0;i<ProcessNum;i++){cout<<FinishTime[i]<<"";}cout<<endl;cout<<"FCFS周轉(zhuǎn)時(shí)間:”;for(inti=0;i<ProcessNum;i++){WholeTime[i]=FinishTime[i]-ArrivalTime[i];}for(inti=0;i<ProcessNum;i++){cout<<WholeTime[i]<<"";}cout<<endl;for(inti=0;i<ProcessNum;i++){AveWholeTime[i]=WholeTime[i];}for(inti=0;i<ProcessNum;i++){AveWholeTime[i+1]=AveWholeTime[i]+AveWholeTime[i+1];AllTime=AveWholeTime[i+1];}FCFS_AverageT=AllTime/ProcessNum;cout<<"FCFS平均周轉(zhuǎn)時(shí)間:"<<FCFS_AverageT<<endl;for(inti=0;i<ProcessNum;i++){WeightWholeTime[i]=WholeTime[i]/ServiceTime[i];}for(inti=0;i<ProcessNum;i++){AveWeightWholeTime[i]=WeightWholeTime[i];}for(inti=0;i<ProcessNum;i++){AveWeightWholeTime[i+1]=AveWeightWholeTime[i]+AveWeightWholeTime[i+1];WeightAllTime=AveWeightWholeTime[i+1];}FCFS_AverageWT=WeightAllTime/ProcessNum;cout<<"FCFS平均帶權(quán)周轉(zhuǎn)時(shí)間:"<<FCFS_AverageWT<<endl;}voidSJF(){intProcessNum;cout<<"短作業(yè)優(yōu)先算法"<<endl;cout<<"請(qǐng)輸入進(jìn)程個(gè)數(shù):"<<endl;cin>>ProcessNum;cout<<"輸入進(jìn)程到達(dá)時(shí)間:"<<endl;for(inti=0;i<ProcessNum;i++){cin>>ArrivalTime[i];}cout<<endl;cout<<"請(qǐng)輸入進(jìn)程服務(wù)時(shí)間:"<<endl;for(inti=0;i<ProcessNum;i++){cin>>ServiceTime[i];cout<<endl;for(inti=0;i<ProcessNum;i++){a[i]=ServiceTime[i];}for(inti=1;i<ProcessNum-1;i++){doublet;for(intj=i+1;j<ProcessNum;j++){if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}}}FinishTime[0]=ServiceTime[0];for(inti=1;i<ProcessNum;i++){for(intj=1;j<ProcessNum;j++){if(a[i]==ServiceTime[j]){b[i]=j;break;}}}for(inti=1;i<ProcessNum;i++){if(FinishTime[b[i-1]]<ArrivalTime[b[i]]){inttemp;temp=b[i];b[i]=b[i+1];b[i+1]=temp;}a[i]=ServiceTime[b[i]];a[i]=a[i-1]+a[i];FinishTime[b[i]]=a[i];}for(inti=0;i<ProcessNum-1;i++){cout<<"時(shí)刻"<<FinishTime[i]<<":第”<<i+2<<”個(gè)進(jìn)程開始運(yùn)行。"<<endl;}cout<<endl;cout<<"SJF完成時(shí)間:";for(inti=0;i<ProcessNum;i++){cout<<FinishTime[i]<<"";}cout<<endl;cout<<"SJF周轉(zhuǎn)時(shí)間:";for(inti=0;i<ProcessNum;i++){WholeTime[i]=FinishTime[i]-ArrivalTime[i];for(inti=0;i<ProcessNum;i++){cout<<WholeTime[i]<<"";}cout<<endl;for(inti=0;i<ProcessNum;i++){AveWholeTime[i]=WholeTime[i];}for(inti=0;i<ProcessNum;i++){AveWholeTime[i+1]=AveWholeTime[i]+AveWholeTime[i+1];AllTime=AveWholeTime[i+1];}SJF_AverageT=AllTime/ProcessNum;cout<<"SJF平均周轉(zhuǎn)時(shí)間:"<<SJF_AverageT<<endl;for(inti=0;i<ProcessNum;i++){WeightWholeTime[i]=WholeTime[i]/ServiceTime[i];}for(inti=0;i<ProcessNum;i++){AveWeightWholeTime[i]=WeightWholeTime[i];}for(inti=0;i<ProcessNum;i++){AveWeightWholeTime[i+1]=AveWeightWholeTime[i]+AveWeightWholeTime[i+1];WeightAllTime=AveWeightWholeTime[i+1];}SJF_AverageWT=WeightAllTime/ProcessNum;cout<<"SJF平均帶權(quán)周轉(zhuǎn)時(shí)間:"<<SJF_AverageWT<<endl;}intmain(){charn;cout<<”1、先來先服務(wù)FCFS算法."<<endl;cout<<"2、短作業(yè)優(yōu)先SJF算法.”<<endl;cout<<"請(qǐng)選擇算法的序號(hào):"<<endl;cin>>n;switch(n){case'1':FCFS();break;case'2':SJF();break;default:cout<<endl;cout<<"您輸出有誤!”<<endl;break;}cout<<endl;
return0;}六?實(shí)驗(yàn)結(jié)果:47:46時(shí)間:9.周禺時(shí)間12102:2.714111915(1)先來先服務(wù)算法運(yùn)行結(jié)果::47:46時(shí)間:9.周禺時(shí)間12102:2.714111915(1)先來先服務(wù)算法運(yùn)行結(jié)果:到燙Jl刻成唇均(2)短作業(yè)優(yōu)先算法運(yùn)行結(jié)果:UwtfMdinin\De-&ktQp\111\bin\Debug\111,ewegsA口A口時(shí)時(shí)開開乎牙口王口口王口王5g2g3第第----.?.??■「???】4ix7It—It—IC:\IJsers\adeinVDesktap\111\bim\Debug\111.exeL2、it2_蕾輸入進(jìn)程個(gè)數(shù):5輸入進(jìn)程到達(dá)時(shí)間:01234七.實(shí)驗(yàn)小結(jié)通過這次實(shí)現(xiàn)低級(jí)調(diào)度算法的模擬實(shí)驗(yàn),讓我更加深刻的理解了低級(jí)調(diào)度算法的內(nèi)容和運(yùn)行原理,讓我對(duì)之前忽略的內(nèi)容有了補(bǔ)充,其中的一些模糊的知識(shí)也明晰起來了。以下是對(duì)進(jìn)程的調(diào)度算法的總結(jié)。進(jìn)程調(diào)度的原因:在操作系統(tǒng)中,由于進(jìn)程綜述多于處理機(jī),它們必然競爭處理機(jī),為了充分利用計(jì)算機(jī)系統(tǒng)中的CPU資源,讓計(jì)算機(jī)系統(tǒng)能夠多快好省的完成我們讓它做的各種任務(wù),所以需要進(jìn)程調(diào)度。進(jìn)程的調(diào)度的概念:進(jìn)程調(diào)度也稱為低級(jí)調(diào)度(CPU調(diào)度),是按照某種調(diào)度算法(或原則)從就緒隊(duì)列中選取進(jìn)程分配CPU,主要是協(xié)調(diào)對(duì)CPU的爭奪使用。通常有以下兩種調(diào)度方式:1)非剝奪調(diào)度方式,又稱非搶占方式是指當(dāng)一個(gè)進(jìn)程正在處理機(jī)上執(zhí)行時(shí),即使有某個(gè)更
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人攝影服務(wù)2024年度合同9篇
- 二零二五年度房地產(chǎn)買賣合同標(biāo)的及相關(guān)定義3篇
- 2025年度采石場礦山生態(tài)環(huán)境恢復(fù)合同范本3篇
- 2025年度智能交通信號(hào)燈安裝與維護(hù)合同3篇
- 2025版文化產(chǎn)業(yè)項(xiàng)目咨詢與投資合作委托協(xié)議3篇
- 2025年個(gè)人與企業(yè)間租車服務(wù)安全保障合同2篇
- 二零二五版木工行業(yè)市場調(diào)研與分析合同8篇
- 2025年大蒜出口企業(yè)代理銷售合同范本4篇
- 二零二五年度冷鏈?zhǔn)称放渌团c冷鏈物流服務(wù)合同樣本
- 二零二五年度變壓器原材料供應(yīng)合同模板3篇
- 2025年度公務(wù)車輛私人使用管理與責(zé)任協(xié)議書3篇
- 售后工程師述職報(bào)告
- 綠化養(yǎng)護(hù)難點(diǎn)要點(diǎn)分析及技術(shù)措施
- 2024年河北省高考?xì)v史試卷(含答案解析)
- 車位款抵扣工程款合同
- 小學(xué)六年級(jí)數(shù)學(xué)奧數(shù)題100題附答案(完整版)
- 高中綜評(píng)項(xiàng)目活動(dòng)設(shè)計(jì)范文
- 英漢互譯單詞練習(xí)打印紙
- 2023湖北武漢華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員24人筆試參考題庫(共500題)答案詳解版
- 一氯二氟甲烷安全技術(shù)說明書MSDS
- SWITCH暗黑破壞神3超級(jí)金手指修改 版本號(hào):2.7.6.90885
評(píng)論
0/150
提交評(píng)論