資源描述:
《作業(yè)調(diào)度算法(先來先服務(wù)算法,短作業(yè)算法)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、WORD格式整理《操作系統(tǒng)》實驗報告題目:作業(yè)調(diào)度算法班級:網(wǎng)絡(luò)工程姓名:朱錦濤學(xué)號:E31314037專業(yè)資料值得擁有WORD格式整理一、實驗?zāi)康挠么a實現(xiàn)頁面調(diào)度算法,即先來先服務(wù)(FCFS)調(diào)度算法、短作業(yè)優(yōu)先算法、高響應(yīng)比優(yōu)先調(diào)度算法。通過代碼的具體實現(xiàn),加深對算法的核心的理解。二、實驗原理1.先來先服務(wù)(FCFS)調(diào)度算法FCFS是最簡單的調(diào)度算法,該算法既可用于作業(yè)調(diào)度,也可用于進(jìn)程調(diào)度。當(dāng)在作業(yè)調(diào)度中采用該算法時,系統(tǒng)將按照作業(yè)到達(dá)的先后次序來進(jìn)行調(diào)度,或者說它是優(yōu)先考慮在系統(tǒng)中等待時間最長的作
2、業(yè),而不管該作業(yè)所需執(zhí)行的時間的長短,從后備作業(yè)隊列中選擇幾個最先進(jìn)入該隊列的作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源和創(chuàng)建進(jìn)程。然后把它放入就緒隊列。2.短作業(yè)優(yōu)先算法SJF算法是以作業(yè)的長短來計算優(yōu)先級,作業(yè)越短,其優(yōu)先級越高。作業(yè)的長短是以作業(yè)所要求的運(yùn)行時間來衡量的。SJF算法可以分別用于作業(yè)和進(jìn)程調(diào)度。在把短作業(yè)優(yōu)先調(diào)度算法用于作業(yè)調(diào)度時,它將從外存的作業(yè)后備隊列中選擇若干個估計運(yùn)行時間最短的作業(yè),優(yōu)先將它們調(diào)入內(nèi)存。3、高響應(yīng)比優(yōu)先調(diào)度算法專業(yè)資料值得擁有WORD格式整理高響應(yīng)比優(yōu)先調(diào)度算法則是既考慮
3、了作業(yè)的等待時間,又考慮了作業(yè)的運(yùn)行時間的算法,因此既照顧了短作業(yè),又不致使長作業(yè)等待的時間過長,從而改善了處理機(jī)調(diào)度的性能。如果我們引入一個動態(tài)優(yōu)先級,即優(yōu)先級是可以改變的令它隨等待的時間的延長而增加,這將使長作業(yè)的優(yōu)先級在等待期間不斷地增加,等到足夠的時間后,必然有機(jī)會獲得處理機(jī)。該優(yōu)先級的變化規(guī)律可以描述為:優(yōu)先權(quán)=(等待時間+要求服務(wù)時間)/要求服務(wù)時間三、實驗內(nèi)容源程序:#include#include#includestructwork{int
4、id;intarrive_time;專業(yè)資料值得擁有WORD格式整理intwork_time;intwait;floatpriority;};typedefstructsjf_work{structworks_work;//數(shù)據(jù)域structsjf_work*pNext;//指針域}NODE,*PNODE;voidFCFS();voidSJF();voidshowmenu();boolIs_empty(PNODEpHead);intcnt_work(PNODEpHead);PNODEdo_work(PNODE
5、pHead,int*w_finish_time,inti);專業(yè)資料值得擁有WORD格式整理voidshow(int*w_finish_time,inti,PNODEq,int*w_rel_time);voidHRRN();PNODEpriorit(PNODEpHead);voiddo_work_1(PNODEpHead,int*w_finish_time,inti);intmain(){intchoice;//設(shè)置選擇數(shù)showmenu();//顯示菜單scanf("%d",&choice);while(c
6、hoice!=0)//選擇算法{switch(choice){case1:printf("您選擇的是先來先服務(wù)算法:");專業(yè)資料值得擁有WORD格式整理FCFS();break;case2:printf("您選擇的是短作業(yè)優(yōu)先算法:");SJF();break;case3:printf("您選擇的是高響應(yīng)比優(yōu)先調(diào)度算法");HRRN();break;default:printf("請重新選擇!");break;}printf("");printf("下面是菜單,請繼續(xù),或者按‘0’退出");
7、showmenu();專業(yè)資料值得擁有WORD格式整理scanf("%d",&choice);}printf("感謝您使用本系統(tǒng),再見!");return0;}voidFCFS(){intj,k;intw_rel_time[5];intw_finish_time[5];floatrel_time=0;structworktemp;inti;structworkw[5];srand(time(0));專業(yè)資料值得擁有WORD格式整理for(i=0;i<5;i++){w[i].id=rand()%10;w[i].
8、arrive_time=rand()%10;w[i].work_time=rand()%10+1;}for(j=0;j<5;j++){printf("第%d個作業(yè)的編號是:%dt",j+1,w[j].id);printf("第%d個作業(yè)到達(dá)時間:%dt",j+1,w[j].arrive_time);printf("第%d個作業(yè)服務(wù)時間:%dt",j+1,w[j].work_time);prin