版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
南通大學(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成績(jī)實(shí)驗(yàn)2低級(jí)進(jìn)程調(diào)度算法一、實(shí)驗(yàn)?zāi)康哪M實(shí)現(xiàn)作業(yè)調(diào)度算法(包括先來(lái)先服務(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語(yǔ)言編寫一個(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)度算法(先來(lái)先服務(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)度(包括先來(lái)先服務(wù)調(diào)度算法和短作業(yè)優(yōu)先調(diào)度算法),利用編程軟件編譯調(diào)試程序并測(cè)試其正確性,最后給出測(cè)試結(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)先來(lái)先服務(wù)算法(FCFS)FCFS是最簡(jiǎn)單的調(diào)度算法,既可以用作作業(yè)調(diào)度,也可以用作進(jìn)程調(diào)度。這種算法優(yōu)先考慮系統(tǒng)中等待時(shí)間最長(zhǎng)的作業(yè)(進(jìn)程),而不管作業(yè)所需執(zhí)行時(shí)間長(zhǎng)短。做法是從后備隊(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)程)所占比例很大,為了讓它們比長(zhǎng)作業(yè)優(yōu)先執(zhí)行,就有了此算法。SJF顧名思義以作業(yè)長(zhǎng)短來(lái)確定優(yōu)先級(jí),作業(yè)越短優(yōu)先級(jí)越高,作業(yè)的長(zhǎng)短用作業(yè)所需的運(yùn)行時(shí)間來(lái)衡量,此算法一樣也可以用做進(jìn)程調(diào)度,它將從外存的作業(yè)后備隊(duì)列中選擇若十個(gè)估計(jì)運(yùn)行時(shí)間最短的作業(yè),優(yōu)先將它們調(diào)入內(nèi)存運(yùn)行。2.算法流程圖(1)先來(lái)先服務(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<<"先來(lái)先服務(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、先來(lái)先服務(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)先來(lái)先服務(wù)算法運(yùn)行結(jié)果::47:46時(shí)間:9.周禺時(shí)間12102:2.714111915(1)先來(lái)先服務(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é)通過(guò)這次實(shí)現(xiàn)低級(jí)調(diào)度算法的模擬實(shí)驗(yàn),讓我更加深刻的理解了低級(jí)調(diào)度算法的內(nèi)容和運(yùn)行原理,讓我對(duì)之前忽略的內(nèi)容有了補(bǔ)充,其中的一些模糊的知識(shí)也明晰起來(lái)了。以下是對(duì)進(jìn)程的調(diào)度算法的總結(jié)。進(jìn)程調(diào)度的原因:在操作系統(tǒng)中,由于進(jìn)程綜述多于處理機(jī),它們必然競(jìng)爭(zhēng)處理機(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的爭(zhēng)奪使用。通常有以下兩種調(diào)度方式:1)非剝奪調(diào)度方式,又稱非搶占方式是指當(dāng)一個(gè)進(jìn)程正在處理機(jī)上執(zhí)行時(shí),即使有某個(gè)更
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022年浙江省嘉興市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年P(guān)ET改性及合金材料項(xiàng)目投資申請(qǐng)報(bào)告代可行性研究報(bào)告
- 2024年石油產(chǎn)品添加劑:燃料油添加劑項(xiàng)目資金申請(qǐng)報(bào)告
- 關(guān)于銀行實(shí)習(xí)日記范文錦集八篇
- 2025年煤礦自動(dòng)化控制系統(tǒng)項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模范
- 虛擬現(xiàn)實(shí)項(xiàng)目招投標(biāo)合同關(guān)鍵點(diǎn)
- 科技孵化器招投標(biāo)委托期限
- 出租車公司賬戶管理辦法
- 建筑工程安全協(xié)議
- 游艇俱樂(lè)部遮陽(yáng)棚施工協(xié)議
- 融媒體專題報(bào)道方案
- 工作失誤匯報(bào)
- 呼吸科主任述職報(bào)告
- 旅游法規(guī)期末試卷與參考答案匯編
- 11054-國(guó)家開放大學(xué)2023年春期末統(tǒng)一考試《流通概論》答案
- 晉江物流行業(yè)分析
- 編譯原理考試題及答案匯總
- 國(guó)家開放大學(xué)2023年7月期末統(tǒng)一試《11132衛(wèi)生管理》試題及答案-開放本科
- 咽喉癌病歷書寫
- 2023年自然資源部所屬事業(yè)單位招聘(208人)筆試參考題庫(kù)(共500題)答案詳解版
- 自身免疫性肝炎診斷和治療指南(2021版)解讀
評(píng)論
0/150
提交評(píng)論