考虑三个 CPU 密集型进程,它们需要 10、20 和 30 个时间单位,并分别在时间 0、2 和 6 到达。如果操作系统实现最短剩余时间优先调度算法,需要多少次上下文切换?不要计算在时间零和结束时的上下文切换。
(一) 1
(乙) 2
(三) 3
(四) 4答案:(乙)
说明:最短剩余时间,也称为最短剩余时间优先(SRTF),是一种调度方式,是最短作业下一个调度的抢占版本。在这种调度算法中,选择执行完成前剩余时间最少的进程。由于根据定义,当前正在执行的进程是剩余时间最短的进程,并且由于该时间只会随着执行的进行而减少,因此进程将始终运行,直到它们完成或添加需要更短时间的新进程。
解决方案:
设三个进程分别为 P0、P1 和 P2,到达时间分别为 0、2 和 6,CPU 突发时间分别为 10、20 和 30。在时间 0,P0 是唯一可用的进程,因此它会运行。在时间 2,P1 到达,但 P0 的剩余时间最短,因此它继续。在时间6,P2也到了,但是P0的剩余时间仍然最短,所以继续。在时间 10,P1 被调度,因为它是最短的剩余时间进程。在时间 30,P2 被调度。只需要两个上下文切换。 P0 到 P1 和 P1 到 P2。
参见 http://www.geeksforgeeks.org/operating-systems-set-14/ 的问题 1
此解决方案由Nitika Bansal 提供
观看 GeeksforGeeks 视频说明:
这个问题的测验