抢占式调度是一种CPU调度技术,它通过将CPU的时隙分配给给定的进程来工作。给定的时间段可能能够完成整个过程,也可能无法完成。当进程的突发时间大于CPU周期时,它将被放回就绪队列并在下一次执行。当进程切换到就绪状态时使用此调度。
抢占式调度支持的算法有round-robin(RR)、priority、SRTF(shortest remaining time first)。
非抢占式调度是一种CPU调度技术,该进程占用资源(CPU时间)并将其保留,直到该进程终止或被推入等待状态。在完成处理之前,以及在该处理器切换到另一个处理之后,不会中断任何处理。
基于非抢占式调度的算法是非抢占式优先级,且最短的作业优先。
抢占式与非抢占式调度
抢占式调度 | 非抢占式调度 |
---|---|
在有限的时间内根据周期分配资源。 | 资源被使用,然后由进程保留,直到被终止。 |
该过程甚至可以在完成之前被中断。 | 该过程直到其生命周期完成才被中断。 |
由于在队列中插入了优先级过程,可能导致饥饿。 | 当突发时间较长的进程占用系统时,可能会发生饥饿。 |
维持队列和剩余时间需要存储开销。 | 不需要此类开销。 |