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