题目:在单处理器多到分时系统中,有三道作业依次提交, 其提交时刻及运行时间分别为

作业作业提交时刻运行时间/h其中
I/O时间/hCPU时间/h
Job18.00.360.180.18
Job28.20.320.160.16
Job38.40.360.180.18

如果已知下列情况:

(1)每道作业的I/O等待时间占各自总运行时间的一半;

(2)分时运行两道作业,CPU将有20%的时间空闲;

(3)除了CPU,系统有充足的资源供作业使用。试计算各作业运行完成时间。

对(2)的解释:指在进程切换时会浪费20%的运行时间

:

​ 8.0~8.2时间内: 只有Job1,没有发生进程调度,因此不会浪费时间, 在这0.2h内, 由于(1)每道作业的I/O时间占总运行时间的一半,所以有0.1h的时间用于I/O,剩余0.1用于CPU,因此 在8.2时刻, Job1还剩余0.36-0.2 = 0.16h的时间需要运行

​ 8.2~8.4时间内, Job2也开始运行, 同时也会运行Job1, 由于CPU同一时刻只能处理一个作业, 因此会发生进程切换, 在这0.2h内, 会浪费0.2×20%=0.04h的时间, 那么实际可运行的时间就只有0.2-0.04=0.16h, 在前0.08h中,可以让Job1运行CPU0.08h,同时, Job2可以运行I/O 0.08h

在后0.08h中,Job1运行I/O 0.08h, Job2运行CPU0.08h, 这时,也就是8.4时刻, Job1运行完毕

Job2还剩下0.16的运行时间, 其中各占一半

​ 8.4时刻, 此时Job3也开始运行, 同样会发生调度, 那么在8.2~8.6这0.2h内, 可用运行时间同样为0.16, 前0.08: Job2 CPU, Job3 I/O 后0.08: Job3CPU, Job2 I/O, 然后8.6时刻, Job2也就运行完毕

​ 8.6时刻, 只有Job3, 不需要调度, 还剩下CPU和I/O各0.1, 也就是8.6+0.1+0.1=8.8, Job3结束

故Job1完成时间: 8.4, Job2: 8.6, Job3: 8.8