欢迎来到天天文库
浏览记录
ID:55952133
大小:63.00 KB
页数:6页
时间:2020-06-18
《FCFS和SJF进程调度调度算法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统实验报告一班级:08网络工程一、实验目的通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。二、实验内容设计程序模拟进程的先来先服务FCFS和短作业优先SJF调度过程。假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。三、要求程序要求:1)进程个数
2、n;每个进程的到达时间T1,…,Tn和服务时间S1,…,Sn;选择算法1-FCFS,2-SJF。2)要求采用先来先服务FCFS和短作业优先SJF分别调度进程运行,计算每个进程的周转时间和带权周转时间,并且计算所有进程的平均周转时间和带权平均周转时间;3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻3:进程B开始运行”等等;4)输出:要求输出计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。实验要求1)上机前认真复习FCFS和SJF进程调度调度算
3、法,熟悉进程调度的执行过程;2)上机时独立编程、调试程序;3)根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行结果截图、发现的问题以及解决方法)。四、源程序#include#include#includeusingnamespacestd;voidFCFS();voidSJF();staticconstintMaxNum=100;intArrivalTime[MaxNum];//到达时间intServiceTime[
4、MaxNum];//服务时间intFinishTime[MaxNum];//完成时间intWholeTime[MaxNum];//周转时间doubleWeightWholeTime[MaxNum];//带权周转时间doubleAverageWT_FCFS,AverageWT_SJF;//平均周转时间doubleAverageWWT_FCFS,AverageWWT_SJF;//平均带权周转时间intServiceTime2[MaxNum];//用于计算SJF的量intData=0;intPNum=0;i
5、ntNowTime=0;doublex=0,y=0;inti;voidmain(){inta;cout<<"请输入进程个数:";cin>>PNum;for(i=0;i>Data;ArrivalTime[i]=Data;}for(i=0;i>Data;ServiceTime[i]=Data;Serv
6、iceTime2[i]=Data;}cout<<"请选择要计算的类型1-FCFS,2-SJF";cin>>a;if(a==1){FCFS();}else{SJF();}}voidFCFS(){cout<<"-------------------------------------------"<7、;i++){if(ArrivalTime[i]>NowTime){NowTime=ArrivalTime[i];}NowTime+=ServiceTime[i];FinishTime[i]=NowTime;WholeTime[i]=FinishTime[i]-ArrivalTime[i];WeightWholeTime[i]=(double)WholeTime[i]/ServiceTime[i];}for(i=0;i8、me[i];}AverageWT_FCFS=x/PNum;AverageWWT_FCFS=y/PNum;for(i=0;i
7、;i++){if(ArrivalTime[i]>NowTime){NowTime=ArrivalTime[i];}NowTime+=ServiceTime[i];FinishTime[i]=NowTime;WholeTime[i]=FinishTime[i]-ArrivalTime[i];WeightWholeTime[i]=(double)WholeTime[i]/ServiceTime[i];}for(i=0;i8、me[i];}AverageWT_FCFS=x/PNum;AverageWWT_FCFS=y/PNum;for(i=0;i
8、me[i];}AverageWT_FCFS=x/PNum;AverageWWT_FCFS=y/PNum;for(i=0;i
此文档下载收益归作者所有