欢迎来到天天文库
浏览记录
ID:30210301
大小:138.05 KB
页数:13页
时间:2018-12-27
《fcfs和sjf进程调度算法实验报告材料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、xx大学 操作系统 实验报告姓名:学号:班级:实验日期:实验名称:先来先服务FCFS和短作业优先SJF进程调度算法实验一先来先服务FCFS和短作业优先SJF进程调度算法1.实验目的:通过这次实验,理解FCFS和SJF进程调度算法的运行原理,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。:2.需求分析(1)输入的形式和输入值的范围;输入:进程个数N范围:02、达时间运行时间开始运行时间结束时间执行顺序周转时间带权周转时间时刻*:进程*开始运行************************时刻*:进程*开始运行************************。。。。平均周转时间:平均带权周转时间:(3)程序所能达到的功能输入进程的个数N,以及每个进程的到达时间和运行时间。通过选择FCFS或是SJF进程调度算法进行调度,计算出每个进程的开始运行时间、结束时间、执行顺序、周转时间、带权周转时间,并最终求得平均周转时间和平均带权周转时间。(4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。正确一(FCFS)正3、确二(SJF)输入参数错误3、概要设计所有抽象数据类型的定义:staticintMaxNum=100;intArrivalTime[MaxNum];//到达时间intServiceTime[MaxNum];//服务时间intFinishTime[MaxNum];//结束时间intWholeTime[MaxNum];//周转时间doubleWeightWholeTime[MaxNum];//带权周转时间doubleAverageWT_FCFS,AverageWT_SJF;//平均周转时间doubleAverageWWT_FCFS,AverageWWT_SJF;//平均带4、权周转时间主程序的流程:l变量初始化l接受用户输入的N,T1…..Tn,S1….Sn;l选择算法进行进程调度,计算进程的开始运行时间、结束时间、执行顺序、周转时间、带权周转时间;l计算所有进程的平均周转时间、平均带权周转时间;l按照格式输出调度结果。各程序模块之间的层次(调用)关系Main函数通过对Pinput函数进行调用,对函数的成员变量进行赋值,再通过算法的选择对算法函数进行选择调用,求出题目要求的各个数据结果,最后通过Poutput函数对结果进行格式输出。4、详细设计实现程序模块的具体算法。intFCFS(){//先来先服务算法inti;inttemp_time5、=0;temp_time=Process[0].ArrivalTime;for(i=0;i6、r_schedul,temp_counter;doublerun_time;run_time=Process[i].WholeTime;j=1;while((j7、r_schedul].ArrivalTime;Process[number_schedul].FinishTime=Process[number_schedul].ServiceTime+Process[number_schedul].WholeTime;Process[number_schedul].run_flag=1;temp_time=Process[number_schedul].FinishTime;Process[number_schedul].order=1;temp_counter=1;while(temp_counter
2、达时间运行时间开始运行时间结束时间执行顺序周转时间带权周转时间时刻*:进程*开始运行************************时刻*:进程*开始运行************************。。。。平均周转时间:平均带权周转时间:(3)程序所能达到的功能输入进程的个数N,以及每个进程的到达时间和运行时间。通过选择FCFS或是SJF进程调度算法进行调度,计算出每个进程的开始运行时间、结束时间、执行顺序、周转时间、带权周转时间,并最终求得平均周转时间和平均带权周转时间。(4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。正确一(FCFS)正
3、确二(SJF)输入参数错误3、概要设计所有抽象数据类型的定义:staticintMaxNum=100;intArrivalTime[MaxNum];//到达时间intServiceTime[MaxNum];//服务时间intFinishTime[MaxNum];//结束时间intWholeTime[MaxNum];//周转时间doubleWeightWholeTime[MaxNum];//带权周转时间doubleAverageWT_FCFS,AverageWT_SJF;//平均周转时间doubleAverageWWT_FCFS,AverageWWT_SJF;//平均带
4、权周转时间主程序的流程:l变量初始化l接受用户输入的N,T1…..Tn,S1….Sn;l选择算法进行进程调度,计算进程的开始运行时间、结束时间、执行顺序、周转时间、带权周转时间;l计算所有进程的平均周转时间、平均带权周转时间;l按照格式输出调度结果。各程序模块之间的层次(调用)关系Main函数通过对Pinput函数进行调用,对函数的成员变量进行赋值,再通过算法的选择对算法函数进行选择调用,求出题目要求的各个数据结果,最后通过Poutput函数对结果进行格式输出。4、详细设计实现程序模块的具体算法。intFCFS(){//先来先服务算法inti;inttemp_time
5、=0;temp_time=Process[0].ArrivalTime;for(i=0;i6、r_schedul,temp_counter;doublerun_time;run_time=Process[i].WholeTime;j=1;while((j7、r_schedul].ArrivalTime;Process[number_schedul].FinishTime=Process[number_schedul].ServiceTime+Process[number_schedul].WholeTime;Process[number_schedul].run_flag=1;temp_time=Process[number_schedul].FinishTime;Process[number_schedul].order=1;temp_counter=1;while(temp_counter
6、r_schedul,temp_counter;doublerun_time;run_time=Process[i].WholeTime;j=1;while((j7、r_schedul].ArrivalTime;Process[number_schedul].FinishTime=Process[number_schedul].ServiceTime+Process[number_schedul].WholeTime;Process[number_schedul].run_flag=1;temp_time=Process[number_schedul].FinishTime;Process[number_schedul].order=1;temp_counter=1;while(temp_counter
7、r_schedul].ArrivalTime;Process[number_schedul].FinishTime=Process[number_schedul].ServiceTime+Process[number_schedul].WholeTime;Process[number_schedul].run_flag=1;temp_time=Process[number_schedul].FinishTime;Process[number_schedul].order=1;temp_counter=1;while(temp_counter
此文档下载收益归作者所有