1 / 9
文档名称:

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

格式:doc   大小:218KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:wz_198613 2019/6/5 文件大小:218 KB

下载得到文件列表

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

文档介绍

文档介绍:实验二时间片轮转RR进程调度算法一:需求分析程序的设计的任务和目的:设计程序模拟进程的时间片轮转RR调度过程。假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别利用不同的时间片大小q,采用时间片轮转RR进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。输入的形式和输入值的范围为避免测试时频繁输入数据,将测试数据放在txt文件中采用读文件方法读取数据。在同目录下的txt文件中输入数据,第一行为进程到达时间,中间用空格隔开,第二行为进程服务时间,不同进程的服务时间之间用空格隔开。(2)输出的形式输出每个时刻的进程运行状态,并且输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。(详见运行截图)(3)程序所能达到的功能;能够模拟进程的时间片轮转RR调度过程,可以输入时间片大小,然后采用时间片轮转RR进程调度算法进行调度,可以模拟调度过程,输出每个时刻的进程运行状态,另外也实现了输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。,用链表方法实现时间片轮转调度。主要有主函数,时间片轮转调度函数voidRR(int*ArrivalTime,int*ServiceTime,intn,intq,LinkQueue&Q)和输出函数voidprint(intn,intarray[]),voidprint(intn,doublearray[]);三:详细设计YYNNNY退出结束将未完成的插入队尾是否所有进程都完成时间片是否用完是否完成将新到进程插入队尾新进程是否到达时间片-1时间+1分配给执行队列队首时间片服务时间-1开始时间片轮转算法流程图:程序主要设计思想:(1)创建进程,使用链表的方法,链表中的每个结点相当于一个进程。(2)读入文件中进程数据(进程的到达时间和服务时间)。(3)创建一个进程单链表,作为进程队列。(4)请用户输入时间片大小。(5)创建执行队列。(6)定义时间轴,初始化时间轴和执行队列。(7)当进程数不为零时,分配给执行队列队首一个时间片。继续有未完成进程时进程队列的队首进程是否到达,若到达,将其插入到执行队列的队尾。执行队列不为空时,执行队列的队首进程的,判断是否执行完。执行完,该进程退出执行队列。(8)执行队列队首是否得到过一个完整的时间片,若有则该进程插入到执行队列的队尾。(9)执行队列不为空时,转到第(7)步。当执行队列和进程队列都为空时,转到第(6)步。当两队列都为空时,所有进程运行完,模拟结束。四:调试分析调试过程中遇到的问题即在时间片轮转算法中由于循环使用不当导致无法实现预期的结果,后通