《Operating Systems:Three Easy Pieces》第七章课后习题解答

7.1

1.使用 SJF 和 FIFO 调度程序运行长度为 200 的 3 个作业时,计算响应时间和周转时间。
答:① SJF:因为SJF是shortest job first,当进程同时到达CPU时,优先执行运行时间最少的进程,但是SJF是非抢占式调度策略,不会在一个进程未执行完时进行切换到另一个进程。所以运行长度为200的3个作业时,因为运行长度一样,所以一个接一个地执行。
周转时间、响应时间、等待时间如下表:
响应时间 周转时间 等待时间
作业1 0 200 0
作业2 200 400 200
作业3 400 600 400
平均 200 400 200
② FIFO:FIFO是first in first out,先到达的先运行,而且是非抢占式调度策略。又因为3个作业同时到达且运行长度都为200,所以纠结具体先运行哪个作业没有意义,它们都是一样的。最后运行过程与SJF一致,一个接一个地运行。
周转时间、响应时间、等待时间如下表:
响应时间 周转时间 等待时间
作业1 0 200 0
作业2 200 400 200
作业3 400 600 400
平均 200 400 200
《Operating Systems:Three Easy Pieces》第七章课后习题解答
《Operating Systems:Three Easy Pieces》第七章课后习题解答

7.2

2.现在做同样的事情,但有不同长度的作业,即 100、200 和 300。
答:① SJF:运行长度分别为100、200、300同时到达CPU的作业时,按照shortest job first规则,执行顺序为100、200、300,并且不会抢占。
周转时间、响应时间、等待时间如下表:
响应时间 周转时间 等待时间
作业1 0 100 0
作业2 100 300 100
作业3 300 600 300
平均 133.3333 333.3333 133.3333
② FIFO:FIFO是first in first out,先到达的先运行,而且是非抢占式调度策略。到达CPU顺序为100、200、300,所以执行顺序也为100、200、300。
周转时间、响应时间、等待时间如下表:
响应时间 周转时间 等待时间
作业1 0 100 0
作业2 100 300 100
作业3 300 600 300
平均 133.33 333.33 133.33
《Operating Systems:Three Easy Pieces》第七章课后习题解答
《Operating Systems:Three Easy Pieces》第七章课后习题解答

7.3

3.现在做同样的事情,但采用 RR 调度程序,时间片为 1。
答:RR是round-robin轮转调度策略,是抢占式的。它是为了具有较短的平均响应时间,又因为作业的长度实际上是无法预知的,所以此策略只能让每个到达的作业轮转执行一个时间片,时间片必须为时钟中断周期的倍数好进行上下文切换。综上,3个长度为200的作业轮转执行1个时间片直到所有作业执行完毕。
周转时间、响应时间、等待时间如下表:
响应时间 周转时间 等待时间
作业1 0 598 398
作业2 1 599 399
作业3 2 600 400
平均 1 599 399
《Operating Systems:Three Easy Pieces》第七章课后习题解答
《Operating Systems:Three Easy Pieces》第七章课后习题解答

7.4

4.对于什么类型的工作负载,SJF 提供与 FIFO 相同的周转时间?
答:因为SIF必须是同时到达才会优先运行长度最短的作业,否则按照先到先运行,不会发生抢占CPU,而FIFO严格执行先进先运行,所以第一条:作业列表中的作业到达时间全部不一致。
第二,当作业到达时间一致时,在极细微可以忽略不计的时间上,作业列表中的作业排序必须按作业长度非严格递增。
第三,当有的作业到达时间一致,有的不一致时,到达时间一致的作业满足第二条。

7.5

5.对于什么类型的工作负载和量子长度,SJF 与 RR 提供相同的响应时间?
答:因为RR调度策略必定是作业列表中的作业依次执行一个时间片,令时间片长度为T,那么作业列表中第n个作业(从1开始)的响应时间就为(n-1)*T。而SJF是非抢占式的调度策略,必须执行完一个作业才会执行另一个,所以要符合响应时间为(n-1)*T,那么必须每个作业的执行时间与时间片相等。

7.6

6.随着工作长度的增加,SJF 的响应时间会怎样?你能使用模拟程序来展示趋势吗?
答:因为SJF是非抢占式的策略,所以每个作业开始响应必须等待之前的作业执行完成,当作业工作长度增加了,后面的作业等待响应时间也会相应增加。
《Operating Systems:Three Easy Pieces》第七章课后习题解答
《Operating Systems:Three Easy Pieces》第七章课后习题解答
《Operating Systems:Three Easy Pieces》第七章课后习题解答

7.7

7.随着量子长度的增加,RR 的响应时间会怎样?你能写出一个方程,计算给定 N个工作时,最坏情况的响应时间吗?
答:设量子长度(时间片)为T,RR是作业列表作业轮转执行一个时间片,所以第n个(从1开始)作业的响应时间为T(n)=(n-1)T
当量子长度T增加时,响应时间T(n)也会相应增加。平均响应时间
T平均 = [0+T+2T+3T+…+(n-1)T]/n = [n
(n-1)/2]*T/n
= (n-1)*T/2
也会增加。