实验一 先来先服务FCFS和短作业优先SJF进程调度算法 一:需求分析 程序设计的任务:设计程序模拟进程的先来先服务 FCFS 和短作业优先 SJF 调度过程。假设有 n 个 x 进程分别在 T1, … ,Tn 时刻到达系统,它们需要的服务时间分别为 S1, … ,Sn。分别采用先来先服务 FCFS 和短作业优先 SJF 进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计 n 个进程的平均周转时间和平均带权周转时间。 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。 (1)输入的形式和输入值的范围 为免去测试时候需要逐步输入数据的麻烦,输入时采用输入文件流方式将数据放在.tx t文件中,第一行为进程个数,第二行为进程到达时间(各个进程的到达时间之间用空格隔开),第三行为进程的服务时间(每个服务时间之间用空格隔开)。 (2)输出的形式 模拟整个调度过程,输出每个时刻的进程运行状态,同时输出了每个进程的完成时间,并且按要求输出了计算出来的每个进程的周转时间、带权周转时间、所有进程的平均周转时间以及带权平均周转时间。 (3)程序所能达到的功能 能够模拟出进程的先来先服务 FCFS 算法和短作业优先 SJF 算法的调度过程,输入进程个数 n;每个进程的到达时间 T1, … ,Tn 和服务时间 S1, … ,Sn;选择算法 1-FCFS,2-SJF,3-退出,用户做出选择即可输出对应的算法调度过程或者退出程序。 (4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果 测试数据及其输出结果: 也可看下面截图的测试结果 二:概要设计 程序包括主函数、FCFS 算法函数、SJF 算法函数、输出函数; 主函数流程:输入文件中的数据—显示各进程数据—选择算法—调用相应算法的函数—输出结果 三:详细设计 算法流程图: 作业 算法 进程名 A B C D E 平均 到达时间 0 1 2 3 4 服务时间 4 3 5 2 4 FCFS 完成时间 4 7 12 14 18 周转时间 4 6 10 11 14 9 带权周转时间 1 2 2 5.5 3.5 2.8 SJF 完成时间 4 9 18 6 13 周转时间 4 8 16 3 9 8 带权周转时间 1 2.67 3.2 1.5 2.25 2.1 FCFS 先来先服务算法流程图: 开始 按排好的顺序第一个进程先进行 下一个进程的开始时间从上个进程的完成时间开始 判断上一个进程的完成时间是否大于下一个进程的到达时间...