先来先服务调度算法和短作业优先调度算法Word下载.docx

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

先来先服务调度算法和短作业优先调度算法Word下载.docx

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

先来先服务调度算法和短作业优先调度算法Word下载.docx

//周转时间

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"

M);

Sinput(b,M);

SJF(b,M);

charo;

继续工作吗?

(Y/N):

"

o);

if(o=='

Y'

continue;

N'

break;

THANKS!

!

致力为企业和个人提供合同协议,策划案计划书,学习课件等等

打造全网一站式需求

欢迎您的下载,资料仅供参考

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

当前位置:首页 > PPT模板 > 其它模板

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

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