試驗三-作業(yè)調度實驗_第1頁
試驗三-作業(yè)調度實驗_第2頁
試驗三-作業(yè)調度實驗_第3頁
試驗三-作業(yè)調度實驗_第4頁
試驗三-作業(yè)調度實驗_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEPAGE5實驗三作業(yè)調度試驗一.目的要求用高級語言編寫和調試一個或多個作業(yè)調度的模擬程序,以加深對作業(yè)調度算法的理解。二.為單道批處理系統(tǒng)設計一個作業(yè)調度程序由于在單道批處理系統(tǒng)中,作業(yè)一投入運行,它就占有計算機的一切資源直到作業(yè)完成為止,因此調度作業(yè)時不必考慮它所需要的資源是否得到滿足,它所占用的CPU時限等因素。作業(yè)調度算法:采用先來先服務(FCFS)調度算法,即按作業(yè)提交的先后次序進行調度??偸鞘紫日{度在系統(tǒng)中等待時間最長的作業(yè)。每個作業(yè)由一個作業(yè)控制塊JCB表示,JCB可以包含如下信息:作業(yè)名、提交時間、所需的運行時間、所需的資源、作業(yè)狀態(tài)、鏈指針等等。作業(yè)的狀態(tài)可以是等待W(Wait)、運行R(Run)和完成F(Finish)三種狀態(tài)之一。每個作業(yè)的最初狀態(tài)總是等待W。各個等待的作業(yè)按照提交時刻的先后次序排隊,總是首先調度等待隊列中隊首的作業(yè)。每個作業(yè)完成后要打印該作業(yè)的開始運行時刻、完成時刻、周轉時間和帶權周轉時間,這一組作業(yè)完成后要計算并打印這組作業(yè)的平均周轉時間、帶權平均周轉時間。調度算法的流程圖如下:三作業(yè)等待算法主要代碼實現(xiàn)作業(yè)等待算法:分別采用先來先服務(FCFS),最短作業(yè)優(yōu)先(SJF)、響應比高者優(yōu)先(HRN)的調度算法。對每種調度算法都要求打印每個作業(yè)開始運行時刻、完成時刻、周轉時間、帶權周轉時間,以及這組作業(yè)的平均周轉時間及帶權平均周轉時間。主要代碼實現(xiàn):1.最高響應比調度算法voidhrn(intm){JCB*min;inti,iden;for(i=0;i<n;i++){/*n個作業(yè)需要調度n次*/p=min=head;iden=1;super();/*計算當前作業(yè)隊列中等待狀態(tài)的作業(yè)的響應比*//*do-while語句在每次調度時找等待作業(yè)中響應比最高的作業(yè),用min指向*/do{if(p->state=='W'&&p->ts<=time)if(iden){min=p;iden=0;//用min指向第一個等待狀態(tài)的作業(yè)}elseif(p->super>min->super)min=p;//用min指向響應比最高的結點p=p->next;}while(p!=NULL);if(iden){//iden=1時表示iden的值沒有改變,隊列中沒有等待狀態(tài)的作業(yè)i--;time++;cout<<"time="<<time<<"noJCBsubmib...wait..."<<endl;if(time>1000){cout<<"runtimeistoolong...error...\n"<<endl;cin.get();}}else{//iden=0時表示隊列中有等待狀態(tài)的作業(yè),min指向該作業(yè)并運行該作業(yè)running(min,m);}}}2.最短作業(yè)優(yōu)先調度算法voidsjf(intm){JCB*min;inti,iden;for(i=0;i<n;i++){p=min=head;iden=1;do{if(p->state=='W'&&p->ts<=time)//等待狀態(tài)且到達時間小于當前時間if(iden){min=p;iden=0;}elseif(p->ntime<min->ntime)min=p;p=p->next;}while(p!=NULL);if(iden){i--;cout<<"time="<<time<<"noJCBsubmib...wait...\n"<<endl;time++;if(time>100){cout<<"runtimeistoolong...error\n"<<endl;cin.get();}}else{running(min,m);}}}3.先來先服務調度算法voidfcfs(intm){inti,iden;cout<<"thejcbisruning...\n"<<endl;for(i=0;i<n;i++){p=head;iden=1;do{if(p->state=='W'&&p->ts<=time)iden=0;if(iden)p=p->next;}while(p!=NULL&&iden);if(iden){i--;cout<<"time="<<time<<"noJCBsubmib...wait...\n"<<endl;time++;if(time>100){cout<<"runtimeistoolong...error\n"<<endl;cin.get();}}else{running(p,m);}}}voidrunjcb(intm){cout<<"startrunningjcb...\n"<<endl;switch(m){case1:fcfs(m);break;case2:sjf(m);break;case3:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論