先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF進(jìn)程調(diào)度算法_第1頁
先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF進(jìn)程調(diào)度算法_第2頁
先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF進(jìn)程調(diào)度算法_第3頁
先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF進(jìn)程調(diào)度算法_第4頁
先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF進(jìn)程調(diào)度算法_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、操作系統(tǒng)實(shí)驗(yàn)報(bào)告姓名:*班級(jí):*學(xué)號(hào):*學(xué)院:軟件學(xué)院實(shí)驗(yàn)一 先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF進(jìn)程調(diào)度算法1、實(shí)驗(yàn)?zāi)康耐ㄟ^這次實(shí)驗(yàn),加深對(duì)進(jìn)程概念的理解,進(jìn)一步掌握進(jìn)程狀態(tài)的 轉(zhuǎn)變、進(jìn)程調(diào)度的策略及對(duì)系統(tǒng)性能的評(píng)價(jià)方法。2、試驗(yàn)內(nèi)容問題描述:設(shè)計(jì)程序模擬進(jìn)程的先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF調(diào)度過 程。假設(shè)有n個(gè)進(jìn)程分別在Ti,,Tn時(shí)刻到達(dá)系統(tǒng),它們需要的 服務(wù)時(shí)間分別為Si,,Sn。分別采用先來先服務(wù)FCFS和短作業(yè) 優(yōu)先SJF程調(diào)度算法進(jìn)行調(diào)度,計(jì)算每個(gè)進(jìn)程的完成時(shí)間、周 轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間,并且統(tǒng)計(jì)n個(gè)進(jìn)程的平均周轉(zhuǎn)時(shí)間和平 均帶權(quán)周轉(zhuǎn)時(shí)間。3、程序要求:1 )進(jìn)程個(gè)數(shù)n;每

2、個(gè)進(jìn)程的到達(dá)時(shí)間 Ti,,Tn和服務(wù)時(shí)間Si,,Sn ;選擇算法 1-FCFS , 2-SJF。2)要求采用先來先服務(wù)FCFS和短作業(yè)優(yōu)先SJF分別調(diào)度進(jìn)程 運(yùn)行,計(jì)算每個(gè)進(jìn)程的周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間, 并且計(jì)算所有進(jìn)程 的平均周轉(zhuǎn)時(shí)間和帶權(quán)平均周轉(zhuǎn)時(shí)間;3 )輸出:要求模擬整個(gè)調(diào)度過程,輸出每個(gè)時(shí)刻的進(jìn)程運(yùn)行狀態(tài),如“時(shí)刻3 :進(jìn)程B開始運(yùn)行”等等;4)輸出:要求輸出計(jì)算出來的每個(gè)進(jìn)程的周轉(zhuǎn)時(shí)間、帶權(quán)周轉(zhuǎn)時(shí)間、所有進(jìn)程的平均周轉(zhuǎn)時(shí)間以及帶權(quán)平均周轉(zhuǎn)時(shí)間4、需求分析(1) 輸入的形式和輸入值的范圍算法選擇:FCFS- “ 1 ”,選 SJF- “2”真實(shí)進(jìn)程數(shù)各進(jìn)程的到達(dá)時(shí)間各進(jìn)程的服務(wù)時(shí)間(

3、2) 輸出的形式模擬整個(gè)調(diào)度過程、周轉(zhuǎn)時(shí)間、帶權(quán)周轉(zhuǎn)時(shí)間、所有進(jìn)程的平均周轉(zhuǎn)時(shí)間以及帶權(quán)平均周轉(zhuǎn)時(shí)間。(3) 程序所能達(dá)到的功能輸入進(jìn)程個(gè)數(shù)Num,每個(gè)進(jìn)程到達(dá)時(shí)間 ArrivalTimei,服務(wù)時(shí)間ServiceTimei。采用先來先服務(wù)FCFS或者短作業(yè)優(yōu)先SJF進(jìn)程調(diào)度算法進(jìn)行調(diào)度,計(jì)算每個(gè)進(jìn)程的完成時(shí)間、周轉(zhuǎn)時(shí)間和帶權(quán)周轉(zhuǎn)時(shí)間,并且統(tǒng)計(jì)Num個(gè)進(jìn)程的平均周轉(zhuǎn)時(shí)間和平均帶權(quán)周轉(zhuǎn)時(shí)間測(cè)試駛進(jìn)穩(wěn)名J ABCDE平均到迭時(shí)間01234眼番時(shí)閭43524FCFS(a)完咸時(shí)囪47121418461011140 |帶權(quán)周轉(zhuǎn)時(shí)間1225. 53,52.&完披吋間! 49迪613周轉(zhuǎn)時(shí)間163&帯權(quán)周

4、轉(zhuǎn)時(shí)間2. 673.11.52, 252.15、調(diào)試分析(1) 調(diào)試過程中遇到的問題以及解決方法,設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析1開始的時(shí)候沒有判斷進(jìn)程是否到達(dá),導(dǎo)致短進(jìn)程優(yōu)先算法運(yùn)行結(jié)果 錯(cuò)誤,后來加上了判斷語句后就解決了改問題。1基本完成的設(shè)計(jì)所要實(shí)現(xiàn)的功能,總的來說,F(xiàn)CFS編寫容易,SJF需要先找到已經(jīng)到達(dá)的進(jìn)程,再從已經(jīng)到達(dá)的進(jìn)程里找到進(jìn)程服務(wù)時(shí) 間最短的進(jìn)程,再進(jìn)行計(jì)算。3根據(jù)我所寫的FCFS和SJF算法,如果用戶輸入的數(shù)據(jù)沒有按照到達(dá)時(shí)間的先后順序,程序?qū)⒊霈F(xiàn)問題?解決辦法:利用冒泡排序,根據(jù)達(dá)到時(shí)間的先后順序進(jìn)行排序。3從第二個(gè)進(jìn)程開始,算法需要判斷已在等待的進(jìn)程,如果分批進(jìn)行判斷

5、與處理,規(guī)律性不強(qiáng),代碼很難實(shí)現(xiàn)?解決辦法:通過犧牲效率的方式,進(jìn)行一個(gè)個(gè)判斷與處理。為此,引入變量當(dāng)前時(shí)間、用零標(biāo)記已處理過進(jìn)程等方式,實(shí)現(xiàn)已在等待進(jìn)程 的判斷與判斷。(2) 算法的改進(jìn)設(shè)想改進(jìn):即使用戶輸入的進(jìn)程到達(dá)時(shí)間沒有先后順序也能準(zhǔn)確的計(jì)算出 結(jié)果。(就是再加個(gè)循環(huán),判斷各個(gè)進(jìn)程的到達(dá)時(shí)間先后,組成一個(gè) 有序的序列)(3) 經(jīng)驗(yàn)和體會(huì)通過本次實(shí)驗(yàn),深入理解了先來先服務(wù)和短進(jìn)程優(yōu)先進(jìn)程調(diào)度算法的 思想,培養(yǎng)了自己的動(dòng)手能力,通過實(shí)踐加深了記憶。6、測(cè)試結(jié)果(1)FIFS 算法:文件流輸入算法選擇,進(jìn)程個(gè)數(shù),進(jìn)程的達(dá)到時(shí)間和服務(wù)時(shí)間I 2)I |g 01 I1F 520 1 2 3 43

6、45 2 4輸出請(qǐng)?jiān)枔裾{(diào)度類型;先來先服務(wù)(FCFS2、短作業(yè)優(yōu)弟SJF)JL35?|C SfC *9? 1SifC 5( ifC址耳寓*耳耳:r*宦*寧斗*當(dāng)加結(jié)果(爵入當(dāng)來尊世家系寧車審寧術(shù)車寧號(hào)萼雲(yún)沖各個(gè)線程到達(dá)時(shí)間;0123斗答個(gè)踐程服務(wù)時(shí)間:43524各個(gè)線程完成呵間;47121斗18各個(gè)線程周轉(zhuǎn)時(shí)間:46101114各個(gè)線程帶權(quán)周轉(zhuǎn)時(shí)間;1.02.02.05*53.5平均周韓時(shí)間;9.0平均帶權(quán)周轉(zhuǎn)時(shí)間:2.8SJF算法:文件流輸入算法選擇,進(jìn)程個(gè)數(shù),進(jìn)程的達(dá)到時(shí)間和服務(wù)時(shí)間輸出請(qǐng)選擇調(diào)度類型:1、先來先服務(wù)(FCFS) 2、短詐業(yè)優(yōu)先(SJF)*#*#*#*#*#*#*#*水*

7、*橫* *結(jié)果*侖入)ijC*水*京*京水* *各個(gè)線程到達(dá)吋間:012B4各個(gè)絨程服務(wù)時(shí)間:13524各個(gè)線程完成吋間:4918613各個(gè)結(jié)程周轉(zhuǎn)吋間;481639各個(gè)線程芾權(quán)同審專吋間;1.02 GG6GGG73.21.52*25平均周轉(zhuǎn)時(shí)間;8-0平均帶權(quán)周轉(zhuǎn)吋間:2.12333357、附錄(java)public static void main(String args) int xz;System. out.printin(”=作業(yè)調(diào)度一一實(shí)現(xiàn)FCFS 和 SJF 調(diào)度算法=);System. out.prin tl n(=);System. out .println(” 請(qǐng)輸入進(jìn)程

8、個(gè)數(shù):);Scanner in put = new Scann er(System. in);int sum = in put. next In t();intks=newint sum;/到達(dá)時(shí)間intfw=newint sum;/服務(wù)時(shí)間intjs=newint sum;/完成時(shí)間intzz=newint sum;/周轉(zhuǎn)時(shí)間float dq = new float sum;/ 帶權(quán)周轉(zhuǎn)時(shí)間int min = 0;int px = new int sum;/存放排序的序列System. out .println(輸入每個(gè)進(jìn)程的開始時(shí)間 );for (int i = 0; i sum; i+)

9、 System. out .println(”請(qǐng)輸入第” + (i + 1) + 個(gè)進(jìn)程的開始時(shí)間);ksi = in put .n ext In t();System. out .printin(” 輸入每個(gè)進(jìn)程的服務(wù)時(shí)間 );for (int j = 0; j sum; j+) System. out .println(”請(qǐng)輸入第” + (j + 1) + 個(gè)進(jìn)程的服務(wù)時(shí)間);fwj = in put .n ext In t();/下面對(duì)進(jìn)程進(jìn)行相應(yīng)的操作 for (int ij_ = 0; ii+) System. out .println(”請(qǐng)選擇調(diào)度類型:1、先來先服務(wù)(FCFS)

10、2、短作業(yè)優(yōu)先(SJF);xz = in put. next In t();if (xz = 1) / /選擇了先來現(xiàn)服務(wù) FCFSjs0 = ks0 + fw0;for (int jj = 1; jj sum; jj+) / 1結(jié)束時(shí)間計(jì)算jsjj = jsjj - 1 + fwjj;/ 2周轉(zhuǎn)時(shí)間計(jì)算for (int jj = 0; jj sum; jj+) zzjj = jsjj - ksjj;/ 3帶權(quán)周轉(zhuǎn)時(shí)間計(jì)算for (int jj = 0; jj sum; jj+) dqjj = ( float ) zzjj / fwjj; break else if (xz = 2) / /選

11、擇了短作業(yè)優(yōu)先 SJF數(shù)組進(jìn)行排序pxi = fwi;js0 = ks0 + fw0;px0 = fw0;for (int i = 1; i sum; i+) /按照服務(wù)時(shí)間進(jìn)行排序放在數(shù)組/ 1、完成時(shí)間計(jì)算for (int i = 0; i sum; i+) /把服務(wù)時(shí)間放在另外一個(gè)數(shù)組。用這個(gè)px中;for (int j = 1; j pxj + 1) min = pxj + 1;pxj + 1 = pxj;pxj = mi n;int aa=jsO;第一個(gè)線程完成時(shí)間for (int i = 1; i sum; i+) for (int j = 1; j sum; j+) if (px

12、i = fwj) jsj =aa + fwj;aa=jsj;/ 2周轉(zhuǎn)時(shí)間計(jì)算for (int jj = 0; jj sum; jj+) zzjj = jsjj - ksjj;/ 3帶權(quán)周轉(zhuǎn)時(shí)間計(jì)算for (int jj = 0; jj sum; jj+) dqjj = ( float ) zzjj / fwjj;break ; else / / 輸入錯(cuò)誤!請(qǐng)輸入 1System. out .println(”【錯(cuò)誤提示】您選擇的不是有效操作!或2進(jìn)行操作.);con ti nue ;/分別輸出到達(dá)世間、服務(wù)時(shí)間、結(jié)束時(shí)間、周轉(zhuǎn)時(shí)間、帶權(quán)周轉(zhuǎn)時(shí)間System.out .println(“*“)

13、;System. out .printin(”*結(jié)果輸入);System. out .print(”各個(gè)線程到達(dá)時(shí)間:”); for (int i = 0; i sum; i+) System. out .print(ksi + );System. out .print(n各個(gè)線程服務(wù)時(shí)間:”);for (int i = 0; i sum; i+) System. out .print(fwi + );System. out .print(n各個(gè)線程完成時(shí)間:”);for (int i = 0; i sum; i+) System. out .print(jsi + );System. out .print(n各個(gè)線程周轉(zhuǎn)時(shí)間:”);for (int i = 0; i sum; i+) System. out .print(zzi + );System. out .print(n各個(gè)線程帶權(quán)周轉(zhuǎn)時(shí)間:);for (int i = 0; i sum; i+) System. out .print(dqi + );/平均周轉(zhuǎn)時(shí)間System. out .print(n 平均周轉(zhuǎn)時(shí)間:”);float sum0 =

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論