《最高响应比调度算法代码》由会员分享,可在线阅读,更多相关《最高响应比调度算法代码(9页珍藏版)》请在金锄头文库上搜索。
1、 实验四 模拟解决机HRN调度算法一、实验目的:用c+设计HRRN调度算法程序。二、实验内容:本实验随机输入的进程个数、进程名称、进程提交到系统的时间、进程运营所需时间。通过模拟程序。显示如下信息:)解决机对进程的调度过程。2)计算这N个进程的平均周转时间。三、RRN(最高响应比调度算法)原理最高响应比调度:在每次调度作业时,先计算后备队中每个作业的响应比,然后挑选响应比高者投入运营。响应比R定义: =(+S)/ (R:响应比,W等待时间,S运营时间)响应比R 周转时间 运营时间 (运营时间 + 等待时间) 运营时间 = (等待时间/ 运营时间)四、示例如:输入 进程个数:5 进程名称 达到系
2、统时间 所需服务时间 3B 6C 4 4D E 2显示运营成果:进程名称 达到系统时间 所需服务时间 开始时间 结束时间A 3 0 3B 2 6 3 9 4 9 1 8 2 13 15D 6 5 15 0个进程的平均周转时间:(7+14)/5=五、运营成果六、代码#iclude td.h#nludestdlibhtypef srutNoe hrnme10; nt into; it runtim; in sar; int inish; stus; nt hrr; in sum;N;in ect(Noe ode,int n) int ,fag=; for(i=0;in;i+) i(0=nodi.t
3、atus) fla=1; beak; i(1=lag) et i; etun -;t comute(ode no,int ) rtun (nodeunme-odeo)/node.rnie;t in() in ,j,ma,t=0; Nodenode10; itf(输入解决进程的个数:n); sn(d,&n); gechar(); rinf(进程名称 达到系统时间 所需服务时间n); for(i=;i;i) sa(s,noeiname); scn(%d,nodi.ino); scanf(d,&od.rntie); getc(); nodei.stats=0; i(0=i) nodei.hrr=;
4、le(1) intindx; index=select(node,n); nlag0; if(inde=-1) break; max; r(=0;in;i+) if(oei.nt=t&0=noeists) nodei.rn=mpe(odi,t); if(=i) nodeihrr=; if(ode.hrrnodemax.hrn) maxi; flg=1; if(1=fag) nodemaxstat=t; t+=nodemax.runte; noema.statu=; nodema.fiis=t; omax.mnoemax.fish-nodema.nto; else t+; or(=0;in-;) f(=i;dej+1.iih) Ne tem=nodej; ndej=de+1; noej+1=tem; pt(进程名称 达到系统时间 所需服务时间 开始时间 结束时间n); double sum=0; or(i0;in;i+) printf(%12%112d%1d,ode.name,eii,noeuntime,node.star,oei.finish); m+=ndei.su; rin(平均周转时间:%2lfn,u/n); return 0;