短作业优先算法Word文档下载推荐.docx

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

短作业优先算法Word文档下载推荐.docx

《短作业优先算法Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《短作业优先算法Word文档下载推荐.docx(6页珍藏版)》请在冰豆网上搜索。

短作业优先算法Word文档下载推荐.docx

charname[10];

floatarrivetime;

floatservicetime;

floatstarttime;

floatfinishtime;

floatzztime;

floatdqzztime;

};

sjfa[100];

voidinput(sjf*p,intN)

{inti;

printf("

intputtheprocess'

sname&

arrivetime&

servicetime:

\nforexmple:

a0100\n"

);

for(i=0;

i<

=N-1;

i++)

{

inputthe%dthprocess'

sinformation:

\n"

i+1);

scanf("

%s%f%f"

&

p[i].name,&

p[i].arrivetime,&

p[i].servicetime);

}

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

{intk;

printf("

runorder:

"

%s"

p[0].name);

for(k=1;

k<

N;

k++)

{printf("

-->

p[k].name);

}

\ntheprocess'

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

for(k=0;

{printf("

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

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

//paixu

voidsort(sjf*p,intN)

for(inti=0;

for(intj=0;

j<

=i;

j++)

if(p[i].arrivetime<

p[j].arrivetime)

{

sjftemp;

temp=p[i];

p[i]=p[j];

p[j]=temp;

}

//yunxingjieduan

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

zztime,float&

dqzztime,intN)

{intk;

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;

 

voidsjff(sjf*p,intN)

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

sort(p,N);

for(intm=0;

m<

N-1;

m++)

{if(m==0)

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

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

inti=0;

for(intn=m+1;

n<

n++)

{if(p[n].arrivetime<

=p[m].finishtime)

i++;

floatmin=p[m+1].servicetime;

intnext=m+1;

//m+1=n

for(intk=m+1;

m+i;

if(p[k+1].servicetime<

min)

{min=p[k+1].servicetime;

next=k+1;

temp=p[m+1];

p[m+1]=p[next];

p[next]=temp;

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

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

intmain()

{intN;

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

inputtheprocess'

snumber:

scanf("

%d"

N);

input(a,N);

sjf*b=a;

sjf*c=a;

sjff(b,N);

system("

PAUSE"

4.运行结果

5.心得体会

课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去做一件事情,又如何完成一件事情的能力。

通过模拟进程的调度问题,更加深了我对于操作系统理论的理解,在自己的动手操作过程中,能够体会成功的喜悦和遇到问题自己解决的能力,对于我来说是一次提高,让自己多多的在实践中可以加深对理论的理解,也让我明白了以后应该如何更好,更高效的学习,在以后,我会更加努力。

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

当前位置:首页 > 人文社科 > 广告传媒

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

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