作业调度
作业调度问题描述:
假设计算机只有一个CPU,在任何时候只能运行一个作业,并且作业的执行是非抢占式的(作业一旦被调度后占有CPU就一直执行完成)。
作为例子,现假设有四个作业,如下表所示。
作业次序 运行所需时间
Job1 15
Job2 8
Job3 3
Job4 10
对于先来先服务的调度策略,各个作业的开始时间、完成时间如图1所示,则四个作业的平均完成时间为:(15+23+26+36)/4=25
对于最短服务时间优先的调度策略,各个作业的开始时间、完成时间如图2所示,则四个作业的平均完成时间为:(3+11+21+36)/4=17.75
现设有n个作业,每个作业所需的运行时间为Ti,(i∈[1,n],n∈[1,50000]) ,作业序号和相应的所需运行时间保存在数据文件中。
实现要求:
⑴ 将作业序号和运行所需时间构成数据记录,实现数据记录插入到数据文件的最后,数据记录的输入以0,0作为结束;
⑵ 按最短服务时间优先的调度策略,输出各个作业的开始时间、完成时间;
⑶ 计算所有作业的平均完成时间。