




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、操 作 系 統(tǒng)課程設(shè)計說明書題目:為單道批處理系統(tǒng)設(shè)計一個作業(yè)調(diào)度模擬程序 院 系: 計算機科學(xué)與工程學(xué)院 專業(yè)班級: 計算機 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 計算機科學(xué)與工程學(xué)院 計算機科學(xué)與技術(shù)系 學(xué) 號學(xué)生姓名專業(yè)(班級)計算機09-3班設(shè)計題目為單道批處理系統(tǒng)設(shè)計一個作業(yè)調(diào)度模擬程序設(shè)計技術(shù)參數(shù)使用Microsoft Visual C+ 6.0編輯器編寫,利用c語言開發(fā)的基于單道批處理系統(tǒng)的一個作業(yè)調(diào)度模擬程序,完成該課程設(shè)計需要掌握先來先服務(wù)(FCFS),最短作業(yè)優(yōu)先(SJF)、響應(yīng)比高者優(yōu)先(HRN)的調(diào)度算法。設(shè)計要求作業(yè)調(diào)度算法分別采用先來先服務(wù)(FCFS),最短作業(yè)優(yōu)先(S
2、JF)、響應(yīng)比高者優(yōu)先(HRN)的調(diào)度算法。對每種調(diào)度算法都要求打印每個作業(yè)開始運行時刻、完成時刻、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,以及這組作業(yè)的平均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間,以比較各種算法的優(yōu)缺點。工作量1 源代碼程序不少于400行2 附有各種圖示4張3 課程設(shè)計任務(wù)書不少于3500字工作計劃1.10月23日-10月28日:查詢相關(guān)資料,初步確定課程設(shè)計的語言,進一步明確其所要實現(xiàn)的功能2.10月29日-11月10日:根據(jù)所學(xué)知識及搜集的相關(guān)信息進行概要設(shè)計3.11月11日-11月25日:進行詳細(xì)設(shè)計,完成相應(yīng)源代碼的編寫4.11月26日-12月2日:對源代碼進行調(diào)試、運行5.12月3日-12月1
3、0日:完善課程設(shè)計說明書并提交參考資料1 梁小丹,梁紅兵,哲鳳屏,湯子贏計算機操作系統(tǒng).第三版西安:西安電子科技大學(xué)出版社,200722 袁捷、沈俊、 袁晴晴. 計算機操作系統(tǒng)基礎(chǔ)與應(yīng)用.第二版.北京: 清華大學(xué)出版社,2009.073楊振山、龔培增. 計算機操作系統(tǒng)教程.第三版. 北京:清華大學(xué)出版社, 2007.94譚浩強. C程序設(shè)計.第四版.北京:清華大學(xué)出版社, 2010.065王敬華,林萍,張清國等C語言程序設(shè)計教程.第二版北京:清華大學(xué)出版社,200910指導(dǎo)教師簽字系主任簽字2011年9月 26日學(xué)生姓名: 學(xué)號: 專業(yè)班級: 計算機09-3班 設(shè)計題目: 為單道批處理系統(tǒng)設(shè)計
4、一個作業(yè)調(diào)度模擬程序 指導(dǎo)教師評語:成績: 指導(dǎo)教師: 年 月 日安徽理工大學(xué)課程設(shè)計(論文)成績評定表摘要 本次課程設(shè)計要求用高級語言編寫和調(diào)試一個單道批處理系統(tǒng)的作業(yè)調(diào)度的模擬程序,了解作業(yè)調(diào)度在操作系統(tǒng)中的作用,以加深對作業(yè)調(diào)度算法的理解。作業(yè)調(diào)度算法分別采用先來先服務(wù)(FCFS),最短作業(yè)優(yōu)先(SJF)、響應(yīng)比高者優(yōu)先(HRN)的調(diào)度算法。對每種調(diào)度算法都要求打印每個作業(yè)開始運行時刻、完成時刻、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,以及這組作業(yè)的平均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間,以比較各種算法的優(yōu)缺點。 關(guān)鍵詞:作業(yè)調(diào)度,先來先服務(wù)(FCFS),最短作業(yè)優(yōu)先(SJF),響應(yīng)比高者優(yōu)先(HRN)I目 錄
5、1需求分析11.1問題描述11.2功能分析及描述11.3 開發(fā)語言選擇12概要設(shè)計22.1功能模塊劃分22.2功能模塊的描述22.3功能模塊結(jié)構(gòu)圖示23詳細(xì)設(shè)計43.1作業(yè)控制塊JCB的數(shù)據(jù)結(jié)構(gòu)類型43.2先來先服務(wù)算法設(shè)計43.3最短作業(yè)優(yōu)先算法設(shè)計53.4響應(yīng)比高者優(yōu)先算法設(shè)計64代碼實現(xiàn)84.1高響應(yīng)比算法84.2最短作業(yè)優(yōu)先算法84.3先來先服務(wù)算法95運行結(jié)果與分析115.1選擇操作的界面115.2選擇先來先服務(wù)算法進行作業(yè)調(diào)度115.3選擇最短作業(yè)優(yōu)先算法進行作業(yè)調(diào)度125.4選擇高響應(yīng)比優(yōu)先算法進行作業(yè)調(diào)度136結(jié)束語157附錄16參考文獻II操作系統(tǒng)課程設(shè)計說明書1需求分析 1
6、.1問題描述為單道批處理系統(tǒng)設(shè)計一個作業(yè)調(diào)度模擬程序。作業(yè)調(diào)度算法分別采用先來先服務(wù)(FCFS),最短作業(yè)優(yōu)先(SJF)、響應(yīng)比高者優(yōu)先(HRN)的調(diào)度算法。對每種調(diào)度算法都要求打印每個作業(yè)開始運行時刻、完成時刻、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,以及這組作業(yè)的平均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間,以比較各種算法的優(yōu)缺點。1.2功能分析及描述在批處理系統(tǒng)中,作業(yè)進入系統(tǒng)后,先駐留在外存上,通過作業(yè)調(diào)度算法,將它們分批裝入內(nèi)存。作業(yè)調(diào)度程序用于決定把外存上處于后備隊列中的哪些作業(yè)調(diào)入內(nèi)存,并為他們創(chuàng)建進程、分配必要的資源,然后,再將新創(chuàng)建的進程加入就緒隊列中,準(zhǔn)備執(zhí)行。應(yīng)將哪些作業(yè)從外存調(diào)入內(nèi)存,取決于所采用的
7、調(diào)度算法。最簡單的是先來先服務(wù)調(diào)度算法,這是指講最早進入外存的作業(yè)最先調(diào)入內(nèi)存;較常用的一種是短作業(yè)優(yōu)先調(diào)度算法,這是將外存上最短的作業(yè)最先調(diào)入內(nèi)存;此外,還有基于響應(yīng)比高者優(yōu)先的調(diào)度算法,根據(jù)作業(yè)的等待時間和要求服務(wù)時間的和與要求服務(wù)時間之比可計算出響應(yīng)比。1.3 開發(fā)語言選擇 本課程設(shè)計采用C語言實現(xiàn)。2概要設(shè)計 2.1功能模塊劃分根據(jù)功能描述,單道批處理程序作業(yè)調(diào)度的模擬程序要求實現(xiàn)如下功能:建立作業(yè)、選擇作業(yè)、運行作業(yè)、計算作業(yè)周轉(zhuǎn)時間和帶權(quán)周轉(zhuǎn)時間,以及這組作業(yè)的平均周轉(zhuǎn)時間和帶權(quán)平均周轉(zhuǎn)時間、顯示運行結(jié)果(包括每個作業(yè)開始運行時刻、完成時刻、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,以及這組作業(yè)的平
8、均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間等)、退出程序。 2.2功能模塊的描述各模塊的功能介紹如下:(1)建立作業(yè):輸入作業(yè)數(shù),建立一組作業(yè),并對所建立的這組作業(yè)進行初始化,用以模擬作業(yè)調(diào)度。初始化的內(nèi)容包括作業(yè)名,作業(yè)要求運行的時間,其中,作業(yè)進入系統(tǒng)的時間由系統(tǒng)默認(rèn)設(shè)置。(2)選擇作業(yè):程序通過先來先服務(wù)調(diào)度算法、短作業(yè)優(yōu)先調(diào)度算法和高響應(yīng)比優(yōu)先調(diào)度算法對建立的一組作業(yè)進行選擇,決定把哪個作業(yè)從外存調(diào)入內(nèi)存中。(3)運行作業(yè):根據(jù)初始化中設(shè)置的作業(yè)要求運行時間來模擬作業(yè)的運行。(4)計算:作業(yè)完成計算作業(yè)周轉(zhuǎn)時間和帶權(quán)周轉(zhuǎn)時間,以及這組作業(yè)的平均周轉(zhuǎn)時間和帶權(quán)平均周轉(zhuǎn)時間。(5)顯示結(jié)果:將計算所得的
9、結(jié)果輸出。(6)退出程序:當(dāng)實驗結(jié)束,不再需要模擬作業(yè)調(diào)度的時候,用來退出程序。2.3功能模塊結(jié)構(gòu)圖示作業(yè)調(diào)度模擬程序的系統(tǒng)功能結(jié)構(gòu)如圖2-1所示。作 業(yè) 調(diào) 度 系 統(tǒng) 退出程序高響應(yīng)比優(yōu)先算短作業(yè)優(yōu)先算法先來先服務(wù)算法輸出運行結(jié)果運行作業(yè)初始化初始化運行作業(yè)輸出運行結(jié)果初始化運行作業(yè)輸出運行結(jié)果 圖2-1 作業(yè)調(diào)度模擬程序系統(tǒng)功能結(jié)構(gòu)圖3詳細(xì)設(shè)計 3.1作業(yè)控制塊JCB的數(shù)據(jù)結(jié)構(gòu)類型由于在單道批處理系統(tǒng)中,不必考慮作業(yè)所需要的資源是否得到滿足,它所占用的 CPU時限等因素。每個作業(yè)由一個作業(yè)控制塊JCB表示,JCB可以包含如下信息:作業(yè)名、提交時間、所需的服務(wù)時間、所需的資源、作業(yè)狀態(tài)、鏈
10、指針等等。作業(yè)的狀態(tài)可以是等待W(Wait)、運行R(Run)和完成F(Finish)三種狀態(tài)之一。每個作業(yè)的最初狀態(tài)總是等待W。對每種調(diào)度算法都要求輸出每個作業(yè)開始運行時刻、完成時刻、周轉(zhuǎn)時間、帶權(quán)周轉(zhuǎn)時間,以及這組作業(yè)的平均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間。從以上分析可見,在這個模擬程序中作業(yè)控制塊JCB的數(shù)據(jù)結(jié)構(gòu)類型可定義為:struct jcb /作業(yè)控制塊 char name10; /作業(yè)名 int reachtime; /作業(yè)到達(dá)時間 int starttime; /作業(yè)開始時間 int needtime; /作業(yè)需要運行的時間 float super; /作業(yè)的響應(yīng)比 int fini
11、shtime; /作業(yè)完成時間 float cycletime; /作業(yè)周轉(zhuǎn)時間 float cltime; /作業(yè)帶權(quán)周轉(zhuǎn)時間 char state; /作業(yè)狀態(tài) struct jcb *next; /結(jié)構(gòu)體指針*ready=NULL,*p,*q; typedef struct jcb JCB; 3.2先來先服務(wù)算法設(shè)計先來先服務(wù)算法:按照作業(yè)提交給系統(tǒng)的先后順序來挑選作業(yè),先提交的先被執(zhí)行。流程圖如圖3-1所示??战Y(jié) 束計算并打印這組作業(yè)的平均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間等待隊列空?更改時間量times的值;times:=times+服務(wù)時間計算并打印運行作業(yè)i的完成時刻finishtime
12、,周轉(zhuǎn)時間cycletime,帶權(quán)周轉(zhuǎn)時間cltime;完成時間:=開始運行時間+服務(wù)時間周轉(zhuǎn)時間:=完成時間到達(dá)時間帶權(quán)周轉(zhuǎn)時間:=周轉(zhuǎn)時間/服務(wù)時間調(diào)度隊首的作業(yè)投入運行;更改隊首指針,使作業(yè)的狀態(tài)為R,記住作業(yè)運行的時刻starttime等初始化所有的JBC使JBC按作業(yè)提交的時刻的先后順序排隊時間量times:=0開 始不空圖3-1 先來先服務(wù)調(diào)度算法流程圖3.3最短作業(yè)優(yōu)先算法設(shè)計最短作業(yè)優(yōu)先算法:是以進入系統(tǒng)的作業(yè)所要求的服務(wù)時間為標(biāo)準(zhǔn),總是優(yōu)先選取執(zhí)行時間最短的作業(yè)。流程圖如圖3-2所示??战Y(jié) 束計算并打印這組作業(yè)的平均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間等待隊列空?更改時間量times的
13、值;times:=times+服務(wù)時間計算并打印運行作業(yè)i的完成時刻finishtime,周轉(zhuǎn)時間cycletime,帶權(quán)周轉(zhuǎn)時間cltime;完成時間:=開始運行時間+服務(wù)時間周轉(zhuǎn)時間:=完成時間到達(dá)時間帶權(quán)周轉(zhuǎn)時間:=周轉(zhuǎn)時間/服務(wù)時間調(diào)度隊首的作業(yè)投入運行;更改隊首指針,使所要求服務(wù)時間最短的作業(yè)排在隊首,使作業(yè)的狀態(tài)為R,記住作業(yè)運行的時刻starttime等初始化所有的JBC使JBC按作業(yè)提交的時刻的先后順序排隊時間量times:=0開 始不空圖3-2 短作業(yè)優(yōu)先調(diào)度算法流程圖 3.4響應(yīng)比高者優(yōu)先算法設(shè)計響應(yīng)比高者優(yōu)先算法:是在每次調(diào)度前都要計算所有被選作業(yè)(在后備隊列中)的響應(yīng)比
14、,然后選擇響應(yīng)比最高的作業(yè)執(zhí)行。流程圖如圖3-3所示。空結(jié) 束計算并打印這組作業(yè)的平均周轉(zhuǎn)時間及帶權(quán)平均周轉(zhuǎn)時間等待隊列空?更改時間量times的值;times:=times+服務(wù)時間計算并打印運行作業(yè)i的完成時刻finishtime,周轉(zhuǎn)時間cycletime,帶權(quán)周轉(zhuǎn)時間cltime;完成時間:=開始運行時間+服務(wù)時間周轉(zhuǎn)時間:=完成時間到達(dá)時間帶權(quán)周轉(zhuǎn)時間:=周轉(zhuǎn)時間/服務(wù)時間先計算隊列中所有作業(yè)的響應(yīng)比,總是選擇響應(yīng)比最高的走也作為此刻要運行的作業(yè),并修改相應(yīng)的指針,記下starttime等初始化所有的JBC使JBC按作業(yè)提交的時刻的先后順序排隊時間量times:=0開 始不空 圖3-
15、3響應(yīng)比高者優(yōu)先算法流程圖4代碼實現(xiàn)4.1高響應(yīng)比算法void hrn(int m) /高響應(yīng)比算法 JCB *min; int i,iden; system("cls"); inital(); for(i=0;i<n;i+) p=min=ready;iden=1; super(); do if(p->state='W'&&p->reachtime<=times) if(iden) min=p;iden=0; else if(p->super>min->super) min=p; p=p->ne
16、xt; while(p!=NULL); if(iden) i-;times+; /printf("ntime=%d:tno JCB submib.wait.",time); if(times>1000)printf("nruntime is too long.error.");getch(); else running(min,m); /調(diào)用running()函數(shù) /for final(); /調(diào)用running()函數(shù)4.2最短作業(yè)優(yōu)先算法void sjf(int m) / 最短作業(yè)優(yōu)先算法 JCB *min; int i,iden; syste
17、m("cls"); inital(); for(i=0;i<n;i+) p=min=ready;iden=1; do if(p->state='W'&&p->reachtime<=times) if(iden) min=p;iden=0; else if(p->needtime<min->needtime) min=p; p=p->next; while(p!=NULL) ; if(iden) i-; /printf("ntime=%d:tno JCB submib.wait.&quo
18、t;,time); times+; if(times>100)printf("nruntime is too long.error");getch(); else running(min,m); /調(diào)用running()函數(shù) /for final(); /調(diào)用running()函數(shù)4.3先來先服務(wù)算法void fcfs(int m) /先來先服務(wù)算法 int i,iden; system("cls"); inital(); for(i=0;i<n;i+) p=ready;iden=1; do if(p->state='W'
19、;&&p->reachtime<=times) iden=0; if(iden)p=p->next; while(p!=NULL&&iden) ; if(iden) i-; printf("n沒有滿足要求的進程,需等待"); times+; if(times>100)printf("n時間過長");getch(); else running(p,m); /調(diào)用running()函數(shù) final(); /調(diào)用running()函數(shù)5運行結(jié)果與分析5.1選擇操作的界面如圖5-1所示。圖5-1 選擇操作的
20、界面5.2選擇先來先服務(wù)算法進行作業(yè)調(diào)度輸入操作初始信息,建立一組作業(yè),由4個作業(yè)組成,作業(yè)名分別為a,b,c,d。如圖5-2所示。圖5-2 初始化調(diào)度順序為abcd。運行結(jié)果如圖5-3、圖5-4、圖5-5所示。 圖5-3 先來先服務(wù)算法調(diào)度 圖5-4先來先服務(wù)算法調(diào)度圖5-5先來先服務(wù)算法調(diào)度5.3選擇最短作業(yè)優(yōu)先算法進行作業(yè)調(diào)度調(diào)度順序:acdb。運行結(jié)果如圖5-6、圖5-7、圖5-8所示。 圖5-6 最短作業(yè)優(yōu)先算法調(diào)度 圖5-7 最短作業(yè)優(yōu)先算法調(diào)度圖5-8最短作業(yè)優(yōu)先算法調(diào)度5.4選擇高響應(yīng)比優(yōu)先算法進行作業(yè)調(diào)度調(diào)度順序:acbd。運行結(jié)果如圖5-9、圖5-10、圖5-11所示。 圖
21、5-9響應(yīng)比高者優(yōu)先算法調(diào)度 圖5-10響應(yīng)比高者優(yōu)先算法調(diào)度圖5-11 響應(yīng)比高者優(yōu)先算法調(diào)度6結(jié)束語當(dāng)今,計算機技術(shù)在各個方面都極大地影響了人們的生活。操作系統(tǒng)作為一門計算機的基礎(chǔ)課程,無論是對計算機等信息技術(shù)專業(yè)的學(xué)生活研究人員,還是對一般計算機應(yīng)用人員,都是非常有益和重要的。通過本次課程設(shè)計我對在課堂上所學(xué)的有關(guān)操作系統(tǒng)的知識有了更加深刻的理解和掌握,尤其是單道批處理系統(tǒng)。進一步了解了該系統(tǒng)的主要特征:自動性,順序性,單道性。批處理系統(tǒng)能提高系統(tǒng)資的利源用率和系統(tǒng)吞吐量。通過對三種調(diào)度算法的模擬程序設(shè)計,對先來先服務(wù)調(diào)度算法、短作業(yè)優(yōu)先調(diào)度算法以及高響應(yīng)比優(yōu)先調(diào)度算法的基本概念、實現(xiàn)過
22、程以及各個算法的優(yōu)缺點有的了深刻的了解,知道了不同的算法類型適合不同的作業(yè)類型。本次課程設(shè)計結(jié)合了C語言程序設(shè)計語言,通過對作業(yè)調(diào)度模擬程序的設(shè)計,積累了程序設(shè)計的實戰(zhàn)經(jīng)驗,鍛煉了程序設(shè)計能力。通過這次課程設(shè)計,我學(xué)到了很多知識,拓寬了知識面,鍛煉了能力,綜合素質(zhì)得到較大提高,把所學(xué)課程及相關(guān)知識加以融會貫通,理解了操作系統(tǒng)工作的方法,為今后的學(xué)習(xí)、工作打下了堅實的基礎(chǔ)。7附錄源程序:#include <stdio.h>#include <stdlib.h> #include <conio.h> #define getpch(type) (type*)mal
23、loc(sizeof(type) #define NULL 0int n;float T1=0,T2=0;int times=0;struct jcb /作業(yè)控制塊 char name10; /作業(yè)名 int reachtime; /作業(yè)到達(dá)時間 int starttime; /作業(yè)開始時間 int needtime; /作業(yè)需要運行的時間 float super; /作業(yè)的響應(yīng)比 int finishtime; /作業(yè)完成時間 float cycletime; /作業(yè)周轉(zhuǎn)時間 float cltime; /作業(yè)帶權(quán)周轉(zhuǎn)時間 char state; /作業(yè)狀態(tài) struct jcb *next
24、; /結(jié)構(gòu)體指針*ready=NULL,*p,*q;typedef struct jcb JCB; void inital() /建立作業(yè)控制塊隊列,先將其排成先來先服務(wù)的模式隊列int i;printf("n輸入作業(yè)數(shù):");scanf("%d",&n);for(i=0;i<n;i+) p=getpch(JCB); printf("n輸入作業(yè)名:"); scanf("%s",p->name); getch(); p->reachtime=i; printf("作業(yè)默認(rèn)到達(dá)時間:
25、%d",i); printf("n輸入作業(yè)要運行的時間:"); scanf("%d",&p->needtime); p->state='W' p->next=NULL; if(ready=NULL) ready=q=p; else q->next=p; q=p; void disp(JCB* q,int m) /顯示作業(yè)運行后的周轉(zhuǎn)時間及帶權(quán)周轉(zhuǎn)時間等 if(m=3) /顯示高響應(yīng)比算法調(diào)度作業(yè)后的運行情況 printf("n作業(yè)%s正在運行,估計其運行情況:n",q->
26、name); printf("開始運行時刻:%dn",q->starttime); printf("完成時刻:%dn",q->finishtime); printf("周轉(zhuǎn)時間:%fn",q->cycletime); printf("帶權(quán)周轉(zhuǎn)時間:%fn",q->cltime); printf("相應(yīng)比:%fn",q->super); getch(); else / 顯示先來先服務(wù),最短作業(yè)優(yōu)先算法調(diào)度后作業(yè)的運行情況 printf("n作業(yè)%s正在運行,
27、估計其運行情況:n",q->name); printf("開始運行時刻:%dn",q->starttime); printf("完成時刻:%dn",q->finishtime); printf("周轉(zhuǎn)時間:%fn",q->cycletime); printf("帶權(quán)周轉(zhuǎn)時間:%fn",q->cltime); getch(); void running(JCB *p,int m) /運行作業(yè) if(p=ready) /先將要運行的作業(yè)從隊列中分離出來 ready=p->n
28、ext; p->next=NULL; else q=ready; while(q->next!=p) q=q->next; q->next=p->next; p->starttime=times; /計算作業(yè)運行后的完成時間,周轉(zhuǎn)時間等等 p->state='R' p->finishtime=p->starttime+p->needtime; p->cycletime=(float)(p->finishtime-p->reachtime); p->cltime=(float)(p->cyc
29、letime/p->needtime); T1+=p->cycletime; T2+=p->cltime; disp(p,m); /調(diào)用disp()函數(shù),顯示作業(yè)運行情況 times+=p->needtime; p->state='F' printf("n%s has been finished!npress any key to continue.n",p->name); free(p); /釋放運行后的作業(yè) getch();void super() /計算隊列中作業(yè)的高響應(yīng)比 JCB *padv; padv=ready
30、; do if(padv->state='W'&&padv->reachtime<=times) padv->super=(float)(times-padv->reachtime+padv->needtime)/padv->needtime; padv=padv->next; while(padv!=NULL);void final() /最后打印作業(yè)的平均周轉(zhuǎn)時間,平均帶權(quán)周轉(zhuǎn)時間 float s,t; t=T1/n; s=T2/n; getch(); printf("nn作業(yè)已經(jīng)全部完成!"
31、;); printf("n%d個作業(yè)的平均周轉(zhuǎn)時間是:%f",n,t); printf("n%d個作業(yè)的平均帶權(quán)周轉(zhuǎn)時間是%f:nnn",n,s); void hrn(int m) /高響應(yīng)比算法 JCB *min; int i,iden; system("cls"); inital(); for(i=0;i<n;i+) p=min=ready;iden=1; super(); do if(p->state='W'&&p->reachtime<=times) if(iden) m
32、in=p;iden=0; else if(p->super>min->super) min=p; p=p->next; while(p!=NULL); if(iden) i-;times+; /printf("ntime=%d:tno JCB submib.wait.",time); if(times>1000)printf("nruntime is too long.error.");getch(); else running(min,m); /調(diào)用running()函數(shù) /for final(); /調(diào)用running(
33、)函數(shù)void sjf(int m) / 最短作業(yè)優(yōu)先算法 JCB *min; int i,iden; system("cls"); inital(); for(i=0;i<n;i+) p=min=ready;iden=1; do if(p->state='W'&&p->reachtime<=times) if(iden) min=p;iden=0; else if(p->needtime<min->needtime) min=p; p=p->next; while(p!=NULL) ; if(
34、iden) i-; /printf("ntime=%d:tno JCB submib.wait.",time); times+; if(times>100)printf("nruntime is too long.error");getch(); else running(min,m); /調(diào)用running()函數(shù) /for final(); /調(diào)用running()函數(shù)void fcfs(int m) /先來先服務(wù)算法 int i,iden; system("cls"); inital(); for(i=0;i<n;i+) p=ready;iden=1; do if(p->state='W'&&p->reachtime<=times) i
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鍋爐行業(yè)法律法規(guī)與合規(guī)管理考核試卷
- 生態(tài)農(nóng)業(yè)與面源污染控制考核試卷
- 中職幼兒衛(wèi)生常見疾病
- 急診急救班小講課
- 兒童呼吸道系統(tǒng)概述
- Pyralomicin-2b-生命科學(xué)試劑-MCE
- 6-Alkyne-F-araNAD-生命科學(xué)試劑-MCE
- 探索2025年成人教育線上學(xué)習(xí)新模式下的個性化學(xué)習(xí)體驗報告
- 2025年腫瘤精準(zhǔn)醫(yī)療臨床實踐研究進展報告
- 【高中語文】高一下學(xué)期期末適應(yīng)性模擬考試語文試題
- 唐俊蘭分享材料終稿
- AI驅(qū)動測試優(yōu)化
- 2022-2023學(xué)年遼寧省沈陽市高一下學(xué)期期末數(shù)學(xué)試題【含答案】
- 中國歷史地理
- 國考云在線考試系統(tǒng)試題
- 砼攪拌車駕駛員安全生產(chǎn)責(zé)任制
- 部編版三年級道德與法治下冊《大家的“朋友”》教案及教學(xué)反思
- 世界各國國別簡稱三位英文縮寫
- 光伏電站的運行維護
- 教導(dǎo)型組織模式一心靈管理(一)課件
- 小升初ST圖專題
評論
0/150
提交評論