版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《操作曲疣》賣險(xiǎn)想告
題目:作業(yè)調(diào)度算法
班級(jí):網(wǎng)絡(luò)工程
姓名:朱錦濤
學(xué)號(hào):E31314037
一、實(shí)驗(yàn)?zāi)康?/p>
用代碼實(shí)現(xiàn)頁面調(diào)度算法,即先來先服務(wù)(FCFS)調(diào)度算
法
、短作業(yè)優(yōu)先算法、高響應(yīng)比優(yōu)先調(diào)度算法。通過代碼得具體實(shí)現(xiàn),
加深對(duì)算法得核心得理解.
二、實(shí)驗(yàn)原理
1、先來先服務(wù)(FCFS)調(diào)度算法
FCFS就是最簡(jiǎn)單得調(diào)度算法,該算法既可用于作業(yè)調(diào)度,也可
用于進(jìn)程調(diào)度。當(dāng)在作業(yè)調(diào)度中采用該算法時(shí),系統(tǒng)將按照作業(yè)到達(dá)
得先后次序來進(jìn)行調(diào)度,或者說它就是優(yōu)先考慮在系統(tǒng)中等待時(shí)間最
長得作業(yè),而不管該作業(yè)所需執(zhí)行得時(shí)間得長短,從后備作業(yè)隊(duì)列中
選擇幾個(gè)最先進(jìn)入該隊(duì)列得作業(yè),將它們調(diào)入內(nèi)存,為它們分配資源
與創(chuàng)建進(jìn)程.然后把它放入就緒隊(duì)列。
2、短作業(yè)優(yōu)先算法
SJF算法就是以作業(yè)得長短來計(jì)算優(yōu)先級(jí),作業(yè)越短,其優(yōu)先級(jí)
越高。作業(yè)得長短就是以作業(yè)所要求得運(yùn)行時(shí)間來衡量得。SJF算
法可以分別用于作業(yè)與進(jìn)程調(diào)度。在把短作業(yè)優(yōu)先調(diào)度算法用于作業(yè)
調(diào)度時(shí),它將從外存得作業(yè)后備隊(duì)列中選擇若干個(gè)估計(jì)運(yùn)行時(shí)間最短
得作業(yè),優(yōu)先將它們調(diào)入內(nèi)存。
3、高響應(yīng)比優(yōu)先調(diào)度算法
高響應(yīng)比優(yōu)先調(diào)度算法則就是既考慮了作業(yè)得等待時(shí)間,又考慮
了作業(yè)得運(yùn)行時(shí)間得算法,因此既照顧了短作業(yè),又不致使長作業(yè)等
待得時(shí)間過長,從而改善了處理機(jī)調(diào)度得性能。
如果我們引入一個(gè)動(dòng)態(tài)優(yōu)先級(jí),即優(yōu)先級(jí)就是可以改變得令它隨
等待得時(shí)間得延長而增加,這將使長作業(yè)得優(yōu)先級(jí)在等待期間不斷地
增加,等到足夠得時(shí)間后,必然有機(jī)會(huì)獲得處理機(jī).該優(yōu)先級(jí)得變化規(guī)
律可以描述為:
優(yōu)先權(quán)=(等待時(shí)間+要求服務(wù)時(shí)間)/要求服務(wù)時(shí)間
三、實(shí)驗(yàn)內(nèi)容
源程序:
#inc1ude<stdio,h>
#include<stdlib、h>
#include<time>h>
structwork
{
?intid;
intarrive_time;
intwork_time;
intwait;
f1oatpriority;
);
typedefstructsjf_work
{
structworks_work;//數(shù)據(jù)域
ostructsjf_work*pNext;〃指針域
}NODE,*PNODE;
voidFCFS();
voidSJF();
voidshowmenu();
boolIs_empty(PNODEpHead);
intcnt_work(PNODEpHead);
PNODEdo_work(PNODEpHead,int*w_finish_time,
inti);
voidshow(int*w_finish_time,inti,PNODEq,
int*w_re;
voidHRRN();
PNODEpriorit(PNODEpHead);
voiddo_work_l(PNODEpHead,int*w_finish_ti
me,inti);
intmain()
{
intchoice;//設(shè)置選擇數(shù)
showmenu();//顯示菜單
oscanf("%d",&choice);
owhile(choice!=0)〃選擇算法
switch(choice)
1ocase1:
,printf("您選擇得就是先來先服務(wù)算法:\n");
1?&?FCFS();
…break;
「case2:
printf("您選擇得就是短作業(yè)優(yōu)先算法:\n”);
,SJF();
1>break;
(ocase3:
,>>>printf("您選擇得就是高響應(yīng)比優(yōu)先調(diào)度算法'
n”);
…HRRN();
1>break;
default:
ooprintf(”請(qǐng)重新選擇!n);
o?>break;
b}
?oprintf("\n");
sprintf("下面就是菜單,請(qǐng)繼續(xù),或者按‘0'退出");
oshowmenu();
oscanf("%d”,&choice);
。}
Bprintf("感謝您使用本系統(tǒng),再見!”);
return0;
)
voidFCFS()
{
&intj,k;
intw_re1_time⑸;
ointw_finish_time[5];
floatrel_time=0;
structworktemp;
inti;
struetworkw[5];
srand(time(0));
for(i=0;i<5;i++)
3{
ow[i]、id=rand()%10;
?w[i]、arrive_time=rand()%10;
?w[iKwork_time=rand()%10+l;
9}
for(j=0;j<5;j++)
{
…printf("第%d個(gè)作業(yè)得編號(hào)就是:%d\t”,j+1,w[j]、
id);
o?printf("第%d個(gè)作業(yè)到達(dá)時(shí)間:%d\t”,j+l,w[j]、arrive
_time);
66printf(“第%(1個(gè)作業(yè)服務(wù)時(shí)間:%d\t",j+1,w[j]、
work_time);
printf("\n");
}
3for(j=1;j<5;j++)
ofor(k=0;k<5-j;k++)
66{
oooif(w[k]、arrive_time>w[k+1]、arriv
e_time)
3{
。otemp=w[k];
sw[k]=wLk+11;
?w[k+l]=temp;
od}
o}
oprintf(w\n");
w_finish_time[0]=w[0]、arrive_time
+w[0]、work_time;
6ofor(j=0;j<5;j++)
oif(w_finish_timeEj]〈w[j+1]、arrive_time)
oow_finish_timeEj+1]=w[j+1]、arrive_time+
wEj+1]>work_time;
>}
oooeIse
ooow_finish_time[j+1]=w_finish_time[j]+
w[j+l]、work_time;
0}
6for(j=0;j<5;j++)
oow_rel_time[j]=w_finish_time[j]-w[j]、
arrive_time;
6for(j=0;j<5;j++)
,(
o3rel_time+=w_rel_timeEj];
6for(j=0;j<5;j++)
printf(”第%(1個(gè)系統(tǒng)執(zhí)行得作業(yè)到達(dá)時(shí)間:%d”
arrive_time);
sprintf("編號(hào)就是:%d",w[j]、id);
sprintf("服務(wù)時(shí)間就是:%d",w[j]>work_time);
oooprintf("完成時(shí)間就是:%d",w_finish_time
LjD;
printf("周轉(zhuǎn)時(shí)間就是:%d”,w_re1—time
EjD;
??printf("\n");
)
printf("平均周轉(zhuǎn)時(shí)間:%f\n",re1_time/5);
)
voidSJF()
{
intw_rel_time[10];
?intw_finish_time[10];
*f1oatre1time0;
srand(time(O));
?inti;
ointj=0;
。PNODEpHead=(PNODE)mal1oc(sizeof(NODE));
oif(NULL==pHead)
(
printf("分配失敗,程序終止!\n");
oexit(-1);
}
PNODEpTai1=pHead;
spTail->pNext=NULL;〃定義該鏈表有頭結(jié)點(diǎn),
且第一個(gè)節(jié)點(diǎn)初始化為空
?for(i=0;i<10;i++)
。{
PNODEpNew=(PNODE)mal1oc(sizeof(NODE));
if(NULL==pNew)
oooprintf("分配失敗,程序終止!\n");
?t>t>exit(-1);
}
oopNew—>s_work、id=rand()%100;
,pNew->s_work^arrive_time=rand()%10;
opNew—>s_work,work_time=rand()%10+l;
opTai1—>pNext=pNew;
spNew->pNext=NULL;
??pTai1=pNew;
}
PNODEp=pHead—〉pNext;//p指向第一個(gè)節(jié)點(diǎn)
owhile(NULL!=p)
>(
ooprintf("第%d個(gè)作業(yè)得編號(hào)就是:%d\t”,j+1,p—〉
s_work、id);
printf(”第%(1個(gè)作業(yè)到達(dá)時(shí)間:%d\t",j+l,p—〉s_w
ork、arrive_time);
ooprintf("第%d個(gè)作業(yè)服務(wù)時(shí)間:%d\t",j+l,p->s_wo
rk、work_time);
ooprintf("\n");
oop=p—>pNext;
?printf("\n");
6j++;
。}
>p=pHead"—>pNext;
sPNODEq=p;〃p,q都指向第一個(gè)節(jié)點(diǎn)
p=p->pNext;
owhile(p!=NULL)
(
if(p—〉s_work、arrive_time〈q->s—work、
arrive_time)
q=P;
p=p—>pNext;
}
PNODErpHead—>pNext;//r也指向第一個(gè)節(jié)點(diǎn)
?intcnt=0;〃記錄所有節(jié)點(diǎn)數(shù)據(jù)域中到達(dá)時(shí)間最
短且相等得個(gè)數(shù)
whi1e(r!=NULL)
9{
oif(r—>s_work、arrive_time==q-)s_work、
arrive_time)
&cnt++;
or=r->pNext;
}
>p=pHead-)pNext;
owhile(p!=NULL)//在相等到達(dá)時(shí)間得作業(yè)中找服
務(wù)時(shí)間最短得作業(yè)
(
oif(ent>1)
ddt
>if(p—〉s_work>arrive_time==q->s_work、
arrivetime)
ooif(p—>s_work>work_time〈q-)s_work>
work_time)
>q=P;
op=p->pNext;
}
else
ooop=NULL;
}//確定q所指作業(yè)最先到達(dá)且服務(wù)時(shí)間最短
ow_finish_time[0]=q->s_work、arrive_time+q
—>s__work^work_time;
?w_re1_time[0]=w_finish_time[01—q—〉
s_work、arrive_time;
。printf("第1個(gè)系統(tǒng)執(zhí)行得作業(yè)到達(dá)時(shí)間:%d",q->
s_work、arrive_time);
printf(w編號(hào)就是:%d”,q-〉s_work、id);
printf(”服務(wù)時(shí)間就是:%d\n”,q—〉s_work>work_ti
me);
printf("完成時(shí)間就是:%d",w_finish_time[0]);
printf(”周轉(zhuǎn)時(shí)間就是:%d\n”,w_rel_time[0]);
9p=pHead;〃尋找q得前一個(gè)節(jié)點(diǎn),方便刪掉q節(jié)點(diǎn)
while(p->pNext!=q)
o(
op=p->pNext;
}
op一〉pNext=q—>pNext;
free(q);
。q=NULL;
ofor(i=0;i〈9&&!Is_empty(pHead);i++)
>{
?printf("現(xiàn)在系統(tǒng)還剩%d個(gè)作業(yè)!\n",cnt_work(pHe
ad));
ooq=do_work(pHead,w_finish_time,i);
oshow(w_finish_time,i,q?w_rel—time);
b6p=pHead;〃尋找q得前一個(gè)節(jié)點(diǎn),方便刪掉q節(jié)點(diǎn)
while(p—>pNext!=q)
op=p->pNext;
&&}
?p—〉pNext=q->pNext;
>free(q);
oq=NULL;
。}
for(j=0;j<10;j++)
(
?re1_time+=w_rel_time[j];
}
oprintf(”平均周轉(zhuǎn)時(shí)間:%f\n",re/10);
)
boolIs_empty(PNODEpHead)//判斷作業(yè)就是否做
完
?PNODEp;
。p=pHead一>pNext;
int1en=0;
while(p!=NULL)
(
,1en++;
??p=p一>pNext;
}
if(1en==0)
?returntrue;〃當(dāng)沒有作業(yè)時(shí),返回為真
else
returnfalse;
}
intcnt_work(PNODEpHead)〃計(jì)算當(dāng)前還剩多少作
業(yè)
(
PNODEp;
p=pHead-〉pNext;
intlen=0;
?whi1e(p!=NULL)
>(
o1en++;
>>p=p->pNext;
o}
return1en;
}
PNODEdo_work(PNODEpHead,int*w_fini
sh_time,inti)
(
oPNODEp,q;
intent=0;〃計(jì)數(shù)器清0,計(jì)算當(dāng)前作業(yè)完成時(shí),系統(tǒng)
中有多少個(gè)作業(yè)已經(jīng)到達(dá)
p=pHead—>pNext;
q=p;
whi1e(p!=NULL)
if(p-〉s_work>arrive_time<=w_finish_time
Ei])
oocnt++;
q=p;
p=p->pNext;
3}
oe1se
bop=p->pNext;
&&)
。}//q指向當(dāng)前到達(dá)時(shí)間小于剛剛完成得作業(yè),但不一
定就是服務(wù)時(shí)間最短得(如果有得話)
printf("系統(tǒng)中有%d個(gè)作業(yè)在當(dāng)前作業(yè)完成時(shí)已經(jīng)到達(dá)!
\n”,cnt);
0p=pHead—〉pNext;
while(p!=NULL)
。if(ent〉1)//執(zhí)行此次判斷后,q現(xiàn)在指向所有條件都
滿足得作業(yè)(如果有得話)
oif(p—>s_work^arrive_time<=w_finish_time
[i])
(
o>if(p->s_work、work—time〈q->s_work^wor
k_time)
(
9>q=p;
ooaop=p—〉pNext;
&&}
&&selse
sop=p-〉pNext;
60b}
ooelse
oop=p->pNext;
。else//當(dāng)前作業(yè)完成時(shí),沒有作業(yè)到達(dá)得情況
。。p=p->pNext;//用q來接收最先到達(dá)得,用p來
遍歷
owhile(p!=NULL)
dd{
ooif(p->s_work>arrive_time〈q->s_work>ar
rive_time)
…q=P;
?p=p->pNext;
3}
w_finish_timeLi+l]=q->s_work、arrive—tim
e+q—〉s_work、work_time;
bb}
o}
ow_finish_time[i+1]=w_finish_time[i]+q—>
s_work、work_time;
returnq;
)
voidshow(int*w_finish_time,inti,PNODEq,
int*w_rel_time)
{
?w_finish_time[i+1]=w_finish_time[i]+q
—)s_work、work_time;
?w_re1_time[i+l]=w_finish_time[i+l]-q->s_
work、arrive_time;
printf("第%(1個(gè)系統(tǒng)執(zhí)行得作業(yè)到達(dá)時(shí)間:%d",i+
2,q—>s_work、arrive_time);
oprintf(”編號(hào)就是:%d",q—〉s_work、id);
printf("服務(wù)時(shí)間就是:%d\n",q—〉s_work、work_ti
me);
printf(”完成時(shí)間就是:%d",w_finish_tim
e[i+1]);
printf("周轉(zhuǎn)時(shí)間就是:%d\n",w_rel_time[i+1]);
)
voidshowmenu()
printf("*************************
*********\n");
。printf("請(qǐng)選擇您要執(zhí)行得命令?:\n");
printf("1:先來先服務(wù)算法\n");
。printf("2:短作業(yè)優(yōu)先算法\n”);
printf(”3:高響應(yīng)比優(yōu)先算法\n”);
oprintf("0:退出菜單"");
printf("****************************
******\n");
}
voidHRRN()
(
?intw_re1_time[10];
intw_finish_time[10];
floatreltime=0;
floatpriority;〃計(jì)算優(yōu)先權(quán)
?srand(time(0));
inti;
intj=0;
PNODEpHead=(PNODE)ma1loc(sizeof(NODE));
if(NULL==pHead)
(
。printf("分配失敗,程序終止!\n");
?exit(—1);
9}
oPNODEpTai1=pHead;
pTai1-)pNext=NULL;//定義該鏈表有頭結(jié)點(diǎn),
且第一個(gè)節(jié)點(diǎn)初始化為空
for(i=0;i<10;i++)〃定義了十個(gè)進(jìn)程
。{
o>PNODEpNew=(PNODE)ma1loc(sizeof(NODE));
if(NULL==pNew)
。。printf("分配失敗,程序終止!\n”);
oexit(-1);
3}
opNew—〉s_work>id=rand()%100;
?pNew—>s_work、arrive_time=rand()%10;
o?pNew—>s_work、work_time=rand()%10+1;
?pTail—>pNext=pNew;
opNew—>pNext=NULL;
?opTai1=pNew;
)
oPNODEp=pHead-)pNext;//p指向第一個(gè)節(jié)點(diǎn)
while(NULL!=p)
(
oprintf("第%d個(gè)作業(yè)得編號(hào)就是:%d\t”,j+l,p—>s_wo
rk、id);
bprintf("第%(1個(gè)作業(yè)至U達(dá)時(shí)間:%d\t",j+l,—>S_W0
rk、arrive_time);
oprintf("第%d個(gè)作業(yè)服務(wù)時(shí)間:%d\t",j1,p-)
s_work、work_time);
oprintf("\n");
op=p->pNext;
??printf("\n");
j++;
}
p=pHead—>pNext;
0PNODEq=p;//p,q都指向第一個(gè)節(jié)點(diǎn)
p=p-〉pNext;
?whi1e(p!=NULL)
0{
oif(p-)s_work、arrive_time<q一〉work、
arrive_time)
&q=P;
op=p—>pNext;
}
t>PNODEr=pHead—>pNext;〃1*也指向第一個(gè)
節(jié)點(diǎn)
,intent=0;//記錄所有節(jié)點(diǎn)數(shù)據(jù)域中到達(dá)時(shí)間最
短且相等得個(gè)數(shù)
owhile(r!=NULL)
3{
if(r->s_work^arrive—time==q->s_work>arrive
—time)
cnt++;
r=r->pNext;
)
?p=pHead—>pNext;
,while(p!=NULL)//在相等到達(dá)時(shí)間得作業(yè)中找服
務(wù)時(shí)間最短得作業(yè)
,if(cnt)1)
ooif(p->s_work>arrive_time==q->s_work>
arrive_time)
o>oif(p->s_work>work_time<q->s_work>work_ti
me)
q=P;
?op=p->pNext;
3}
bselse
…p=NULL;
}//確定q所指作業(yè)最先到達(dá)且服務(wù)時(shí)間最短
>w_finish_timeEO]=q->s_work、arrive_time+q-
>s_work、work_time;
?w_re1_time[0]=w_finish_time[0]-q—〉
s_work、arrive_time;
。printf("第1個(gè)系統(tǒng)執(zhí)行得作業(yè)到達(dá)時(shí)間:%dn,q->
s_work>arrive—time);
printf(”編號(hào)就是:%d",q—>s_work、id);
printf("服務(wù)時(shí)間就是:%d\n",q->s_work>work_tim
e);
printf("完成時(shí)間就是:%d",w_finish_time[0]);
oprintf("周轉(zhuǎn)時(shí)間就是:%d\n,w_rel_time[0]);
9p=pHead;〃尋找q得前一個(gè)節(jié)點(diǎn),方便刪掉q節(jié)點(diǎn)
while(p—>pNext!=q)
3{
>>p=p->pNext;
)
op—>pNext=q—>pNext;
ofree(q);
3q=NULL;〃已經(jīng)找到并執(zhí)行第一個(gè)進(jìn)程,執(zhí)行完之后
又將其刪除了
ofor(i=0;i<9&&!Is—empty(pHead);i++)
上
oprintf("現(xiàn)在系統(tǒng)還剩%d個(gè)作業(yè)!\n",cnt_wor
k(pHead));
odo_work_1(pHead,w_finish_time,i);
oq=priorit(pHead);
?oshow(w_finish_time,i,q,w_rel_time);
000p=pHead;〃尋找q得前一個(gè)節(jié)點(diǎn),方便刪掉q
節(jié)點(diǎn)
??whi1e(p—〉pNext!=q)
3{
op=p—〉pNext;
3}
p->pNext=q->pNext;
o>free(q);
>q=NULL;
)
for(j=0;j<10;j++)
3{
orel_time+=w—rel_time[j];
>}
printf(“平均周轉(zhuǎn)時(shí)間:%f\n",re1—time/10);
)
voiddo_work_l(PNODEpHead,int*w_finish_t
ime,inti)
(
PNODEp,q;
intent=0;〃計(jì)數(shù)器清0,計(jì)算當(dāng)前作業(yè)完成時(shí),系
統(tǒng)中有多少個(gè)作業(yè)已經(jīng)到達(dá)
p=pHead—>pNext;
q=P;
3whi1e(p!=NULL)
3{
ooif(p->s_work、arrive_time〈=w_finish
_timeEi])
o(
§。ent++;
…q=P;
p=p-)pNext;
else
p=p—〉pNext;
)
}//q指向當(dāng)前到達(dá)時(shí)間小于剛剛完成得作業(yè),但有可
能有另外幾個(gè)進(jìn)程也已經(jīng)到達(dá)了,所以要進(jìn)行下面得判斷
printf("系統(tǒng)中有%d個(gè)作業(yè)在當(dāng)前作業(yè)完成時(shí)已經(jīng)到達(dá)!\
n",ent);
p=pHead-)pNext;
§while(p!=NULL)
3{
if(cnt>l)//說明此時(shí)有好幾個(gè)都已經(jīng)到達(dá)了
。(
?if(p->s_work、arrive_time<=w_finish
_timeEi])
0{
op->s_work、wait=w_finish_time[i]一p
->s_work、arrive_time;
p=p—〉pNext;
sselse
od{
Osop->s_work>wait=0;
??p=p->pNext;
6b}
3}
。else〃當(dāng)前作業(yè)完成時(shí),沒有作業(yè)到達(dá)得情況
3{
。p=p->pNext;//此時(shí)p指向第一個(gè)節(jié)點(diǎn),q指
向第二個(gè)節(jié)點(diǎn),還就是找最先到達(dá)得
sbwhi1e(p!=NULL)
。(
ooif(p->s_work、arrive—time<q—〉s_work>
arrive_time)
oooq=p;
dpp->pNext;
)
w_finish_time[i+1]=q->s_work>arrive_time
+q->s_work>work—time;
oreturn;
3)
}
?w_finish_time[i+1]=w_finish_time[i]+
q->s_work、work_time;
)
PNODEpriorit(PNODEpHead)
PNODEp=pHead—〉pNext;
whi1e(p!=NULL)
if(p->s_work>wait〉0)
p->s_work>priority=(p—>s_work、wait+
p—>s_workwork_time)/p->s_work>work_time;
〃計(jì)算每一個(gè)已經(jīng)等待得進(jìn)程得優(yōu)先等級(jí)
p=p—〉pNext;
?}
oe1se
op=p->pNext;
9}
p=pHead—>pNext;
oPNODEq;
>q=p;
p=p->pNext;//p已經(jīng)指向第二個(gè)節(jié)點(diǎn)
?while(p!=NULL)
{
sif(p->s_work、wait>0)
。(
sot)if(p->s_work^priority>q->s_work^priori
ty)
dq=P;
t>bbbp=p->pNext;
&)
oelse
op=p—>pNext;
3}
oelse
ooop=p—>pNext;
}
6printf("該進(jìn)程優(yōu)先級(jí)最高,為:%f\n",q—〉s_w
ork、priority);
oreturnq;
}
實(shí)驗(yàn)結(jié)果:
系統(tǒng)自動(dòng)為每個(gè)算法模擬分配五個(gè)作業(yè),同時(shí)隨機(jī)生成作業(yè)得
編號(hào),作業(yè)得到達(dá)時(shí)間,作業(yè)估計(jì)運(yùn)行得時(shí)間。
1、先來先服務(wù)算法
回
■1?E:\C語言練習(xí)\Debug\100L
▲一
***********************
-M--M--M--M-一
1
三
望
解
務(wù)
行
糊
n算法
R:
』
日
號(hào)
業(yè)
務(wù)
A業(yè)~f-
用
業(yè)m
2151二10
.6-sp-燈0
pA-二
否T.
業(yè)
號(hào)
務(wù)
業(yè).
22二2
第.5g1pm-
業(yè)JB
pTap-J一
否.
業(yè)
號(hào)
務(wù)
.業(yè)-.
弟7-
833:^-pm-10
廳B
業(yè)Ta-
否.ap-p-
業(yè)
業(yè)
務(wù)
號(hào)
第
HA二-m-3
3424二^-
廳Tr
.?B
否
燈
業(yè)arap-.
業(yè)
p業(yè)
號(hào)
.務(wù)
第H-
15T05-nm8
Ar匚
廳1-
a-'燈
p二
AEap-
堂系統(tǒng)執(zhí)行的作業(yè)到達(dá)時(shí)間:0編號(hào)是:工服務(wù)時(shí)間是:8完成時(shí)間是:8周轉(zhuǎn)時(shí)
7爭(zhēng)E系:8統(tǒng)執(zhí)行的作業(yè)到達(dá)時(shí)間
11編號(hào)是:5服務(wù)時(shí)間是:2完成時(shí)間是:10周轉(zhuǎn)時(shí)
辭或統(tǒng)執(zhí)行的作業(yè)到達(dá)時(shí)間:2
編號(hào)是:3服務(wù)時(shí)間是:3完成時(shí)間是:13周轉(zhuǎn)時(shí)
於養(yǎng)統(tǒng)執(zhí)行的作業(yè)到達(dá)時(shí)間:
5編號(hào)是:2服務(wù)時(shí)間是:10完成時(shí)間是:23周轉(zhuǎn)
|Bj#:18
售統(tǒng)執(zhí)行的作業(yè)到達(dá)時(shí)間:
g7編號(hào)是:8服務(wù)時(shí)間是:10完成時(shí)間是:33周轉(zhuǎn)
間是:26
均周轉(zhuǎn)時(shí)間:14.400000
退出***?*?**?*
該算法嚴(yán)格按照各作業(yè)到達(dá)時(shí)間來為其分配進(jìn)程與資源,實(shí)
驗(yàn)得結(jié)果見截圖,最后算出該算法五個(gè)作業(yè)得平均周轉(zhuǎn)時(shí)間。
2、短作業(yè)優(yōu)先
短作業(yè)優(yōu)先算法考慮得比較多,系統(tǒng)先找出最先到達(dá)得作業(yè),
若有多個(gè)相同時(shí)間到達(dá)得作業(yè),則按照其運(yùn)行時(shí)間長短先為時(shí)間
短得服務(wù)。
T?E:\C語言練習(xí)\Debug\1001.exe-1=1回
手髓尤暨法嬴個(gè)作業(yè)到達(dá)時(shí)間:
1第1個(gè)作業(yè)服務(wù)時(shí)間:6
12第2個(gè)作業(yè)到達(dá)時(shí)間:第2個(gè)作業(yè)服務(wù)時(shí)間:4
26第3個(gè)作業(yè)到達(dá)時(shí)間:3第3個(gè)作業(yè)服務(wù)時(shí)間:4
83第4個(gè)作業(yè)到達(dá)時(shí)間:8第4個(gè)作業(yè)服務(wù)時(shí)間:1
19第5個(gè)作業(yè)到達(dá)時(shí)間:9第5個(gè)作業(yè)服務(wù)時(shí)間:7
第6個(gè)作業(yè)到達(dá)時(shí)間:1第6個(gè)作業(yè)服務(wù)時(shí)間:2
18第7個(gè)作業(yè)到達(dá)時(shí)間:8第7個(gè)作業(yè)服務(wù)時(shí)間:1
56第8個(gè)作業(yè)到達(dá)時(shí)間:4第8個(gè)作業(yè)服務(wù)時(shí)間:6
31第9個(gè)作業(yè)到達(dá)時(shí)間:7第9個(gè)作業(yè)服務(wù)時(shí)間:10
:84第10個(gè)作業(yè)到達(dá)時(shí)間:9第10個(gè)作業(yè)服務(wù)時(shí)間:4
卜系維執(zhí)行的作業(yè)到達(dá)時(shí)間11編號(hào)是I46服務(wù)時(shí)間是:2
,時(shí)間鼠3周轉(zhuǎn)時(shí)間息2
系統(tǒng)還乘19個(gè)作業(yè)!
蟠2個(gè)作業(yè)在當(dāng)前隹業(yè)完成時(shí)已經(jīng)至慳!
卜冢妹知才〒的花業(yè)到狀日由扎3維號(hào)皂,264
,E:\C語言練習(xí)\Debug\1001.exe'I=1回
:84第個(gè)作業(yè)到達(dá)時(shí)間:9第10個(gè)作業(yè)服務(wù)時(shí)間:4
扁是
達(dá)瞿
的
業(yè)
號(hào)
盾
號(hào)
wT-HI司1
H:46服務(wù)時(shí)間是:2
間
轉(zhuǎn)i
3S2
個(gè)
間
7E9業(yè)I
還
,
成
一
乍
業(yè)
北
業(yè)
時(shí)
當(dāng)4
i即J
尚
一
間
的
業(yè)K9
—
圖
丁3
間
h:26服務(wù)時(shí)間是:4
轉(zhuǎn)i
7S■,4
個(gè)
^業(yè)I
7E87E
還,
成
時(shí)
幺
摩
魁
乍
當(dāng)
已
^業(yè)f
一■
扁
由
有
業(yè)
的
丁5
麗
4',':
曾12服務(wù)時(shí)間是:4
間
11髀6
個(gè)
7業(yè)1
,
乍
當(dāng)
7E業(yè)
還,
刖
間
一
業(yè)
M的
丁83服務(wù)時(shí)間是:1
盾
12會(huì)
個(gè)
W6業(yè)I
,
成
時(shí)
幺
乍
已
業(yè)
7E當(dāng)^I
g還
一5■
扁
有
業(yè)
的
丁8
〉
^:18服務(wù)時(shí)間是:工
間
13患5
圖.
個(gè)
^5當(dāng)I
,
?
幺
乍
已
至
業(yè)
業(yè)□8Xn
^刖m
AE一M
還■
4三
扁
奪
莓
日
琳
的
丁M9
U84服務(wù)時(shí)間是:4
間
17業(yè)5^8
業(yè)^
由
落-
個(gè)
—
4一!
,
務(wù)
幺
北
乍
成
時(shí)
蟒
已
善
業(yè)'-4
刖
間
一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 籃球興趣班方案
- 揚(yáng)塵治理精細(xì)化管理方案
- 浙江省 守合同重信用 基本知識(shí)
- 隱名買房合同模板
- N-2-Diethylamino-ethyl-2-iodobenzamide-生命科學(xué)試劑-MCE
- 大壩防護(hù)工程施工方案
- 小學(xué)六年級(jí)期中考總結(jié)表彰大會(huì)教師發(fā)言稿
- 教育培訓(xùn)機(jī)構(gòu)老帶新方案
- 熱電偶實(shí)驗(yàn)課程設(shè)計(jì)
- 城鄉(xiāng)聯(lián)動(dòng)的小學(xué)課程設(shè)計(jì)
- 2024年高級(jí)制圖員技能理論考試題庫大全800題(含答案)
- 基于單元主題的小學(xué)英語跨學(xué)科學(xué)習(xí)活動(dòng)的實(shí)踐與研究
- DL∕T 1773-2017 電力系統(tǒng)電壓和無功電力技術(shù)導(dǎo)則
- NBT 31021-2012風(fēng)力發(fā)電企業(yè)科技文件規(guī)檔規(guī)范
- AQ/T 1118-2021 礦山救援培訓(xùn)大綱及考核規(guī)范(正式版)
- 蘇教版五年級(jí)數(shù)學(xué)上冊(cè)第二單元-多邊形的面積專項(xiàng)試卷附答案
- 教育哲學(xué)課程教學(xué)大綱
- 提升體檢科體檢項(xiàng)目的質(zhì)量控制計(jì)劃三篇
- 四年上冊(cè)美術(shù)教案 12《精美的郵票》 人教版
- 2024年共青團(tuán)入團(tuán)積極分子結(jié)業(yè)考試題庫及答案
- 項(xiàng)目接管進(jìn)駐方案
評(píng)論
0/150
提交評(píng)論