欢迎来到天天文库
浏览记录
ID:38751742
大小:173.00 KB
页数:8页
时间:2019-06-18
《最高响应比调度算法程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三模拟处理机HRRN调度算法一、实验目的:用c++设计HRRN调度算法程序。二、实验内容:本实验随机输入的进程个数、进程名称、进程提交到系统的时间、进程运行所需时间。通过模拟程序。显示以下信息:1)处理机对进程的调度过程。2)计算这N个进程的平均周转时间。三、HRRN(最高响应比调度算法)原理最高响应比调度:在每次调度作业时,先计算后备队中每个作业的响应比,然后挑选响应比高者投入运行。响应比R定义:R=(w+S)/S(R:响应比,W=等待时间,S=运行时间)响应比R=周转时间/运行时间=(运行时间+等待时间)/运行时间=1
2、+(等待时间/运行时间)四、代码:#include#include#include#include#include#includetypedefcharstring[10];/*//定义string为含有10个字符元素的字符数组类型*/structtask{stringname;intarrTime;intserTime;intwaiTime;intbegTime;intfinTime;intturTime;intprio
3、rity;intfinish;}JCB[10];intnum;voidinput(){inti;system("cls");printf("请输入作业数量:");scanf("%d",&num);for(i=0;i4、erTime);JCB[i].priority=0;JCB[i].finish=0;}}intHRN(intpre){intcurrent=1,i,j;for(i=0;i5、j=i;jJCB[current].priority)current=j;}else{if(JCB[j].arrTime6、.priority>JCB[current].priority)current=j;}}}returncurrent;}voidruning(inti,inttimes,intpre,intstaTime,intendTime){if(times==0){JCB[i].begTime=JCB[i].arrTime;JCB[i].finTime=JCB[i].begTime+JCB[i].serTime;JCB[i].turTime=JCB[i].serTime;staTime=JCB[i].begTime;}else{if(J7、CB[i].arrTime>JCB[pre].finTime)JCB[i].begTime=JCB[i].arrTime;elseJCB[i].begTime=JCB[pre].finTime;JCB[i].finTime=JCB[i].begTime+JCB[i].serTime;JCB[i].turTime=JCB[i].finTime-JCB[i].arrTime;}if(times==num-1)endTime=JCB[i].finTime;JCB[i].finish=1;}voidprint(inti,inttime8、s){if(times==0){printf("名称到达时间服务时间开始时间完成时间周转时间");}printf("%s%9d%9d%9d%9d%9d",JCB[i].name,JCB[i].arrTime,JCB[i].serTime,JCB[i].begTime,
4、erTime);JCB[i].priority=0;JCB[i].finish=0;}}intHRN(intpre){intcurrent=1,i,j;for(i=0;i5、j=i;jJCB[current].priority)current=j;}else{if(JCB[j].arrTime6、.priority>JCB[current].priority)current=j;}}}returncurrent;}voidruning(inti,inttimes,intpre,intstaTime,intendTime){if(times==0){JCB[i].begTime=JCB[i].arrTime;JCB[i].finTime=JCB[i].begTime+JCB[i].serTime;JCB[i].turTime=JCB[i].serTime;staTime=JCB[i].begTime;}else{if(J7、CB[i].arrTime>JCB[pre].finTime)JCB[i].begTime=JCB[i].arrTime;elseJCB[i].begTime=JCB[pre].finTime;JCB[i].finTime=JCB[i].begTime+JCB[i].serTime;JCB[i].turTime=JCB[i].finTime-JCB[i].arrTime;}if(times==num-1)endTime=JCB[i].finTime;JCB[i].finish=1;}voidprint(inti,inttime8、s){if(times==0){printf("名称到达时间服务时间开始时间完成时间周转时间");}printf("%s%9d%9d%9d%9d%9d",JCB[i].name,JCB[i].arrTime,JCB[i].serTime,JCB[i].begTime,
5、j=i;jJCB[current].priority)current=j;}else{if(JCB[j].arrTime6、.priority>JCB[current].priority)current=j;}}}returncurrent;}voidruning(inti,inttimes,intpre,intstaTime,intendTime){if(times==0){JCB[i].begTime=JCB[i].arrTime;JCB[i].finTime=JCB[i].begTime+JCB[i].serTime;JCB[i].turTime=JCB[i].serTime;staTime=JCB[i].begTime;}else{if(J7、CB[i].arrTime>JCB[pre].finTime)JCB[i].begTime=JCB[i].arrTime;elseJCB[i].begTime=JCB[pre].finTime;JCB[i].finTime=JCB[i].begTime+JCB[i].serTime;JCB[i].turTime=JCB[i].finTime-JCB[i].arrTime;}if(times==num-1)endTime=JCB[i].finTime;JCB[i].finish=1;}voidprint(inti,inttime8、s){if(times==0){printf("名称到达时间服务时间开始时间完成时间周转时间");}printf("%s%9d%9d%9d%9d%9d",JCB[i].name,JCB[i].arrTime,JCB[i].serTime,JCB[i].begTime,
6、.priority>JCB[current].priority)current=j;}}}returncurrent;}voidruning(inti,inttimes,intpre,intstaTime,intendTime){if(times==0){JCB[i].begTime=JCB[i].arrTime;JCB[i].finTime=JCB[i].begTime+JCB[i].serTime;JCB[i].turTime=JCB[i].serTime;staTime=JCB[i].begTime;}else{if(J
7、CB[i].arrTime>JCB[pre].finTime)JCB[i].begTime=JCB[i].arrTime;elseJCB[i].begTime=JCB[pre].finTime;JCB[i].finTime=JCB[i].begTime+JCB[i].serTime;JCB[i].turTime=JCB[i].finTime-JCB[i].arrTime;}if(times==num-1)endTime=JCB[i].finTime;JCB[i].finish=1;}voidprint(inti,inttime
8、s){if(times==0){printf("名称到达时间服务时间开始时间完成时间周转时间");}printf("%s%9d%9d%9d%9d%9d",JCB[i].name,JCB[i].arrTime,JCB[i].serTime,JCB[i].begTime,
此文档下载收益归作者所有