如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
调度算法实验计算机科学与技术学院计0810813022026高宁实验目的:1.掌握进程控制块的概念,理解基本的进程调度算法。实验内容:1.FCFS2.短作业优先算法3.优先级调度算法4.最高响应比调度算法实验源程序:#include<iostream>#include<iomanip>#include<fstream>usingnamespacestd;classJOB{//定义作业数据结构体public:intnumber;//作业个数intreach_time;//作业到达时间intreach_hour;intreach_minite;intneed_time;//作业运行时间intprivilege;//优先级floatexcellent;intstart_time;//开始时间intwait_time;//等待时间intvisited;//已读取次数public:JOB(){number=0;reach_time=0;reach_hour=0;reach_minite=0;need_time=0;privilege=0;excellent=0.0;start_time=0;wait_time=0;visited=0;}JOB&Copy(JOBjs[]){inti=0;while(js[i].number&&js[i].number>0){i++;}JOB*js2=newJOB[i];for(intj=0;j<i;j++){js2[j].number=js[j].number;js2[j].reach_time=js[j].reach_time;js2[j].reach_hour=js[j].reach_hour;js2[j].reach_minite=js[j].reach_minite;js2[j].need_time=js[j].need_time;js2[j].privilege=js[j].privilege;js2[j].excellent=js[j].excellent;js2[j].start_time=js[j].start_time;js2[j].wait_time=js[j].wait_time;}return*js2;}};//FIFO算法voidFIFO(JOBjob[],intquantity){JOB*jobs;jobs=(&jobs->Copy(job));intcurrent_hour;intcurrent_minute;inttotal_time=0;//输出作业流cout<<endl;cout<<endl<<"FIFO调度算法:"<<endl;cout.setf(2);cout<<setw(10)<<"作业号:"<<setw(12)<<"到达时间:"<<setw(12)<<"开始时间:"<<setw(14)<<"周转时间(分):"<<endl;current_hour=jobs[0].reach_hour;current_minute=jobs[0].reach_minite;for(inti=0;i<quantity;i++){jobs[i].start_time=current_hour*100+current_minute;jobs[i].wait_time=(current_hour-jobs[i].reach_hour)*60+(current_minute-jobs[i].reach_minite)+jobs[i].need_time;cout<<setw(10)<<jobs[i].number<<setw(12)<<jobs[i].reach_time<<setw(12)<<jobs[i].start_time<<setw(14)<<jobs[i].wait_time<<endl;current_hour=current_hour+(jobs[i].need_time+current_minute)/60;current_minute=(jobs[i].need_time+current_minute)%60;total_time+=job