下载此文档

实验二时间片轮转rr进程调度算法.doc


文档分类:通信/电子 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
实验二 时间片轮转RR进程调度算法一:需求分析程序的设计的任务和目的:设计程序模拟进程的时间片轮转RR调度过程。假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别利用不同的时间片大小q,采用时间片轮转RR进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。(1)输入的形式和输入值的范围为避免测试时频繁输入数据,将测试数据放在txt文件中采用读文件方法读取数据。在同目录下的txt文件中输入数据,第一行为进程到达时间,中间用空格隔开,第二行为进程服务时间,不同进程的服务时间之间用空格隔开。(2)输出的形式输出每个时刻的进程运行状态,并且输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。(详见运行截图)(3)程序所能达到的功能;能够模拟进程的时间片轮转RR调度过程,可以输入时间片大小,然后采用时间片轮转RR进程调度算法进行调度,可以模拟调度过程,输出每个时刻的进程运行状态,另外也实现了输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。(4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。作业时间片进程名ABCDE平均到达时间01234 服务时间435242完成时间813181017          详见运行结果截图2、概要设计使用链表创建队列,用链表方法实现时间片轮转调度。主要有主函数,时间片轮转调度函数voidRR(int*ArrivalTime,int*ServiceTime,intn,intq,LinkQueue&Q)和输出函数voidprint(intn,intarray[]),voidprint(intn,doublearray[]);三:详细设计YYNNNY时间片轮转算法流程图:程序主要设计思想:(1)创建进程,使用链表的方法,链表中的每个结点相当于一个进程。(2)读入文件中进程数据(进程的到达时间和服务时间)。(3)创建一个进程单链表,作为进程队列。(4)请用户输入时间片大小。(5)创建执行队列。(6)定义时间轴,初始化时间轴和执行队列。(7)当进程数不为零时,分配给执行队列队首一个时间片。继续有未完成进程时进程队列的队首进程是否到达,若到达,将其插入到执行队列的队尾。执行队列不为空时,执行队列的队首进程的,判断是否执行完。执行完,该进程退出执行队列。(8)执行队列队首是否得到过一个完整的时间片,若有则该进程插入到执行队列的队尾。(9)执行队列不为空时,转到第(7)步。当执行队列和进程队列都为空时,转到第(6)步。当两队列都为空时,所有进程运行完,模拟结束。四:调试分析调试过程中遇到的问题即在时间片轮转算法中由于循环使用不当导致无法实现预期的结果,后通过问同学,网上查找资料解决。算法改进:可加一个循环将读入的进程按到达时间从先至后排列。经验体会:通过这次实验,又熟悉了链表的使用方法,加深了对进程概念的理解,进一步掌握了进程状态的转变、进程调度的策略及对系统性能的评价方法。五:用户使用说明1、在同目录的txt文件中输入进程到达时间和服务时间,第一行为进程到达时间,中间用空格隔开,第二行为进程服务时间,不同进程的服务时间之间用空格隔开。2、运行时按指示输入,如“请输入时间片长度”时输入时间片大小,若退出按0,继续则继续输入时间片大小。六:测试结果时间片长度为2时:时间片长度为4时:七:附录源程序:#include<iostream>#include<iomanip>#include<fstream>  #include<sstream>  usingnamespacestd;typedefintQElemType;#defineOK1#defineERROR0#defineOVERFLOW-1typedefintStatus;typedefstructQNode{  //定义队列节点QElemTypedata;structQNode*next;}QNode,*QueuePtr;typedefstruct{      //定义队列QueuePtrfront;QueuePtrrear;}LinkQueue;StatusInitQueue(LinkQueue&Q);        //初始化队列StatusDestroyQueue(LinkQueue&

实验二时间片轮转rr进程调度算法 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数18
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wxc6688
  • 文件大小78 KB
  • 时间2019-12-09
最近更新