时间片轮转调算法实验分析报告

上传人:tang****xu1 文档编号:292746806 上传时间:2022-05-15 格式:DOCX 页数:7 大小:173.21KB
返回 下载 相关 举报
时间片轮转调算法实验分析报告_第1页
第1页 / 共7页
时间片轮转调算法实验分析报告_第2页
第2页 / 共7页
时间片轮转调算法实验分析报告_第3页
第3页 / 共7页
时间片轮转调算法实验分析报告_第4页
第4页 / 共7页
时间片轮转调算法实验分析报告_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《时间片轮转调算法实验分析报告》由会员分享,可在线阅读,更多相关《时间片轮转调算法实验分析报告(7页珍藏版)》请在金锄头文库上搜索。

1、xx大学操作系统实验报告姓名:学号:班级:1. 实验日京实验名称:时间片轮转RR1程调度算法实验二时间片轮转RR进程调度算法实验目的:通过这次实验,理解时间片轮转RR进程调度算法的运行原理,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。需求分析输入的形式和输入值的范围;输入:进程个数n范围:0n=q)CurrentTime=q;else(CurrentTime=RRarray0.ServiceTime;while(!RRqueue.empty()(for(intj=i;j=RRarrayj.ArrivalTime)(RRqueue.push(RRarrayj);i+;if(R

2、Rqueue.front().ServiceTimeq)(tempTime=RRqueue.front().ServiceTime;else(tempTime=q;RRqueue.front().ServiceTime-=q;进程每执行一次,就将其服务时间-q/将队首进程的名称放入数组中processMomentprocessMomentPoint=RRqueue.front().name;processMomentPoint+;processTimefinalProcessNumber=tempTime;finalProcessNumber+;if(RRqueue.front().Servi

3、ceTime=0)/把执行完的进程退出队歹U(/RRqueue.front().FinishedTime=CurrentTime;RRqueue.pop();如果进程的服务时间小于等于,即该进程已经服务完了,将其退栈else(将队首移到队尾RRqueue.push(RRqueue.front();RRqueue.pop();CurrentTime+=tempTime;/进程输出处理每个时间段对应的执行的进程cout”各进程的执行时刻信息:endl;coutsetw(2)processTime0时刻”;processTimefinalProcessNumber=0;inttime=process

4、Time0;intcount=0;for(i=0;ifinalProcessNumber;i+)(count=0;coutsetw(3)processMomentisetw(3)endl;while(RRarraycount.name!=processMomenti&countn)(count+;RRarraycount.FinishedTime=time;if(ifinalProcessNumber-1)(coutsetw(3)time时刻setw(2)time+processTimei+1时刻setw(3);time+=processTimei+1;coutendl;周转时间、带权周转时间

5、、平均周转时间、带权平均周转时间的计算/1.周转时间=完成时间-到达时间/2.带权周转时间=周转时间/服务时间for(i=0;in;i+)(RRarrayi.WholeTime=RRarrayi.FinishedTime-RRarrayi.ArrivalTime;RRarrayi.WeightWholeTime=(double)RRarrayi.WholeTime/RRarrayi.ServiceTime;doublex=0,y=0;for(i=0;in;i+)(x+=RRarrayi.WholeTime;y+=RRarrayi.WeightWholeTime;AverageWT=x/n;Av

6、erageWWT=y/n;4、调试分析(1) 调试过程中遇到的问题以及解决方法,设计与实现的回顾讨论和分析在算法设计时,由丁一开始不知道如何将位丁队首的进程,在执行完后如何移至队尾进行循环,所以思考了很久,后来想到将队首进程进行重新压入队列从而解决了此问题。(2) 算法的性能分析每个进程被分配一个时间段,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。(3) 经验体会通过本次实验,深入理解了时间片轮转RR进程调

7、度算法的思想,培养了自己的动手能力,通过实践加深了记忆。5、用户使用说明程序的使用说明,列出每一步的操作步骤运行完成,将进程从队列中取出7、附录#include#include运行队首进程#include#include#defineMaxNum100usingnamespacestd;进程运行时间-时间片时typedefstructcharname;intArrivalTime;intServiceTime;intFinishedTime;intWholeTime;doubleWeightWholeTime;RR;staticqueueRRqueue;声明一个队歹UstaticdoubleA

8、verageWT=0,AverageWWT=0;staticintq;/时间片staticintn;/进程个数staticRRRRarrayMaxNum;进程结构voidInput()/文件读取模式ifstreaminData;inData.open(./data4.txt”);/data.txt表示q=4的RR调度算法/data2.txt表示q=1的RR调度算法inDatan;inDataq;for(inti=0;iRRarrayi.name;for(i=0;iRRarrayi.ArrivalTime;for(i=0;iRRarrayi.ServiceTime;用户输入模式cout*endl

9、;coutn;coutq;cout”请按到达时间的顺序依次输入进程名:endl;for(i=0;iRRarrayi.name;cout”请从小到大输入进程到达时间:endl;for(i=0;iRRarrayi.ArrivalTime;cout”请按到达时间的顺序依次输入进程服务时间:endl;for(i=0;iRRarrayi.ServiceTime;cout*endl;输出用户所输入的信息coutTheinformationofprocessesisthefollowing:endl;coutsetw(10)进程名;coutsetw(10)”至U达时间;coutsetw(10)服务时间endl;for(i=0;in;i+)(coutsetw(10)RRarrayi.name;coutsetw(10)RRarrayi.ArrivalTime;coutsetw(10)RRarrayi.ServiceTimeendl;cout*endl;voidRRAlgorithm()(charprocessMoment100;/存储每个时间片p对应的进程名称RRqueue.push(RRarray0);intprocessMomentPoint=0;intCurrentTime=0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号