网站大量收购闲置独家精品文档,联系QQ:2885784924

2024年作业调度实验报告.doc

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

一、试验名称

作业调度算法试验。

二、试验目的

已知n個作业的進入時间和估计运行時间(以分钟计)

(1)單道环境下,分别用先来先服务调度算法、短作业优先调度算法、响应比高者优先调度算法,求出批作业的平均周转時间和带权平均周转時间;在多道环境(如2道)下,求出這些作业的平均周转時间和带权平均周转時间

(2)就同一批次作业,分别讨论這些算法的优劣;

(3)衡量同一调度算法對不一样作业流的性能。

三、试验环境规定

1.PC机。

2.Windows环境。

3.CodeBlocks

四、试验基本原理

(1)先来先服务算法:按照作业提交給系统的先後次序来挑选作业,先提交的先被挑选。???

(2)最短作业优先算法:是以進入系统的作业所提出的“执行時间”為原则,總是优先选用执行時间最短的作业。?

?(3)响应比高者优先算法:是在每次调度前都要计算所有被选作业(在後备队列中)的响应比,然後选择响应比最高的作业执行。

(4)两道批处理系统中最短作业优先调度算法:内存中可以進入两個作业,這两個作业按照最短作业优先调度算法调整作业执行的次序。

五、数据构造设计

使用一维数组来保留多种作业Jobjob[20];,采用的是次序存储。

使用queueJcb*q保留调度队列裏的作业指针。

structDate//時间构造体

{

inthour;//時间的小時

intminute;//時间的分钟

};

structJcb//作业构造体,用来描述作业

{

intno;//作业编号

Dateenter;//進入時间

intoperation;//估计运行時间

Datestart;//開始時间

Dateover;//結束時间

intturnover;//周转時间

doubleweighted;//带权周转時间

intstate=0;//標识改作业与否進入运行状态

};

六、流程图

單道环境下算法流程图

多道环境下的两道批处理系统中最短作业优先作业调度算法的流程图。

七、源代码

#includeiostream

#includestdio.h

#includecstring

#includealgorithm

#includequeue

usingnamespacestd;

structDate//時间构造体

{

inthour;//時间的小時

intminute;//時间的分钟

};

structJcb//作业构造体,用来描述作业

{

intno;//作业编号

Dateenter;//進入時间

intoperation;//估计运行時间

Datestart;//開始時间

Dateover;//結束時间

intturnover;//周转時间

doubleweighted;//带权周转時间

intstate=0;//標识改作业与否進入运行状态

};

//函数申明

voiddisplay(JcbJ[],intn);//输出

voidruning(queueJcb*q,intn);//根据算法将就绪队列排好队後的單道作业的运行主体

voidfcfs(JcbJ[],intn);//先来先服务作业调度

voidsfc(JcbJ[],intn);//最短作业优先作业调度

voidhrfc(JcbJ[],intn);//最高响应比作业调度

voidtext(void(*dispatch)(JcbJ[],intn),JcbJ[],intn,JcbJ1[],intn1,JcbJ2[],intn2);//测试單道环境,不一样批次作业,相似算法

voidmulfc(JcbJ[],intn);//两道环境,内存中可以用两個作业,内存中的這两個作业按照作业長短调整作业执行的次序。

//主函数,(1)同一批次作业,分别用先来先服务调度算法、短作业优先调度算法、响应比高者优先调度算法,得到批作业的平均周转時间和带权平均周转時间;(2)同一调度算法對不一样作业流的调度。

intmain()

{

intn,n1,n2;

Jcbjob[20],job1[20],job2[20];

FILE*p=fopen(example1.txt,r);

fscanf(p,%d,n);

//批次一作业

for(inti=0;in;i++)

{

job[i].no=i+1;

fscanf(p,%d

文档评论(0)

159****1748 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档