廣東工業(yè)大學(xué)操作系統(tǒng)實(shí)驗(yàn)二――作業(yè)調(diào)度實(shí)驗(yàn)_第1頁
廣東工業(yè)大學(xué)操作系統(tǒng)實(shí)驗(yàn)二――作業(yè)調(diào)度實(shí)驗(yàn)_第2頁
廣東工業(yè)大學(xué)操作系統(tǒng)實(shí)驗(yàn)二――作業(yè)調(diào)度實(shí)驗(yàn)_第3頁
廣東工業(yè)大學(xué)操作系統(tǒng)實(shí)驗(yàn)二――作業(yè)調(diào)度實(shí)驗(yàn)_第4頁
廣東工業(yè)大學(xué)操作系統(tǒng)實(shí)驗(yàn)二――作業(yè)調(diào)度實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)二:作業(yè)調(diào)度實(shí)驗(yàn)實(shí)驗(yàn)項(xiàng)目名稱:作業(yè)調(diào)度實(shí)驗(yàn)實(shí)驗(yàn)項(xiàng)目的性質(zhì):驗(yàn)證性實(shí)驗(yàn)課程名稱:操作系統(tǒng)實(shí)驗(yàn)計劃時間:2小時一、實(shí)驗(yàn)?zāi)康谋緦?shí)驗(yàn)要求學(xué)生模擬作業(yè)調(diào)度的實(shí)現(xiàn),用高級語言編寫和調(diào)試一個或多個作業(yè)調(diào)度模擬程序,了解作業(yè)調(diào)度在操作系統(tǒng)中的作用,從而加深對作業(yè)調(diào)度算法的理解。二、實(shí)驗(yàn)內(nèi)容和要求單批處理系統(tǒng)作業(yè)調(diào)度器的設(shè)計(1)為單通道處理系統(tǒng)編譯和調(diào)試作業(yè)調(diào)度模擬程序。(2)作業(yè)調(diào)度算法:分別采用FCFS、SJF和HRN的調(diào)度算法。(3)在單批處理系統(tǒng)中,作業(yè)一投入運(yùn)行,就占用計算機(jī)的所有資源,直到作業(yè)完成。因此,在調(diào)度作業(yè)時,沒有必要考慮它需要的資源是否得到滿足、它占用的CPU時間限制以及其他因素。(

2、4)每個作業(yè)由作業(yè)控制塊JCB表示,它可以包含以下信息:作業(yè)名稱、提交時間、所需運(yùn)行時間、所需資源、作業(yè)狀態(tài)、鏈指針等。作業(yè)的狀態(tài)可以是等待、運(yùn)行和完成三種狀態(tài)之一。每個作業(yè)的初始狀態(tài)總是等待W.(5)對于每種調(diào)度算法,需要打印每項(xiàng)任務(wù)的開始時間、完成時間、周轉(zhuǎn)時間、加權(quán)周轉(zhuǎn)時間,以及這組任務(wù)的平均周轉(zhuǎn)時間和加權(quán)平均周轉(zhuǎn)時間,并比較各種算法的優(yōu)缺點(diǎn)。三、實(shí)驗(yàn)設(shè)計方案和原則假設(shè)在單個批處理環(huán)境中有四個作業(yè)JOB1、JOB2、JOB3、JOB4,它們進(jìn)入系統(tǒng)的時間和估計運(yùn)行時間是已知的。先來先服務(wù)(FCFS)、最短作業(yè)優(yōu)先(SJF)和高響應(yīng)率優(yōu)先(HRN)調(diào)度算法分別用于計算作業(yè)的平均周轉(zhuǎn)時間和加

3、權(quán)平均周轉(zhuǎn)時間。工作I的周轉(zhuǎn)時間:Ti=Tci-Tpi作業(yè)的平均周轉(zhuǎn)時間:T=任務(wù)一的加權(quán)周轉(zhuǎn)時間:加權(quán)=時間/時間工作的平均加權(quán)周轉(zhuǎn)時間:W=先到先服務(wù)調(diào)度算法(FCFS):每次調(diào)度都是從備份作業(yè)隊列中選擇一個或多個首先進(jìn)入隊列的作業(yè),將它們轉(zhuǎn)移到內(nèi)存中,為它們分配資源,創(chuàng)建進(jìn)程,然后將它們放入就緒隊列。當(dāng)在進(jìn)程調(diào)度中使用FCFS算法時,首先進(jìn)入隊列的進(jìn)程被從用于每個調(diào)度的就緒隊列中選擇,并且處理器被分配以使其投入運(yùn)行。該過程不會放棄處理器,直到它完成或某個事件阻止了匹配。最短作業(yè)優(yōu)先(SJF):一次從備份隊列中選擇一個或多個預(yù)計運(yùn)行時間最短的作業(yè),并將其轉(zhuǎn)移到內(nèi)存中運(yùn)行。HRN:一次從備份

4、隊列中選擇一個或多個估計響應(yīng)率最高的作業(yè),并將它們轉(zhuǎn)移到內(nèi)存中運(yùn)行。響應(yīng)比率Rp=作業(yè)響應(yīng)時間/運(yùn)行時間=作業(yè)等待時間作業(yè)運(yùn)行時間=1作業(yè)等待時間/作業(yè)運(yùn)行時間對于每種調(diào)度算法,需要打印每項(xiàng)任務(wù)的開始運(yùn)行時間、完成時間、周轉(zhuǎn)時間、加權(quán)周轉(zhuǎn)時間,以及這組任務(wù)的平均周轉(zhuǎn)時間和加權(quán)平均周轉(zhuǎn)時間,并比較各種算法的優(yōu)缺點(diǎn)。附件:#包括“stdio.h”#包括#包括# define getpch(type)(type *)malloc(size of(type)#定義空值0結(jié)構(gòu)工作時間浮動Tb;/作業(yè)運(yùn)行時間浮動Tc;/作業(yè)完成時間浮鈦;/周轉(zhuǎn)時間浮動作業(yè)指導(dǎo)書;/帶權(quán)利的周轉(zhuǎn)時間;結(jié)構(gòu)jcb /*定義作

5、業(yè)控制塊JCB */char名稱10;/作業(yè)名稱漂浮枯草桿菌;/作業(yè)提交時間浮點(diǎn)運(yùn)行時;/作業(yè)所需的運(yùn)行時間char資源;/所需資源浮動Rp。/備份作業(yè)響應(yīng)比率充電狀態(tài);/作業(yè)狀態(tài)結(jié)構(gòu)工作時間wt;結(jié)構(gòu)jcb*鏈接;/鏈指針*jcb_ready=NULL,* j;typedef結(jié)構(gòu)jcb JCB浮子T=0;Voidsort()。JCB *第一,*第二;int insert=0;if(JCB _ ready=NULL)| |(j-sub ime)(JCB _ ready-sub ime)/*作業(yè)提交時間最短的,插入隊首*/j-link=JCB _就緒;JCB _就緒=j;t=j-枯草桿菌。j-R

6、p=1;else /*作業(yè)比較提交時間,插入適當(dāng)?shù)奈恢弥?/first=jcb _ ready第二=第一鏈路;同時(第二!=空)if(j-sub ime)(第二個子ime)/*若插入作業(yè)比當(dāng)前作業(yè)提交時間短,*/ /*插入到當(dāng)前作業(yè)前面*/j-link=秒;第一鏈路=j。秒=空;insert=1;else /*插入作業(yè)優(yōu)先數(shù)最低,則插入到隊尾*/第一=第一鏈路;第二=第二鏈路;if(insert=0)first-link=j;void SJFget()/*獲取隊列中的最短作業(yè)*/JCB *前部,*mintime,* m后部;int ipmove=0;mintime=jcb _ ready后部=

7、最小時間鏈接;同時(后方!=空)如果(后部!=空)(T=后-子時間)(mintime-runtime)(后-運(yùn)行時)front=mintimemintime=后部;后部=后連桿;ipmove=1;其他后部=后連桿;if (ipmove=1)前向鏈路=最小時間鏈路;最小時間鏈接=JCB _就緒;jcb _ ready=mintimevoid HRNget()/*獲取隊列中的最高響應(yīng)作業(yè)*/JCB *前部,*mintime,* m后部;int ipmove=0;mintime=jcb _ ready后部=最小時間鏈接;同時(后方!=空)如果(后部!=空)(T=后-子詞)(mintime-Rp)(后

8、-Rp)front=mintimemintime=后部;后部=后連桿;ipmove=1;其他后部=后連桿;if (ipmove=1)前向鏈路=最小時間鏈路;最小時間鏈接=JCB _就緒;jcb _ ready=mintime空的輸入()/*建立作業(yè)控制塊函數(shù)*/int i,numprintf(n請輸入作業(yè)數(shù)“:”);scanf(% d ,編號);對于(1=0;名稱);printf(n輸入作業(yè)提交時刻:);scanf(% f ,j-sub ime);printf(n輸入作業(yè)運(yùn)行時間:);scanf(% f ,j-運(yùn)行時);printf( n );j狀態(tài)=w。j-link=空;sort();/*調(diào)

9、用分類函數(shù)*/int空間()int l=0;JCB * jr=jcb _就緒;while(jr!=空)l;Jr=Jr-link;返回(l);void disp(JCB* jr,int select) /*建立作業(yè)顯示函數(shù),用于顯示當(dāng)前作業(yè)*/如果(select=3) printf(n作業(yè)服務(wù)時間響應(yīng)比運(yùn)行時刻完成時刻周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間 n );else printf(n作業(yè)服務(wù)時間運(yùn)行時刻完成時刻周轉(zhuǎn)時間帶權(quán)周轉(zhuǎn)時間 n );printf(“| % s t”,Jr-name);printf( |%.2ft ,Jr-運(yùn)行時);if (select=3) printf( |%.2f ,Jr-Rp

10、);if (j=jr)printf( |%.2ft ,jr-wt .結(jié)核病);printf( |%.2f ,jr-wt .技術(shù)合作);printf( |%.2f t ,jr-wt .ti);printf( |%.2f ,jr-wt .wi);printf( n );int destroy() /*建立作業(yè)撤消函數(shù)(作業(yè)運(yùn)行結(jié)束,撤消作業(yè))*/printf(n作業(yè)%s已完成,j-name);免費(fèi)(j);返回(1);無效檢查(int select) /*建立作業(yè)查看函數(shù)*/JCB * jrprintf(n *當(dāng)前正在運(yùn)行的作業(yè)是:%s ,j-name);/*顯示當(dāng)前運(yùn)行作業(yè)*/顯示(j,選擇);jr=jcb _ readyprintf(n *當(dāng)前就緒隊列狀態(tài)為: n );/*顯示就緒隊列狀態(tài)*/while(jr!=空)Jr-Rp=(T-Jr-次時間)/Jr-運(yùn)行時間;顯示(小,選擇);Jr=Jr-link;銷毀();無效運(yùn)行(JCB* jr) /*建立作業(yè)就緒函數(shù)(作業(yè)運(yùn)行時間到,置就緒狀態(tài)*/如果結(jié)核=結(jié)核;else jr-wt .結(jié)核=日-分鐘;jr-wt .Tc=jr-wt .運(yùn)行時間;jr-wt .Ti=jr-wt .小TC-枯草桿菌屬;jr-wt .Wi=jr-wt .ti/Jr-運(yùn)行時;T=jr-wt .Tc .int main()

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論