3研发部新一代计算机引入了多道程序设计的概念。1968年,这一概念开始出现。以前,计算机并没有提供这样的多任务处理性能。计算机系统一次只能执行一项任务。这将是一个耗时且繁忙的过程。在单编程系统中,如果处理器忙于执行一项任务,并且必须等待任何I/O操作,则CPU保持空闲。这造成了饥饿问题。现在,有一种编程系统的改进版本称为多道程序设计。在这里,CPU即使在等待时间内也不会保持空闲。它移动队列并开始执行另一个进程。
操作系统根据执行顺序安排进程,并最大限度地利用CPU。这个过程称为调度。
CPU调度的主要目标是确保当CPU保持空闲时,在就绪队列中至少有一个进程可供执行。
我们已经了解了CPU调度的任务。现在让我们看看它的类型。通常,有两种类型的调度方法。
- 抢占式调度
- 非抢占式调度
首先,让我们看看抢占式调度和非抢占式调度之间的区别。
表格式抢占式和非抢占式调度的区别
抢占式调度 | 非抢占式调度 |
在抢占式调度中,CPU(处理器)分配给进程一段时间。 | 在非抢占式调度中,CPU(处理器)分配给进程,直到它完成执行或请求任何I/O设备并切换到等待状态。 |
进程执行在执行之间受到干扰 | 在执行之间不会干扰进程执行 |
与非抢占式调度相比,这种调度具有更多的CPU利用率 | 与抢占式调度相比,这种类型的调度具有更低的CPU利用率 |
它具有更少的等待时间和响应时间 | 它有更多的等待时间和更多的响应时间 |
如果高优先级进程频繁发生,则低优先级进程可能出现资源不足 | 如果高优先级的处理器长时间运行,低优先级的进程可能出现资源不足 |
维护队列和剩余时间需要开销 | 无需此类间接费用 |
抢占式调度更加复杂 | 非抢占式调度简单高效 |
抢占式调度比非抢占式调度成本更高,因为它必须存储共享数据 | 非抢占式调度比抢占式调度成本更低,因为它不必存储共享数据 |
抢占式调度的例子有轮询调度和最短剩余时间优先调度 | 非抢占式调度的例子有先到先服务和最短作业优先 |
什么是抢先调度?
抢占式调度是一种CPU调度方法,处理器根据进程的优先级工作。简单地说,当一个进程在就绪队列中就绪并被处理器选择执行时。如果另一个进程正在就绪队列中等待,那么这种调度方式立即允许另一个高优先级的进程执行它的执行。它在一段时间后抢占该进程并转移到另一个进程。
如果具有较高优先级的进程到达就绪队列,则当前正在运行的进程将暂停并放置在就绪队列中,并且具有较高优先级的进程将利用处理器执行。这样,就绪队列中的每个进程都有机会利用CPU。没有一个进程是无人值守的。
这种调度是灵活的,而且成本相关,因为它需要保存被中断的集成数据,并在恢复进程时再次使用它。它是健壮的,最适合在多编程环境中使用。
什么是非抢占式调度?
非抢占调度是一种调度方式,在这种调度方式下,处于运行状态的进程只有在完成任务或到达等待状态后才会终止。如果一个更高优先级的进程已经在就绪队列中就绪,它不会在此之间抢占。相反,它等待进程完成,然后允许另一个进程利用CPU周期。在这种调度中,如果当前正在执行的进程有很长的CPU突发时间,那么其他进程就必须等待很长时间。有一种可能是所有进程都没有机会利用CPU。但是,由于流程只完成一次,因此开销很小。所以不需要保存暂停的数据。没有与此调度相关的成本,并且需要更少的计算资源。
希望抢占式调度和非抢占式调度之间的区别非常清楚。这个概念很有趣,也很容易理解。我们不能说抢占式调度比非抢占式调度好,也不能说抢占式调度比非抢占式调度好。它取决于调度如何使CPU利用率最大化并减少空闲时间。
什拉德哈·昌古尼
SVKM技术学院,杜勒