面试题答案
一键面试先来先服务(FCFS)
- 对响应时间的影响:FCFS 算法按照进程到达的先后顺序进行调度。对于短作业,如果排在长作业之后,会等待较长时间才能执行,导致响应时间变长。对于长作业,其响应时间相对较短作业更具优势。它不考虑作业的长短,所以整体系统的平均响应时间可能不佳,特别是在有较多短作业的情况下。
- 举例:假设有三个进程 P1、P2、P3,到达时间都为 0,运行时间分别为 24、3、3。按照 FCFS 算法,P1 先执行,P2 和 P3 需要等待 24 个时间单位才开始执行,P2 的响应时间为 24,P3 的响应时间为 27 。
最短作业优先(SJF)
- 对响应时间的影响:SJF 算法优先调度运行时间最短的作业。这能有效减少短作业的等待时间,从而降低平均响应时间。但对于长作业来说,可能会因为不断有短作业到来而长时间等待,导致响应时间延长。
- 举例:同样是上述三个进程 P1、P2、P3 ,采用 SJF 算法,先执行 P2,再执行 P3,最后执行 P1。P2 的响应时间为 0 ,P3 的响应时间为 3 ,P1 的响应时间为 6 。相比 FCFS 算法,平均响应时间明显降低。
时间片轮转(RR)
- 对响应时间的影响:RR 算法将 CPU 时间划分为固定大小的时间片,每个进程轮流在一个时间片内执行。它能保证每个进程都能在一定时间内获得 CPU 执行机会,响应时间相对较稳定。即使是长作业,也不会长时间得不到执行,使得系统的交互性较好。不过,如果时间片设置过长,可能会退化为 FCFS 算法,响应时间会受影响;如果时间片设置过短,进程上下文切换频繁,也会增加系统开销,间接影响响应时间。
- 举例:假设时间片为 4 ,对于上述三个进程,先执行 P1 的 4 个时间单位,再执行 P2 的 3 个时间单位,接着执行 P3 的 3 个时间单位,最后再回来执行 P1 剩余的 20 个时间单位。P2 的响应时间为 4 ,P3 的响应时间为 7 ,P1 的响应时间为 4 。 可以看到每个进程都能较快获得响应。