下载此文档

队列调度算法.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
一、实验设计题目调度算法,要求用先来先服务(FCFS)和段作业优先(SJF)算法实现。二、设计思路1、先来先服务调度算法(FCFS)先来先服务调度算法是一种简单的调度算法,该算法可以用于作业调度也可以用于进程调度。作业调度中采用该算法时,每次调度都是从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列。在进程中采用先来先服务算法时,每次调度是从就绪队列中选择一个最先进入该队列的进程,为之分配处理机,使之投入运行。该进程一直运行到完成或发生某事件而阻塞后才放弃处理机。该算法有利于常作业而不利于短作业。2、短作业优先调度算法(SJF)短作业优先算法是针对短作业或短进程优先调度的算法,可以用用于作业调度也可以用于进程调度。短作业优先算法是从后备队列中选择一个或多个估计运行时间较短的作业将它们调入内存中运行。而短进程优先调度算法则是在后备队列中选择一个估计运行时间最短的进程,将处理机分配给它使他立即执行并一直执行到完成,或发生某事件而阻塞后才放弃处理机时再从新调度。三、数据结构和主要函数说明#include<>#include<>#defineSIZE4//定义作业数为4structJob_type//作业的结构体//作业结构依次是:作业名到达时间运行时间//1066//21100//3288//43100//以数组形式保存如下Job_typejob[]={1,0,66,2,1,100,3,2,88,4,3,100};load();//调用载入函数fcfs();//调用先来先服务的函数sjf();//调用短作业优先调度函数四、源程序及运行结果代码#include<>#include<>#defineSIZE4//定义作业数为4structJob_type//作业的结构体{intno;//作业号inttb;//作业开始时间inttr;//运行时间}x;//作业结构依次是:作业名到达时间运行时间//1066//21100//3288//43100//以数组形式保存如下Job_typejob[]={1,0,66,2,1,100,3,2,88,4,3,100};voidload(){inti;printf("输入作业名称:\n");for(i=0;i<SIZE;i++)scanf("%d,%d,%d",&job[i].no,&job[i].tb,&job[i].tr);printf("作业名到达时间运行时间\n");//载入作业for(i=0;i<SIZE;i++)printf("\t%d\t%d\t%d\n",job[i].no,job[i].tb,job[i].tr);}voidfcfs()//调用FCFS算法{inti,j,t=0,tw=0,tt=0;//t为完成时间,tw为等待时间,tt为周转时间for(i=0;i<SIZE-1;i++)//判断作业开始时间的大小,按照从小到大的排列for(j=i+1;j<SIZE;j++)if(job[i].tb>job[j].tb)//i作业的tb大于j作业的tb,则i和j调换位置{x=job[i];job[i]=job[j];job[j]=x;}printf("FCFS调度结果:\n");printf(

队列调度算法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小52 KB
  • 时间2016-09-10