抢占式调度和非抢占式调度的区别

3研发部新一代计算机引入了多道程序设计的概念。1968年,这一概念开始出现。以前,计算机并没有提供这样的多任务处理性能。计算机系统一次只能执行一项任务。这将是一个耗时且繁忙的过程。在单编程系统中,如果处理器忙于执行一项任务,并且必须等待任何I/O操作,则CPU保持空闲。这造成了饥饿问题。现在,有一种编程系统的改进版本称为多道程序设计。在这里,CPU即使在等待时间内也不会保持空闲。它移动队列并开始执行另一个进程。

操作系统根据执行顺序安排进程,并最大限度地利用CPU。这个过程称为调度。

CPU调度的主要目标是确保当CPU保持空闲时,在就绪队列中至少有一个进程可供执行。

我们已经了解了CPU调度的任务。现在让我们看看它的类型。通常,有两种类型的调度方法。

  • 抢占式调度
  • 非抢占式调度

首先,让我们看看抢占式调度和非抢占式调度之间的区别。

表格式抢占式和非抢占式调度的区别

抢占式调度 非抢占式调度
在抢占式调度中,CPU(处理器)分配给进程一段时间。 在非抢占式调度中,CPU(处理器)分配给进程,直到它完成执行或请求任何I/O设备并切换到等待状态。
进程执行在执行之间受到干扰 在执行之间不会干扰进程执行
与非抢占式调度相比,这种调度具有更多的CPU利用率 与抢占式调度相比,这种类型的调度具有更低的CPU利用率
它具有更少的等待时间和响应时间 它有更多的等待时间和更多的响应时间
如果高优先级进程频繁发生,则低优先级进程可能出现资源不足 如果高优先级的处理器长时间运行,低优先级的进程可能出现资源不足
维护队列和剩余时间需要开销 无需此类间接费用
抢占式调度更加复杂 非抢占式调度简单高效
抢占式调度比非抢占式调度成本更高,因为它必须存储共享数据 非抢占式调度比抢占式调度成本更低,因为它不必存储共享数据
抢占式调度的例子有轮询调度和最短剩余时间优先调度 非抢占式调度的例子有先到先服务和最短作业优先

什么是抢先调度?

抢占式调度是一种CPU调度方法,处理器根据进程的优先级工作。简单地说,当一个进程在就绪队列中就绪并被处理器选择执行时。如果另一个进程正在就绪队列中等待,那么这种调度方式立即允许另一个高优先级的进程执行它的执行。它在一段时间后抢占该进程并转移到另一个进程。

如果具有较高优先级的进程到达就绪队列,则当前正在运行的进程将暂停并放置在就绪队列中,并且具有较高优先级的进程将利用处理器执行。这样,就绪队列中的每个进程都有机会利用CPU。没有一个进程是无人值守的。

这种调度是灵活的,而且成本相关,因为它需要保存被中断的集成数据,并在恢复进程时再次使用它。它是健壮的,最适合在多编程环境中使用。

什么是非抢占式调度?

非抢占调度是一种调度方式,在这种调度方式下,处于运行状态的进程只有在完成任务或到达等待状态后才会终止。如果一个更高优先级的进程已经在就绪队列中就绪,它不会在此之间抢占。相反,它等待进程完成,然后允许另一个进程利用CPU周期。在这种调度中,如果当前正在执行的进程有很长的CPU突发时间,那么其他进程就必须等待很长时间。有一种可能是所有进程都没有机会利用CPU。但是,由于流程只完成一次,因此开销很小。所以不需要保存暂停的数据。没有与此调度相关的成本,并且需要更少的计算资源。

希望抢占式调度和非抢占式调度之间的区别非常清楚。这个概念很有趣,也很容易理解。我们不能说抢占式调度比非抢占式调度好,也不能说抢占式调度比非抢占式调度好。它取决于调度如何使CPU利用率最大化并减少空闲时间。

著者
什拉德哈·昌古尼
SVKM技术学院,杜勒

参考文献

1.https://techdifferences.com/difference-between-preemptive-and-non-preemptive-scheduling-in-os.html
2.https://www.guru99.com/cpu-scheduling-algorithms.html
3.https://www.studytonight.com/operating-system/cpu-scheduling

留言

该网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据.

错误:内容受保护!!

adblock发现!请考虑阅读此通知。

我们检测到您正在使用AdBlock Plus或其他adblocking软件,这会阻止页面完全加载。

我们没有任何横幅、Flash、动画、讨厌的声音或弹出式广告。我们不执行这些恼人的广告类型!

我们需要资金来运营这个网站,几乎所有的资金都来自我们的在线广告。

请加上必威betway App下载电子世界网添加到广告阻止白名单或禁用广告阻止软件。

×
Baidu