freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

作業(yè)調(diào)度操作系統(tǒng)課程設(shè)計報告-資料下載頁

2024-08-10 18:46本頁面
  

【正文】 比較三種算法的平均周轉(zhuǎn)時間,取最小值得到最短周轉(zhuǎn)時間的算法名稱輸出結(jié)果結(jié)束NY 總結(jié)最優(yōu)調(diào)度算法第4章 程序?qū)崿F(xiàn)方法主函數(shù)中主要運用了printf()函數(shù)。printf()函數(shù)用于將程序的主界面在屏幕上打印輸出,提示用戶進行選擇來調(diào)度相應(yīng)的作業(yè)調(diào)度算法實現(xiàn)不同的作業(yè)調(diào)度算法。主程序主要實現(xiàn)的是作業(yè)管理的主界面菜單的顯示,利用switch語句實現(xiàn)主菜單的調(diào)用。switch()函數(shù)正是用來接收用戶從鍵盤上輸入的選擇信息,根據(jù)用戶輸入的選擇來調(diào)度相應(yīng)的調(diào)度算法進而使函數(shù)運行實現(xiàn)相應(yīng)的調(diào)度算法功能。本程序設(shè)置數(shù)字鍵選項1~6,分別實現(xiàn)調(diào)用先來先服務(wù)算法(fcfs)、調(diào)用短作業(yè)優(yōu)先算法(sjf)、調(diào)用高響應(yīng)者優(yōu)先算法(xyb)、作業(yè)的創(chuàng)建(creat)、調(diào)用總結(jié)函數(shù)(zj)和退出程序功能。在運行菜單中,用戶輸入1~6的任意鍵,即進入對應(yīng)的文件操作,完成操作后,可繼續(xù)重復(fù)執(zhí)行菜單選項以實現(xiàn)其他的文件操作功能。 主程序?qū)崿F(xiàn)代碼主程序代碼如下:include define SIZE 4struct jcb{ int name。 float tjtime。 float runtime。 float starttime。 float finishtime。 float turntime。float xyb。struct jcb *next。}sr[SIZE],sw[SIZE],sq[SIZE]。float pj[3]={0}。int main(){int x。printf(\n\n\n\n)。printf(Please choose the number: \n)。printf(| choose[1]:FCFS \n)。printf(| choose[2]:SJF \n)。printf(| choose[3]:XYB \n)。printf(| choose[4]:CREAT \n)。printf(| choose[5]:ZJ \n)。printf(| choose[6]:EXIT \n)。printf(\n)。scanf(%d,amp。x)。switch (x){case 1:fcfs()。 break。case 2:sjf()。 break。case 3:xyyb()。 break。case 4:creat()。break。case 5:zj()。break。case 6:exit(0)。}} 主程序運行界面設(shè)置數(shù)字鍵選項1~6,分別實現(xiàn)調(diào)用先來先服務(wù)算法(fcfs)、調(diào)用短作業(yè)優(yōu)先算法(sjf)、調(diào)用高響應(yīng)者優(yōu)先算法(xyb)、作業(yè)的創(chuàng)建(creat)、調(diào)用總結(jié)函數(shù)(zj)和退出程序的功能。 主程序運行界面 創(chuàng)建作業(yè)函數(shù)的實現(xiàn) 函數(shù)說明根據(jù)宏定義中定義的SIZE的大小,本次課程設(shè)計的程序中為作業(yè)設(shè)定了四個作業(yè)的調(diào)度情況,在具體的運行過程中,首先界面提示輸入文件名,輸入文件名“1”后界面提示分別輸入作業(yè)的名稱、提交時間和運行時間,整型數(shù)據(jù)和浮點型數(shù)據(jù)均可,中間用空格隔開。 創(chuàng)建函數(shù)實現(xiàn)代碼creat()創(chuàng)建函數(shù)用于創(chuàng)建文件并把作業(yè)的相關(guān)信息如:作業(yè)的名稱(name)、作業(yè)的提交時間(tjtime)和作業(yè)的運行時間(runtime)這些基本信息寫入文本文件中,使程序運行時當(dāng)調(diào)用不同的調(diào)度算法時作業(yè)的基本信息不被破壞。同時為以后運行時對選用不同算法而算出的平均周轉(zhuǎn)時間進行比較。創(chuàng)建函數(shù)程序代碼如下:creat(){FILE *fp。 int i,j。 char a[20]。 pj[0]=0。pj[1]=0。pj[2]=0。printf(\t\t\twele to CREAT\n)。 printf(qing shu ru wen jian ming\n)。 scanf(%s,a)。 if((fp=fopen(a,wb))==NULL) /*以二進制文件寫入*/ {printf(cannot open file\n)。 } for(i=0。iSIZE。i++) {printf(input number %d record39。s name,tjtime,runtime:\n,i+1)。 scanf(%d%f%f,amp。sr[i].name,amp。sr[i].tjtime,amp。sr[i].runtime)。 if(fwrite(amp。sr[i],sizeof(struct jcb),1,fp)!=1) printf(file write error\n)。 } fclose(fp)。printf(please press anykey return main()\n)。getchar()。getchar()。main()。} 創(chuàng)建函數(shù)運行界面依次輸入作業(yè)的名稱(name)、作業(yè)的提交時間(tjtime)和作業(yè)的運行時間(runtime),中間用空格隔開。 創(chuàng)建函數(shù)運行界面 先來先服務(wù)函數(shù)先來先服務(wù)算法,每次調(diào)度是從后備作業(yè)隊列中,選擇一個最先進入該隊列的作業(yè),把處理機分配給它,使之投入運行。通過一系列運算求出其作業(yè)的開始時間、完成時間、周轉(zhuǎn)時間。最后求出此調(diào)度算法下的平均周轉(zhuǎn)時間,并將所求出的數(shù)據(jù)信息輸出在屏幕上。該算法補角有利于長作業(yè),而不利短作業(yè)。先來先服務(wù)代碼如下:fcfs(){ FILE *fp。 int j。 char b[20]。 struct jcb *t, *p,*q,*head。 p=q=(struct jcb *)malloc(sizeof(struct jcb))。 head=NULL。pj[0]=0。printf(\t\t\twele to fcfs\n)。 printf(qing shu ru wen jian ming\n)。 scanf(%s,b)。 if((fp=fopen(b,rb))==NULL) {printf(cannot open file\n)。 printf(please press anykey return:\n)。 getchar()。getchar()。 main()。 }printf(wele e to fcfo:\n)。 for(j=0。jSIZE。j++){fread(amp。sr[j],sizeof(struct jcb),1,fp)。 if((j+1)==1) head=p。 else qnext=p。 t=q。 q=p。 p=(struct jcb *)malloc(sizeof(struct jcb))。 qname=sr[j].name。 qtjtime=sr[j].tjtime。 qruntime=sr[j].runtime。 if(j==0) qstarttime=qtjtime。 else qstarttime=tfinishtime。 qfinishtime=(qstarttime+qruntime)。 qturntime=(qfinishtimeqtjtime)。 }qnext=p。pnext=NULL。p=head。printf(name tjtime runtime starttime finishtime turntime\n)。while(pnext!=NULL){printf(%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n,pname,ptjtime,pruntime,pstarttime,pfinishtime,pturntime)。pj[0]=pj[0]+pturntime。p=pnext。}pj[0]=pj[0]/SIZE。printf(fcfo39。s average turntime:%f\n,pj[0])。printf(please press any key return main()\n)。getchar()。getchar()。main()。} 程序運行界面在主函數(shù)運行界面下按“1”并按回車鍵進入先來先服務(wù)調(diào)度算法運行界面。然后創(chuàng)建函數(shù)運行,對各個作業(yè)進行開始時間、運行時間、等待時間周轉(zhuǎn)時間的設(shè)定。輸入文件名并回車,屏幕輸出由先來先服務(wù)調(diào)度算法執(zhí)行后各作業(yè)的執(zhí)行情況。若輸入錯誤的文件名,則輸出“cannot open file”。按任意鍵返回主界面重新輸入。 先來先服務(wù)運行短作業(yè)(進程)優(yōu)先調(diào)度算法SJ(P)F,是對短作業(yè)或短進程優(yōu)先調(diào)度的算法。它們可以分別用于作業(yè)調(diào)度和作業(yè)進程。短作業(yè)優(yōu)先(SJF)的調(diào)度算法時從后備隊列中選擇的一個或若干個估計運行時間最短的作業(yè),將它們調(diào)入內(nèi)存運行。SJP調(diào)度算法能有效地降低作業(yè)的平均等待時間,提高系統(tǒng)吞吐量。短作業(yè)優(yōu)先代碼如下:sjf(){FILE *fp。 int i,j,name。 float t1,t2,t3,t4,t5,t6。 struct jcb *t, *p,*q,*head。 char b[20]。 p=q=(struct jcb *)malloc(sizeof(struct jcb))。 head=NULL。pj[1]=0。printf(\t\t\twele to sjf\n)。printf(qing shu ru wen jian ming\n)。 scanf(%s,b)。 if((fp=fopen(b,rb))==NULL) {printf(cannot open file\n)。printf(please press anykey return:\n)。 getchar()。getchar()。 main()。 } printf(wele e to sjf:\n)。 fread(amp。sw[0],sizeof(struct jcb),1,fp)。 for(i=1。iSIZE1。i++){fread(amp。sw[i],sizeof(struct jcb),1,fp)。 for(j=i+1。jSIZE。j++) {fread(amp。sw[j],sizeof(struct jcb),1,fp)。 if(sw[j].runtimesw[i].runtime) {name=sw[i].name。 sw[i].name=sw[j].name。 sw[j].name=name。 t1=sw[i].tjtime。 sw[i].tjtime=sw[j].tjtime。 sw[j].tjtime=t1。 t2=sw[i].runtime。 sw[i].runtime=sw[j].runtime。 sw[j].runtime=t2。 }}for(j=0。jSIZE。j++){/*fread(amp。sw[j],sizeof(struct jcb),1,fp)。*/ if((j+1)==1) head=p。 else qnext=p。 t=q。 q=p。 p=(struct jcb *)malloc(sizeof(struct jcb))。 qname=sw[j].name。 qtjtime=sw[j].tjtime。 qruntime=sw[j].runtime。 if(j==0) qstarttime=qtjtime。 else qstarttime=tfinishtime。 qfinishtime=(qstarttime+qruntime)。 qturntime=(qfinishtimeqtjtime)。 } qnext=p。pnext=NULL。p=head。}printf(name tjtime runtime starttime finishtime turntime\n)。while(pnext!=NULL){printf(%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n,pname,ptjtime,pruntime,pstarttime,pfinishtime,pturntime)。pj[1]=pj[1]+pturntime。p=pnext。}pj[1]=pj[1]/SIZE。printf(sjf39。s average turntime:%f\n,pj[1])。printf(please press any key return main()\n)。get
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1