欢迎来到天天文库
浏览记录
ID:55579615
大小:852.00 KB
页数:6页
时间:2020-05-18
《实验二作业调度实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二作业调度实验一.实验目的要求 用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。 二.实验要求 1、编写并调试一个单道处理系统的作业等待模拟程序。作业等待算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,以比较各种算法的优缺点。 2、编写并调度一个多道程序系统的作业调度模拟程序。作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。对于多道程序系
2、统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。三、实验过程1.单道处理系统的作业等待模拟程序(分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。)(1)代码实现(1).1高响应比算法voidhrn(intm)//高响应比算法{JCBmin;inti,iden;system("cls");inital();for(i=0;istate=='W'&&p->reachtime<=times)if(iden){min=
3、p;iden=0;}elseif(p->super>min->super)min=p;p=p->next;}while(p!=NULL);if(iden){i--;times++;//printf("time=%d:tnoJCBsubmib...wait...",time);if(times>1000){printf("runtimeistoolong...error...");getch();}}else{running(min,m);//调用running()函数}}//forfinal();//调用running()函数}(1).2最短作业优先算法Voi
4、dsjf(intm)//最短作业优先算法{JCBmin;inti,iden;system("cls");inital();for(i=0;istate=='W'&&p->reachtime<=times)if(iden){min=p;iden=0;}elseif(p->needtimeneedtime)min=p;p=p->next;}while(p!=NULL);if(iden){i--;//printf("time=%d:tnoJCBsubmib...wait...",time
5、);times++;if(times>100){printf("runtimeistoolong...error");getch();}}else{running(min,m);//调用running()函数}}//forfinal();//调用running()函数}(1).3先来先服务算法voidfcfs(intm)//先来先服务算法{inti,iden;system("cls");inital();for(i=0;istate=='W'&&p->reachtime<=times)iden=0;if
6、(iden)p=p->next;}while(p!=NULL&&iden);if(iden){i--;printf("没有满足要求的进程,需等待");times++;if(times>100){printf("时间过长");getch();}}else{running(p,m);//调用running()函数}}final();//调用running()函数}(2).实验结果及分析主程序菜单《先来先服务算法》第一轮作业调度,如图显示了每个作业提交时间、需求时间、响应比、即时状态、主存需求、磁带机数量等,每次调度完毕输出作业完成时间、周转时间、带权周转时间、释放的
7、资源:同样,第二轮调度,作业22222完成,如下显示:同样,第三轮调度,作业33333完成,如下显示:全部作业运行完毕,计算总的平均周转时间和带权周转时间:《短作业优先算法》单道作业批处理系统初始化,输入三个作业,按照提示输入其时间,资源需求等:第一轮作业调度,如图显示了每个作业提交时间、需求时间、响应比、即时状态、主存需求、磁带机数量等,每次调度完毕输出作业完成时间、周转时间、带权周转时间、释放的资源:同样,第二轮调度,作业33333完成,输出作业完成时间、周转时间、带权周转时间、释放的资源:同样,第三轮调度,作业22222完成,输出作
此文档下载收益归作者所有