今有三个批处理作业。第一个作业10:00到达,需要执行2小时。第二个作业10:10到达,需要执行1小时。第三个作业10:25到达,需要执行25分钟。分别采取如下(见表(a),表(b),表(c))三种作业调度算法:
(a)
|
| 算法一 |
| 作业号 |
到达时间 |
开始执行时间 |
执行结束时间 |
| 1 |
10:00 |
10:00 |
12:00 |
| 2 |
10:10 |
12:00 |
13:00 |
| 3 |
10:25 |
13:00 |
13:25 |
(b)
|
| 算法二 |
| 作业号 |
到达时间 |
开始执行时间 |
执行结束时间 |
| 1 |
10:00 |
11:50 |
12:00 |
| 2 |
10:10 |
10:50 |
13:00 |
| 3 |
10:25 |
10:25 |
13:25 |
(c)
|
| 算法三 |
| 作业号 |
到达时间 |
开始执行时间 |
执行结束时间 |
| 1 |
10:00 |
10:00 |
12:00 |
| 2 |
10:10 |
12:25 |
13:25 |
| 3 |
10:25 |
12:00 |
12:25 |
【正确答案】采用调度算法1时: 作业1的周转时间为2h; 作业2的周转时间为2.83h; 作业3的周转时间为3h; 平均周转时间为:(2+2.83+3)/3=2.61(h)。 采用调度算法2时: 作业1的周转时间为3.83h; 作业2的周转时间为1.67h; 作业3的周转时间为0.42h; 平均周转时间为:(3.83+1.67+0.42)/3=1.97(h)。 采用调度算法3时: 作业1的周转时间为2h; 作业2的周转时间为3.25h; 作业3的周转时间为2h; 平均周转时间为:(2+3.25+2)/3=2.42(h)。
【答案解析】
【正确答案】调度算法1是按照作业到达的先后次序执行的,所以它是先来先服务调度算法。 调度算法3是按照作业执行时间从短到长的次序执行的,所以它是短作业优先调度算法。
【答案解析】
问答题
在单CPU和两台输入/输出设备(I
1,I
2)的多道程序设计环境下,同时投入三个作业Job
1,Job
2,Job
3运行。这三个作业对CPU和输入/输出设备的使用顺序和时间如下所示:
Job
1:I
2(30ms);CPU(10ms);I
1(30ms);CPU(10ms);I
2(20ms)
Job
2:I
1(20ms);CPU(20ms);I
2(40ms)
Job
3:CPU(30ms);I
1(20ms);CPU(10ms);I
1(10ms)
假定CPU,I
1,I
2都能并行工作,Job
1优先级最高,Job
2次之,Job
3优先级最低,优先级高的作业可以抢占优先级低的作业的CPU,但不抢占I
1和I
2。试求:
(1)三个作业从投入到完成分别需要的时间。
(2)从投入到完成的CPU利用率。
(3)I/O设备利用率。
【正确答案】三个作业并发执行时的工作情况如下: Job1的执行顺序为:I2(30ms);CPU(10ms);I1(30ms);CPU(10ms);等待I2(10ms);I2(20ms)。 Job2的执行顺序为:I1(20ms);CPU(10ms);等待CPU(10ms);CPU(10ms);I2(40ms); Job3的执行顺序为:CPU(20ms);等待CPU(30ms);CPU(10ms);等待I1(10ms);I1(20ms);CPU(10ms);I1(10ms)。 (1)Job1从投入到运行完成需要110ms,Job2从投入到运行完成需要90ms,Job3从投入到运行完成需要110ms。 (2)CPU在时间段60~70ms,80~90ms,100~110ms期间空闲,所以CPU的利用率为:(110-30)/110=72.7%。 (3)设备I1在时间段20~40ms,90~100ms期间空闲,所以设备I1的利用率为:(110-30)/110=72.7%; 设备I2在时间段30~50ms期间空闲,所以设备I2的利用率为:(110-20)/110=81.8%。
【答案解析】