欢迎来到天天文库
浏览记录
ID:2234241
大小:76.20 KB
页数:12页
时间:2017-11-15
《先来先服务fcfs和短作业优先sjf进程调度算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一先来先服务FCFS和短作业优先SJF进程调度算法班级:2013级软件3班姓名:陈夏玲学号:1325112005【实验目的】:通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。【实验内容】1、需求分析(1)输入的形式和输入值的范围;进程的个数num:大于0的整数进程的到达时间ArrivalTime[i]:大于等于0的整数进程的服务时间ServiceTime[i];大于0的整数(2)输出的形式输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。(3)程序所能达到的功能;先来先服务FCFS
2、和短作业优先SJF分别调度进程运行,计算每个进程的周转时间和带权周转时间,并且计算所有进程的平均周转时间和带权平均周转时间(4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。2、概要设计设计程序模拟进程的先来先服务FCFS和短作业优先SJF调度过程。假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。Ø变量初始化;Ø接收用户输入n,T1,…,Tn,S1,…,Sn
3、;算法选择1-FCFS,2-SJF;Ø按照选择算法进行进程调度,计算进程的完成时间、周转时间和带权周转时间;Ø计算所有进程的平均周转时间和平均带权周转时间;Ø按格式输出调度结果。3、详细设计2个算法voidFCFS(int*ArrivalTime,int*ServiceTime,intnum){inti=0;intj=0;int*FinishTime=newint[num];int*WholeTime=newint[num];double*WeightWholeTime=newdouble[num];doubleAverageWholeTime=0;doubleAverageW
4、eightWholeTime=0;intlastFinishTime=0;for(i=0;ilastFinishTime){FinishTime[i]=ArrivalTime[i]+ServiceTime[i];}else{FinishTime[i]=lastFinishTime+ServiceTime[i];}lastFinishTime=FinishTime[i];WholeTime[i]=FinishTime[i]-ArrivalTime[i];WeightWholeTime[i]=WholeTime[i]/(dou
5、ble)ServiceTime[i];}cout<<"完成时间为:"<6、rageWholeTime<7、l;}voidSJF(int*ArrivalTime,int*ServiceTime,intnum){inti=0;intj=0;bool*done=newbool[num];int*copyArrivalTime=newint[num];for(i=0;i
6、rageWholeTime<7、l;}voidSJF(int*ArrivalTime,int*ServiceTime,intnum){inti=0;intj=0;bool*done=newbool[num];int*copyArrivalTime=newint[num];for(i=0;i
7、l;}voidSJF(int*ArrivalTime,int*ServiceTime,intnum){inti=0;intj=0;bool*done=newbool[num];int*copyArrivalTime=newint[num];for(i=0;i
此文档下载收益归作者所有