实验二时间片轮转RR进程调度算法

实验二时间片轮转RR进程调度算法

ID:39898144

大小:248.94 KB

页数:9页

时间:2019-07-14

实验二时间片轮转RR进程调度算法_第1页
实验二时间片轮转RR进程调度算法_第2页
实验二时间片轮转RR进程调度算法_第3页
实验二时间片轮转RR进程调度算法_第4页
实验二时间片轮转RR进程调度算法_第5页
资源描述:

《实验二时间片轮转RR进程调度算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二时间片轮转RR进程调度算法一:需求分析程序的设计的任务和目的:设计程序模拟进程的时间片轮转RR调度过程。假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别利用不同的时间片大小q,采用时间片轮转RR进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。(1)输入的形式和输入值的范围为避免测试时频繁输

2、入数据,将测试数据放在txt文件中采用读文件方法读取数据。在同目录下的txt文件中输入数据,第一行为进程到达时间,中间用空格隔开,第二行为进程服务时间,不同进程的服务时间之间用空格隔开。(2)输出的形式输出每个时刻的进程运行状态,并且输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。(详见运行截图)(3)程序所能达到的功能;能够模拟进程的时间片轮转RR调度过程,可以输入时间片大小,然后采用时间片轮转RR进程调度算法进行调度,可以模拟调度过程,输出每个时刻的进程运行状

3、态,另外也实现了输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。(4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。作业时间片进程名ABCDE平均到达时间01234服务时间435242完成时间813181017周转时间8121671311.2带权周转时间243.23.53.253.194完成时间47181317周转时间461610139.8带权周转时间123.253.252.89详见运行结果截图2、概要设计使用链表创建队列,用链表方法实现时间片

4、轮转调度。主要有主函数,时间片轮转调度函数voidRR(int*ArrivalTime,int*ServiceTime,intn,intq,LinkQueue&Q)和输出函数voidprint(intn,intarray[]),voidprint(intn,doublearray[]);三:详细设计YYNNNY退出结束将未完成的插入队尾是否所有进程都完成时间片是否用完是否完成将新到进程插入队尾新进程是否到达时间片-1时间+1分配给执行队列队首时间片服务时间-1开始时间片轮转算法流程图:程序主要设计思想:(1

5、)创建进程,使用链表的方法,链表中的每个结点相当于一个进程。(2)读入文件中进程数据(进程的到达时间和服务时间)。(3)创建一个进程单链表,作为进程队列。(4)请用户输入时间片大小。(5)创建执行队列。(6)定义时间轴,初始化时间轴和执行队列。(7)当进程数不为零时,分配给执行队列队首一个时间片。继续有未完成进程时进程队列的队首进程是否到达,若到达,将其插入到执行队列的队尾。执行队列不为空时,执行队列的队首进程的,判断是否执行完。执行完,该进程退出执行队列。(8)执行队列队首是否得到过一个完整的时间片,若有

6、则该进程插入到执行队列的队尾。(9)执行队列不为空时,转到第(7)步。当执行队列和进程队列都为空时,转到第(6)步。当两队列都为空时,所有进程运行完,模拟结束。四:调试分析调试过程中遇到的问题即在时间片轮转算法中由于循环使用不当导致无法实现预期的结果,后通过问同学,网上查找资料解决。算法改进:可加一个循环将读入的进程按到达时间从先至后排列。经验体会:通过这次实验,又熟悉了链表的使用方法,加深了对进程概念的理解,进一步掌握了进程状态的转变、进程调度的策略及对系统性能的评价方法。五:用户使用说明1、在同目录的t

7、xt文件中输入进程到达时间和服务时间,第一行为进程到达时间,中间用空格隔开,第二行为进程服务时间,不同进程的服务时间之间用空格隔开。2、运行时按指示输入,如“请输入时间片长度”时输入时间片大小,若退出按0,继续则继续输入时间片大小。六:测试结果时间片长度为2时:时间片长度为4时:七:附录源程序:#include#include#include#includeusingnamespacestd;typedefintQElemType;#

8、defineOK1#defineERROR0#defineOVERFLOW-1typedefintStatus;typedefstructQNode{//定义队列节点QElemTypedata;structQNode*next;}QNode,*QueuePtr;typedefstruct{//定义队列QueuePtrfront;QueuePtrrear;}LinkQueue;StatusInitQueue(Lin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。