课程作业-第七章:
7.1分别使用 SJF 和 FIFO 调度程序运行长度都为 200 的 3 个作业时,计算响应时间和周转时间。
答:
分别使用 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 |
SJF的平均响应时间是200,平均周转时间是400。
② FIFO:FIFO是first in first out,先到达的先运行,而且是非抢占式调度策略。又因为3个作业同时到达且运行长度都为200,所以纠结具体先运行哪个作业没有意义,它们都是一样的。最后运行过程与SJF一致,一个接一个地运行。
周转时间、响应时间、等待时间如下表所示:
响应时间 | 周转时间 | 等待时间 | |
作业1 | 0 | 200 | 0 |
作业2 | 200 | 400 | 200 |
作业3 | 400 | 600 | 400 |
平均 | 200 | 400 | 200 |
FIFO的平均响应时间是200,平均周转时间是400。
7.2现在做同样的事情,但有不同长度的作业,即 100、200 和 300。
答:
第一个案例:
作业顺序为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 |
SJF 的平均响应时间为133.33,平均周转时间为333.33。
② 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.3333 | 333.3333 | 133.3333 |
FIFO 的平均响应时间为 133.33,平均周转时间为333.33。
第二个案例:
作业顺序改变为300,100,200。
① SJF:
可以看出,SJF的相应、周转时间不变。
② FIFO:
但是FIFO的平均响应时间变为233.33,平均周转时间变为433.33。
7.3现在做同样的事情,但采用 RR 调度程序,时间片为 1。
答:
RR是round-robin轮转调度策略,是抢占式的。它是为了具有较短的平均响应时间,又因为作业的长度实际上是无法预知的,所以此策略只能让每个到达的作业轮转执行一个时间片,时间片必须为时钟中断周期的倍数好进行上下文切换。综上,3个长度为200的作业轮转执行1个时间片直到所有作业执行完毕。
周转时间、响应时间、等待时间如下表:
响应时间 | 周转时间 | 等待时间 | |
作业1 | 0 | 598 | 398 |
作业2 | 1 | 599 | 399 |
作业3 | 2 | 600 | 400 |
平均 | 1 | 599.00 | 399 |
接下图:
综上所述,RR 的响应时间为1,平均周转时间为465.67。
7.4对于什么类型的工作负载,SJF 提供与 FIFO 相同的周转时间?
答:
对于按照时间递增或相等的工作,SJF和FIFO的周转时间相同。
7.5对于什么类型的工作负载和时间片长度,SJF 与 RR 提供相同的响应时间?
答:
对于每个工作时间相等且长度小于等于时间片长度的工作,SJF与RR的响应时间相同。
7.6随着作业长度的增加,SJF 的响应时间会怎样?你能使用模拟程序来展示趋势吗?
答:
①若所有工作长度都增加,则除了最短任务的响应时间不变,其余任务的响应时间均增加。
②若只有部分工作长度增加,则长度比该部分工作长的工作,其响应时间增加。
模拟程序截图如下:
7.7对于 RR,随着时间片长度的增加,其响应时间会怎样?给定 N 个作业,你能写出一个计算最坏情况下的响应时间方程吗?
答:
- 响应时间会增加。
- 假设q为时间片长,最坏情况下的响应时间为:
此时的平均响应时间为: