先来先服务调度算法和短作业优先调度算法Word文档格式.doc

上传人:b****1 文档编号:13164620 上传时间:2022-10-07 格式:DOC 页数:8 大小:151KB
下载 相关 举报
先来先服务调度算法和短作业优先调度算法Word文档格式.doc_第1页
第1页 / 共8页
先来先服务调度算法和短作业优先调度算法Word文档格式.doc_第2页
第2页 / 共8页
先来先服务调度算法和短作业优先调度算法Word文档格式.doc_第3页
第3页 / 共8页
先来先服务调度算法和短作业优先调度算法Word文档格式.doc_第4页
第4页 / 共8页
先来先服务调度算法和短作业优先调度算法Word文档格式.doc_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

先来先服务调度算法和短作业优先调度算法Word文档格式.doc

《先来先服务调度算法和短作业优先调度算法Word文档格式.doc》由会员分享,可在线阅读,更多相关《先来先服务调度算法和短作业优先调度算法Word文档格式.doc(8页珍藏版)》请在冰豆网上搜索。

先来先服务调度算法和短作业优先调度算法Word文档格式.doc

floatzztime;

//周转时间

floatdqzztime;

//带权周转时间

};

structsjf //定义进程的结构体

fcfsa[100];

//定义先来先服务算法进程的最大数量

sjfb[100];

//定义短作业优先算法进程的最大数量

voidFinput(fcfs*p,intN) //输入函数

{

inti;

printf("

intputtheprocess'

sname&

arrivetime&

servicetime:

\nforexmple:

a0100\n"

);

for(i=0;

i<

=N-1;

i++)

{

printf("

inputthe%dthprocess'

sinformation:

\n"

i+1);

scanf("

%s%f%f"

&

p[i].name,&

p[i].arrivetime,&

p[i].servicetime);

}

}

//输出函数

voidFPrint(fcfs*p,floatarrivetime,floatservicetime,floatstarttime,floatfinishtime,floatzztime,floatdqzztime,intN)

intk;

\nrunorder:

%s"

p[0].name);

for(k=1;

k<

N;

k++)

-->

p[k].name);

\n\ntheprocess'

\nname\tarrive\tservice\tstart\tfinish\tzz\tdqzz\n\n"

for(k=0;

{

%s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t\n\n"

p[k].name,p[k].arrivetime,p[k].servicetime,p[k].starttime,p[k].finishtime,p[k].zztime,p[k].dqzztime);

voidFsort(fcfs*p,intN) //按到达时间排序,先到达排在前面

for(inti=0;

for(intj=0;

j<

=i;

j++)

if(p[i].arrivetime<

p[j].arrivetime)

{

fcfstemp;

temp=p[i];

p[i]=p[j];

p[j]=temp;

}

//运行结果

voidFdeal(fcfs*p,floatarrivetime,floatservicetime,floatstarttime,floatfinishtime,float&

zztime,float&

dqzztime,intN)

if(k==0)

{

p[k].starttime=p[k].arrivetime;

p[k].finishtime=p[k].arrivetime+p[k].servicetime;

}

else

{

p[k].starttime=p[k-1].finishtime;

//开始时间=前一个进程的完成时间

p[k].finishtime=p[k-1].finishtime+p[k].servicetime;

//结束时间=前一个进程的完成时间+现在进程的服务时间

p[k].zztime=p[k].finishtime-p[k].arrivetime;

//周转时间=完成时间-到达时间

p[k].dqzztime=p[k].zztime/p[k].servicetime;

//带权周转时间=周转时间/服务时间

//先来先服务

voidFCFS(fcfs*p,intN)

floatarrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0,dqzztime=0;

Fsort(p,N);

Fdeal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);

FPrint(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);

voidSinput(sjf*p,intN) //输入函数

a0100\n\n"

voidSPrint(sjf*p,floatarrivetime,floatservicetime,floatstarttime,floatfinishtime,floatzztime,floatdqzztime,intN)

\nname\tarrive\tservice\tstart\tfinish\tzz\tdqzz\n"

voidSsort(sjf*p,intN) //按短作业优先算法排序

for(inti=1;

for(intj=1;

if(p[i].servicetime<

p[j].servicetime)

sjftemp;

}

voidSdeal(sjf*p,floatarrivetime,floatservicetime,floatstarttime,floatfinishtime,float&

voidSJF(sjf*p,intN)

Ssort(p,N);

Sdeal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);

SPrint(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);

voidmain() //主函数

while

(1)

intn;

选择哪种算法?

1、先来先服务算法(FCFS)2、段作业优先算法(SJF)\n"

%d"

n);

if(n==1)//先来先服务算法(FCFS)

intN;

printf("

------先来先服务调度算法------\n"

inputtheprocess'

snumber:

scanf("

N);

Finput(a,N);

FCFS(a,N);

if(n==2)//短作业优先算法(SJF)

intM;

------短作业优先调度算法------\n"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1