先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx

上传人:b****1 文档编号:6045691 上传时间:2023-05-05 格式:DOCX 页数:21 大小:648.92KB
下载 相关 举报
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第1页
第1页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第2页
第2页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第3页
第3页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第4页
第4页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第5页
第5页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第6页
第6页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第7页
第7页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第8页
第8页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第9页
第9页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第10页
第10页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第11页
第11页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第12页
第12页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第13页
第13页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第14页
第14页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第15页
第15页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第16页
第16页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第17页
第17页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第18页
第18页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第19页
第19页 / 共21页
先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx

《先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx》由会员分享,可在线阅读,更多相关《先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx(21页珍藏版)》请在冰点文库上搜索。

先来先服务调度和最短作业优先调度算法实验报告材料文档格式.docx

38.01.0<

49.10.1<

Whatkindofalgorithmdoyouwant?

Pleaseinput1toselectFCFS,or2toselectSJF.

3<

Youhaveinputawrongnumber,pleaseinputagain.

1<

屏幕输出结果:

submitrunstartingfinalwaitturnaround

38.01.08.09.00.01.0

28.50.59.09.50.51.0

19.00.29.59.70.50.7

49.10.19.79.80.60.7

Theaverageturnaroundtimeis0.85

Pleaseinput1toselectFCFS,or2toselectSJF,or0toexit.

测试数据二:

submitrun

160.5

250.9

36.30.1

FCFS和SJF算法结果一样:

submitrunstartingfinalwaitturnaround

250.955.900.9

160.566.500.5

36.30.16.56.60.20.3

Theaverageturnaroundtimeis0.567

测试数据三:

submitrun

150.2

24.20.3

35.10.3

45.20.1

FCFS:

24.20.34.24.500.3

150.255.200.2

35.10.35.25.50.10.4

45.20.15.55.60.30.4

Theaverageturnaroundtimeis0.325

SJF:

45.20.15.25.300.1

35.10.35.35.60.20.5

Theaverageturnaroundtimeis0.275

源程序:

#include"

stdio.h"

#include"

stdlib.h"

string.h"

#defineM50

structsjf{

intjobnumber;

floatsubmittime;

floatruntime;

floatstarttime;

floatfinishtime;

floatwaittime;

floatturnaroundtime;

}temp;

staticstructsjfst[M];

voidinput(structsjf*p,intN)

{

inti;

printf("

Pleaseinputthejobnumber,submittimeandruntime:

\nForexmple:

18.52.0\n"

);

for(i=0;

i<

N;

i++)

{

scanf("

%d%f%f"

&

p[i].jobnumber,&

p[i].submittime,&

p[i].runtime);

}

}

voidprint(structsjf*p,intN)

intk;

floath,g;

runorder:

"

%d"

p[0].jobnumber);

for(k=1;

k<

k++)

-->

p[k].jobnumber);

\nTheprocess'

sinformation:

\n"

\njobnum\tsubmit\trun\tstart\tfinal\twait\tturnaround\n"

for(k=0;

h+=p[k].turnaroundtime;

%d\t%-.1f\t%-.1f\t%-.1f\t%-.1f\t%-.1f\t%-.1f\t\n"

p[k].jobnumber,p[k].submittime,p[k].runtime,p[k].starttime,p[k].finishtime,p[k].waittime,p[k].turnaroundtime);

g=h/N;

\nTheaverageturnaroundtimeis%-.2f\n"

g);

/*按提交时间从小到大排序*/

voidsort1(structsjf*p,intN)

inti,j;

for(j=0;

j<

=i;

j++)

if(p[i].submittime<

p[j].submittime)

temp=p[i];

p[i]=p[j];

p[j]=temp;

/*运行*/

voiddeal(structsjf*p,intN)

if(k==0)

{

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

p[k].finishtime=p[k].submittime+p[k].runtime;

}

else

if(p[k].submittime>

p[k-1].finishtime)

{

}

else

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

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

p[k].turnaroundtime=p[k].finishtime-p[k].submittime;

p[k].waittime=p[k].starttime-p[k].submittime;

voidsort2(structsjf*p,intN)

intnext,m,n,k,i;

floatmin;

sort1(p,N);

for(m=0;

m<

m++)

i=0;

if(m==0)

p[m].finishtime=p[m].submittime+p[m].runtime;

else

if(p[m].submittime>

p[m-1].finishtime)

{

p[m].finishtime=p[m].submittime+p[m].runtime;

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

for(n=m+1;

n<

n++)

if(p[n].submittime<

=p[m].finishtime)/*判断内存中每次完成之后又多少到达的进程*/

i++;

min=p[m+1].runtime;

next=m+1;

for(k=m+1;

m+i;

k++)/*找出到达后的进程中运行时间最小的进程*/

if(p[k+1].runtime<

min)

min=p[k+1].runtime;

next=k+1;

temp=p[m+1];

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

p[next]=temp;

deal(p,N);

print(p,N);

voidmain()

intN,i;

Pleaseinputthetotalnumberofjobs:

N);

input(st,N);

loop2:

Pleaseinput1toselectFCFS,or2toselectSJFor0toexit:

loop:

i);

if(i==0)

exit

(1);

elseif(i==1)

sort1(st,N);

deal(st,N);

print(st,N);

gotoloop2;

elseif(i==2)

sort2(st,N);

gotoloop2;

printf("

Youhaveinputawrongnumber,pleaseinputagain:

gotoloop;

【结论】

(结果)

测试1:

测试二:

测试三:

【小结】

实验中产生的错误及原因分析:

测试用例1的结果:

错误1:

错误解决方式:

主要是子函数sort2()中出的错:

i的作用域,程序修改:

将原来:

intnext,m,n,k,i=0;

改为:

intnext,m,n,k,i;

测试用例2的结果:

错误原因:

未考虑到“提交时间(submittime)大于上个进程的结束时间”的情况:

解决方法:

将原来的:

else

修改为:

测试用例3的结果:

错误分析:

同2一样,未在子函数sort()中未考虑到“提交时间(submittime)大于上个进程的结束时间”的情况:

实验的体会及收获:

通过这次试验,我对处理机的调度算法特别是FCFS和SJF有了更深的理解,而且锻炼了我的思维能力,

使我能更全面地思考问题,以后还需要多做些这方面的练习。

试验不足之处:

试验未考虑同一时间提交多个进程的情况,如:

测试数据:

170.2

27.20.5

370.1

结果应该是:

submitrunstartfinalwaitturnaround

170.27.07.50.00.5

370.17.57.60.50.6

27.20.57.67.80.40.6

Theaverageturnaroundtimeis0.57.

Jobnumsubmitrunstartingfinalwaitturnaround

370.17.07.10.00.1

170.57.17.60.10.6

27.20.27.67.80.60.6

Theaverageturnaroundtimeis0.43.

而程序运行结果是:

程序结果表明该程序还是存在不足之处的。

这是需要继续改进的地方。

指导教师评语及成绩:

评语:

成绩:

指导教师签名:

批阅日期:

实验报告说明

1.实验项目名称:

要用最简练的语言反映实验的内容。

要求与实验指导书中相一致。

2.实验类型:

一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。

3.实验目的与要求:

目的要明确,要抓住重点,符合实验指导书中的要求。

4.实验原理:

简要说明本实验项目所涉及的理论知识。

5.实验环境:

实验用的软硬件环境(配置)。

6.实验方案设计(思路、步骤和方法等):

这是实验报告极其重要的内容。

概括整个实验过程。

对于操作型实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作。

对于设计型和综合型实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明。

对于创新型实验,还应注明其创新点、特色。

7.实验过程(实验中涉及的记录、数据、分析):

写明具体上述实验方案的具体实施,包括实验过程中的记录、数据和相应的分析。

8.结论(结果):

即根据实验过程中所见到的现象和测得的数据,做出结论。

9.小结:

对本次实验的心得体会、思考和建议。

10.指导教师评语及成绩:

指导教师依据学生的实际报告内容,用简练语言给出本次实验报告的评价和价值。

注意:

∙实验报告将记入实验成绩;

∙每次实验开始时,交上一次的实验报告,否则将扣除此次实验成绩。

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2