版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告:时间片轮转RR进程调度算法题目:时间片轮转算法的实现班级:软件工程2班 姓名:代其全 学号:1025111022完成日期:2012/10/23需求分析程序要实现时间片轮转进程调度算法接收用户输入的进程数(n),各个进程的进程名,到达时间(T1.Tn)和 服务时间(S1.Sn),以及时间片大小q。输出各个进程首次运行的时间 输出各个进程的完成时间,周转时间,带权周转时间,所有进程的平均周 转时间,以及带权平均周转时间。 测试数据为:进程数n为5,各进程的名字,到达时间,服务时间分别 为:a 0 4 ; b 1 3; c 2 5; d 3 2; e 4 4。时间片大小 q 为 1 和 5
2、。概要设计抽象数据类型的定义:int ArrivalTime100;/ 到达时间int ServiceTime100;/月艮务时间int FinishTime100;/完成时间int WholeTime100;/周 转时间double WeightWholeTime100;/带权周转时间double AverageWT,AverageWWT;bool Finished100;/ 完成标识typedef struct QNode一char name;/进程标识int arrivaltime;/ 到达时间int servicetime;/ 服务时间int workedtime; /进程已经运行的时
3、间bool status;表示进程的状态,1表示已经结束,0表示还未执行struct QNode *next;QNode, *QueuePtr;typedef structQueuePtr front;/ 队头指针QueuePtr rear;/ 队尾指针LinkQueue;主程序的流程:调用Init()函数初始化到达时间,服务时间,时间片等进程信息, 调度RR ()函数实现轮转调度发,最后调度print()函数输出运算结果详细设计初始化函数void init()int cputime;int x,y;char name;coutn; 进程个数coutendl;for(int i=0;in;i+
4、)QNode node;cout请输入第i+1namexy;=name;node.arrivaltime=ArrivalTimei=x;node.servicetime=ServiceTimei=y;node.workedtime=0;node.status=Finishedi=0;node.next=NULL;arrayi=node;/cout队中增加一个元素endl;coutendl;/各个进程的到达时间和服务时间coutcputime;q=cputime;/时间片大小RR()函数void RR()int temp;QNode e;int count1=0;按到达时间先后
5、排序进程信息数组for(int i=0;in;i+)for(int j=1;jarrayi+1.arrivaltime)temp=arrayi.arrivaltime;arrayi.arrivaltime=arrayi+1.arrivaltime;arrayi.arrivaltime=temp;/此时,array数组中的元素都是按到达时间从小到大排列的for(i=0;in;i+)if(Finishedi=0)count1+;for(intj=0;jn;j+)if(arrayj.arrivaltime=currentTime)EnQueue(queue,arrayj);/将到达时间为当前时间的进
6、程加入到 队列中if(count1!=0)/依然有进程未完成for(intj=0;j=(*queue.front-next).servicetime)/ 时间片大于进程服务时间时, 进程一次性执行完,进入下一进程/cout!;cout 时 亥【J currentTime”:进 程next-name”开始执行endl;for(int x=0;xnext).servicetime;x+)currentTime+;for(int y=0;ynext).servicetime;/ 更新 当前时间cout当前时间为:currentTimenext).workedtimenext).servicetime
7、)/ 进程已 工作时间小于服务时间时if(*queue.front-next).workedtime=0)/ 进程已工作时间为零 时/ cout!;cout 时亥【JcurrentTime”: 进 程next).name”开始执行endl;/ currentTime=currentTime+q;/更 新当前时间 for(int x=0;xq;x+)currentTime+;for(int j=0;jnext).workedtime+=q;/ 更新进程已工作时 间DeQueue(queue,e);/ 将该进程出队EnQueue(queue,e);/将该进程入队,加入到了队列的末尾 else/进程
8、工作时间不为零且未达到服务时间时for(inti=0;inext).workedtime!=(*queue.front-next).servicetime;i+ +)currentTime+;/ 当前时间加一 for(int j=0;jnext).workedtime=(*queue.front-next).servicetime)/ 已工作 时间达到要求的服务时间(*queue.front-next).status=1;count+;Finishedcount=1;DeQueue(queue,e);FinishTimecount=currentTime;/ 当前时间为完 成时间,返回存放入F
9、inishTime数组中3.输出函数void print(int n)cout完成时间:;for(int i=0;in;i+)coutFinishTimei;coutendl;cout周转时间:;for(i=0;in;i+)WholeTimei=FinishTimei-ArrivalTimei;coutWholeTimei;coutendl;cout带权周转时间:;for(i=0;in;i+)WeightWholeTimei=double(WholeTimei)/ServiceTimei;coutWeightWholeTimei;coutendl;for(i=1;in;i+)WholeTime
10、0+=WholeTimei;AverageWT=double(WholeTime0)/n;cout”平 均周转时间AverageWTendl;for(i=1;in;i+)WeightWholeTime0+=WeightWholeTimei;AverageWWT=WeightWholeTime0/n;cout带权平均周转时间:AverageWWTnext=NULL;return 1;int EnQueue(LinkQueue &q,QNode &e)QueuePtr p=(QueuePtr)malloc(sizeof(QNode);if(!p)return 0;p-name=;p-a
11、rrivaltime=e.arrivaltime;p-servicetime=e.servicetime;p-status=e.status;p-workedtime=e.workedtime;p-next=NULL;q.rear-next=p;q.rear=p;return 1;int DeQueue(LinkQueue &q,QNode &e)if(q.rear=q.front)return 0;QueuePtr p=q.front-next;=p-name;e.arrivaltime=p-arrivaltime;e.servicetime=p-servicetime;e.st
12、atus=p-status;e.workedtime=p-workedtime;q.front-next=p-next;if(q.rear=p)q.rear=q.front;free(p);return 1;调试分析在时间片大于所有进程的服务时间时,程序正常运行,当时间片小于某些进 程的服务时间时,程序不能输出正确的运算结果。用户使用说明根据提示输入进程的个数,各进程的名字,到达时间,服务时间,时间片大小等。按下回车键得到输出结果。六.测试结果当输入进程信息,设定时间片大小q为5时,运行结果为:C:UsersAdmlnistratorXDesktopXDebugRR (lj.KeH青输入进程的
13、个数/睛输入第1个进程的名字、到达时间和服务时间迫0 4R青输入第2个进程的名字、到达时间和服务时间:b 1 3R青输入第3个进程的名字、到达时间和服务时间* 2 5H青输入第4个进程的名字、到达时间和服务时间/ 3 2H青输入第s个进程的名字、到达时间和服务时间冲4 44 J:丸丸丸E、1 一-c 一-c 丁 口A口 I . 111,.- 111,.- h. J i 0 J片一 可口王eg任eg王4Han 入0:4:7:1214人07周周平 Ses 兀屈正壬市PFde? :aki若王呈间to9时y:周y4 -15 -1青输入第S个进程的名字、到达时间和服务时间冲4 4青输入第4个进程的名字、到达时间和服务时间河3 2青输入第3个进程的名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版房地产项目预售合同示范文本4篇
- 2025版台式一体机商场采购合同包含软件安装与培训服务3篇
- 2025年建筑材料堆放场地租赁与供应链管理合同3篇
- 二零二五版民营医院儿科医师及护士劳动合同4篇
- 二零二五年餐饮业短期服务员派遣合同3篇
- 2025年度高科技产品远期交易合同4篇
- 2025年度绿色建筑节能改造合同6篇
- 2025年度数据中心机房租赁与环保责任承诺合同3篇
- 二零二五年度智能门窗系统研发与安装一体化服务合同4篇
- 2025年环保型布草生产与销售一体化合同3篇
- 工业自动化生产线操作手册
- 房地产销售任务及激励制度
- 并购指南(如何发现好公司)
- DL-T-1642-2016环形混凝土电杆用脚扣
- 铜矿成矿作用与地质环境分析
- 30题纪检监察位岗位常见面试问题含HR问题考察点及参考回答
- 询价函模板(非常详尽)
- 《AI营销画布:数字化营销的落地与实战》
- 麻醉药品、精神药品、放射性药品、医疗用毒性药品及药品类易制毒化学品等特殊管理药品的使用与管理规章制度
- 乘务培训4有限时间水上迫降
- 2023年低年级写话教学评语方法(五篇)
评论
0/150
提交评论