欢迎来到天天文库
浏览记录
ID:21737194
大小:51.50 KB
页数:6页
时间:2018-10-24
《进程调度实验程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、进程调度算法#include"stdio.h"#defineN50intn;intsj;structGzuo{intid;//进程名字intdt;//到达时刻intst;//服务时间intwct;//完成时刻intst2;//标志是否完成floatzt;//周转时间floatdczt;//带权周转时间};Gzuoa[N];voidinput(Gzuoa[]){printf("请输入进程个数:");scanf("%d",&n);for(inti=0;i2、f("t服务时间:");scanf("%d",&a[i].st);a[i].st2=a[i].st;printf("");}printf("t请输入时间片大小(0=0;j--){for(i=0;ia[i+1].dt){min=a3、[i].dt;a[i].dt=a[i+1].dt;a[i+1].dt=min;min=a[i].st;a[i].st=a[i+1].st;a[i+1].st=min;min=a[i].st2;a[i].st2=a[i+1].st2;a[i+1].st2=min;min=a[i].id;a[i].id=a[i+1].id;a[i+1].id=min;}}}time=a[0].dt;//printf("赋值后TIME值为:%d",time);min=0;//控制5个进程循环while(min4、0&&a[i].dt<=time)flag=false;}for(i=0;i0){if(a[i].dt<=time){a[i].st2=a[i].st2-sj;//printf("当前a[%d].st2值为:%d",i,a[i].st2);printf("运算后当前a[%d].st2值为:%d",i,a[i].st2);剩余所需服务时间time=time+sj;//printf("当前TIME值为:%d",time);printf("增加之后TIME值为:%d",time);//已服务时间if(a[i].s5、t2<=0){a[i].wct=time+a[i].st2;a[i].zt=(float)(a[i].wct-a[i].dt);//周转=完成-到达a[i].dczt=a[i].zt/a[i].st;//带权=周转/服务min++;}}elseif(flag){for(i=0;i0&&a[i].dt>time){time=a[i].dt;break;}}}}}}printf("进程:到达时间t服务时间t完成时间t周转时间t带权周转时间");sum1=0;sum2=0;for(j=0;j6、(i=0;i7、m2;for(j=n-1;j>=0;j--){for(i=0;ia[i+1].dt){min=a[i].dt;a[i].dt=a[i+1].dt;a[i+1].dt=min;min=a[i].st;a[i].st=a[i+1].st;a[i+1].st=min;min=a[i].id;a[i].id=a[i+1].id;a[i+1].id=min;}}}a[0].wct=a[0].st+a[0].dt;a[0].zt=(float)a[0].st;
2、f("t服务时间:");scanf("%d",&a[i].st);a[i].st2=a[i].st;printf("");}printf("t请输入时间片大小(0=0;j--){for(i=0;ia[i+1].dt){min=a
3、[i].dt;a[i].dt=a[i+1].dt;a[i+1].dt=min;min=a[i].st;a[i].st=a[i+1].st;a[i+1].st=min;min=a[i].st2;a[i].st2=a[i+1].st2;a[i+1].st2=min;min=a[i].id;a[i].id=a[i+1].id;a[i+1].id=min;}}}time=a[0].dt;//printf("赋值后TIME值为:%d",time);min=0;//控制5个进程循环while(min
4、0&&a[i].dt<=time)flag=false;}for(i=0;i0){if(a[i].dt<=time){a[i].st2=a[i].st2-sj;//printf("当前a[%d].st2值为:%d",i,a[i].st2);printf("运算后当前a[%d].st2值为:%d",i,a[i].st2);剩余所需服务时间time=time+sj;//printf("当前TIME值为:%d",time);printf("增加之后TIME值为:%d",time);//已服务时间if(a[i].s
5、t2<=0){a[i].wct=time+a[i].st2;a[i].zt=(float)(a[i].wct-a[i].dt);//周转=完成-到达a[i].dczt=a[i].zt/a[i].st;//带权=周转/服务min++;}}elseif(flag){for(i=0;i0&&a[i].dt>time){time=a[i].dt;break;}}}}}}printf("进程:到达时间t服务时间t完成时间t周转时间t带权周转时间");sum1=0;sum2=0;for(j=0;j6、(i=0;i7、m2;for(j=n-1;j>=0;j--){for(i=0;ia[i+1].dt){min=a[i].dt;a[i].dt=a[i+1].dt;a[i+1].dt=min;min=a[i].st;a[i].st=a[i+1].st;a[i+1].st=min;min=a[i].id;a[i].id=a[i+1].id;a[i+1].id=min;}}}a[0].wct=a[0].st+a[0].dt;a[0].zt=(float)a[0].st;
6、(i=0;i7、m2;for(j=n-1;j>=0;j--){for(i=0;ia[i+1].dt){min=a[i].dt;a[i].dt=a[i+1].dt;a[i+1].dt=min;min=a[i].st;a[i].st=a[i+1].st;a[i+1].st=min;min=a[i].id;a[i].id=a[i+1].id;a[i+1].id=min;}}}a[0].wct=a[0].st+a[0].dt;a[0].zt=(float)a[0].st;
7、m2;for(j=n-1;j>=0;j--){for(i=0;ia[i+1].dt){min=a[i].dt;a[i].dt=a[i+1].dt;a[i+1].dt=min;min=a[i].st;a[i].st=a[i+1].st;a[i+1].st=min;min=a[i].id;a[i].id=a[i+1].id;a[i+1].id=min;}}}a[0].wct=a[0].st+a[0].dt;a[0].zt=(float)a[0].st;
此文档下载收益归作者所有