操作系统中抢占式和非抢占式调度的区别
在操作系统中,抢占式调度是一种CPU调度方法,其中CPU被分配给给定进程有限的时间。相比之下,非抢占式调度是一种调度技术,其中CPU被分配给一个进程,并由该进程持有,直到该进程终止。
阅读本文,了解更多关于操作系统中抢占式和非抢占式调度的信息,以及它们之间的区别。
什么是抢占式调度?
抢占式调度是一种CPU调度,其中资源(CPU周期)被分配给一个进程有限的时间。在这种类型的调度中,一个正在执行的进程可以被中断。
在抢占式调度中,如果一个高优先级的进程频繁地到达“就绪”队列,则低优先级的进程可能会饿死。此外,这种调度类型具有开销,因为它必须调度多个进程。因此,抢占式调度具有灵活性。
抢占式调度是一种代价较高的调度技术。它具有较高的CPU利用率。抢占式调度的例子包括轮询调度、最短剩余时间优先调度等。
什么是非抢占式调度?
非抢占式调度是一种调度,一旦资源(CPU周期)被分配给一个进程,该进程就会持有它,直到它完成其爆发时间或切换到“等待”状态。
在非抢占式调度中,进程不能被中断,除非它自己终止或时间结束。如果一个具有较长爆发时间的进程正在运行CPU,则具有较短CPU爆发时间的进程将饿死。
非抢占式调度不灵活,也不昂贵。非抢占式调度的例子包括先来先服务和最短作业优先。
现在,让我们详细讨论抢占式和非抢占式调度之间的区别。
抢占式调度和非抢占式调度的区别
下表重点介绍了抢占式调度和非抢占式调度之间所有重要的区别:
序号 |
抢占式调度 |
非抢占式调度 |
---|---|---|
1. |
将资源(CPU周期)分配给进程有限的时间的CPU调度称为抢占式调度。 |
一旦资源(CPU周期)被分配给一个进程,该进程就会持有它直到完成其爆发时间或切换到“等待”状态的调度类型称为非抢占式调度。 |
2. |
在抢占式调度中,一个进程可以在执行时被中断。 |
在非抢占式调度中,一个进程不能被中断,除非它自己终止或时间结束。 |
3. |
如果一个高优先级的进程频繁地到达“就绪”队列,则低优先级的进程可能会饿死。 |
如果一个具有较长爆发时间的进程正在运行CPU,则具有较短CPU爆发时间的进程将饿死。 |
4. |
它有开销。 |
它没有开销。 |
5. |
它具有灵活性。 |
它不具有灵活性。 |
6. |
它代价较高。 |
它代价较低。 |
7. |
例子:轮询调度、最短剩余时间优先调度。 |
例子:先来先服务和最短作业优先。 |
结论
两者之间最显著的区别在于,抢占式调度通过将CPU的时间片分配给给定进程来工作,而非抢占式调度则占用CPU并持有它,直到进程终止或被推入等待状态。