操作系统中中断与轮询的区别

17 Mar 2025 | 6 分钟阅读

操作系统通常充当系统硬件和用户程序之间的桥梁。处理器是操作系统中负责处理整个系统任务的部分。有时,中断当前正在运行的任务并采取快速行动非常重要。有两种机制可以实现中断和轮询。

中断轮询是处理设备可能随时发生的事件的两种方法,这些事件可能发生在CPU忙于运行其他活动时。轮询和中断方法允许处理器暂停正在做的事情并响应重要任务。轮询和中断在几个方面非常不同。轮询和中断之间的主要区别在于,在轮询中,CPU会定期检查I/O设备,以查看它们是否需要CPU服务。另一方面,在中斷方法中,输入/输出设备会中断处理器,并通知它需要处理器服务。

在本文中,您将了解操作系统中中断与轮询的区别。但在讨论差异之前,您必须了解操作系统中的中断和轮询。

什么是中断?

中断是处理器需要立即采取行动的信号。中断可用于指示计时器结束,中断还可通知网络设备收到的数据包。当中断发生时,处理器会停止现有任务并运行连接的中断处理程序,这被称为中断服务例程 (ISR)。处理完中断后,它会返回到之前执行的任务。它有两种类型的中断:硬件中断和软件中断。

1. 硬件中断

设备使用硬件中断来通知操作系统它们需要注意。例如,按下键盘上的某个键时会发生硬件中断,这会导致CPU读取该按键。中断请求 (IRQ)用于启动硬件中断。每个硬件中断都有一个中断号,该号码标识了产生中断的硬件。因此,CPU可以识别设备。硬件中断有两种类型:可屏蔽中断不可屏蔽中断。不可屏蔽中断不能被CPU延迟,而可屏蔽中断可以被延迟。

2. 软件中断

由CPU异常条件或正在运行的程序引起的中断称为软件中断。通过将整数除以零可以触发软件中断。此外,由无限循环产生的错误变量和内存泄漏也可能产生软件中断。

什么是轮询?

轮询是指检查设备以确定它是否需要任何服务的过程。它也称为轮询输入/输出或软件驱动的输入/输出。在此过程中使用低级硬件组件。如果需要检查多个设备,可能会花费很多时间。

主机操作和控制器操作是构成轮询过程的两个步骤。在主机操作期间,主机完全读取忙碌位。一旦忙碌位被清除,主机就会将命令就绪位设置为1。主机在将命令写入命令寄存器之后,会将命令就绪位设置为1

第二阶段是执行控制器操作。在此阶段,控制器注意到命令就绪位已设置为1,然后控制器将忙碌位设置为1。在读取命令寄存器并确认其中包含写入位后,控制器会读取并执行I/O操作。操作已获得批准并被证明是成功的。

轮询可用于调节测量环境中涉及的元素的信息顺序和执行。它可用于管理多任务操作系统中处理器的时钟以及其他资源。然而,轮询发生数据丢失的可能性要大得多。

操作系统中断与轮询的关键区别

Difference between Interrupt and Polling in Operating System

操作系统中的中断轮询之间存在各种关键区别。中断与轮询之间的一些主要区别如下:

  1. 在轮询中,微控制器的性能非常低。相比之下,中断中的微控制器性能要高得多。
  2. 中断方法是硬件的,因为处理器有一根称为中断请求线的导线,在发生中断时提供信号。相比之下,轮询是一种不断检查控制位以确定设备是否具有执行内容的协议。
  3. 当处理器继续轮询设备但很少发现有设备准备好服务时,轮询就会变得浪费。相比之下,当设备不断中断 CPU 操作时,中断就会变得浪费。
  4. 在中断中,CPU仅在另一设备中断它时才会被中断。相比之下,轮询通过反复检查每个设备的命令就绪位来浪费大量 CPU 周期。
  5. 中断处理程序处理设备的请求。另一方面,轮询涉及 CPU 根据需要为设备服务。
  6. 在中断机制中,设备会通知 CPU 它需要维护。相比之下,在轮询中,CPU 会持续确定设备是否需要维护。
  7. 中断随时发生。另一方面,CPU会定期轮询设备。
  8. 中断请求线用作中断信号。相比之下,在轮询中,命令就绪位表示设备需要维护。

操作系统中断与轮询的逐项比较

操作系统在中断与轮询之间有各种逐项比较。中断与轮询的一些比较如下:

特点中断轮询
定义中断是指处理器执行特定操作的事件,它由 CPU 外部的组件引起。客户端程序检查外部设备状态的同步过程称为轮询。
基本功能设备通知处理器它需要 CPU 注意。CPU 定期检查设备状态以及它是否需要处理器注意。
指示中断请求线用作中断信号。命令就绪位表示设备需要被服务。
机制它是一种硬件机制。它是一种协议。
效率当设备不断中断 CPU 操作时,中断会变得效率低下。当 CPU 继续轮询设备但很少发现有设备准备好服务时,它会变得浪费。
CPU 周期仅当设备需要服务时,CPU 才会被中断,这可以节省 CPU 周期。CPU 必须等待以确定设备是否需要服务,这会消耗大量 CPU 周期。
发生情况中断随时发生。CPU 定期轮询设备。
服务设备由中断处理程序服务。CPU 为设备提供服务。

结论

轮询和中断在处理 I/O 设备方面都有效。但是,它们在特定条件下可能会变得不足。轮询涉及对连接到单个 CPU 的设备的循环读取。当外部逻辑电路不需要维修时,微处理器会继续检查下一个要检查的外部逻辑电路,如果其中一个外部逻辑电路需要维护,CPU 会切换到运行程序来对其进行服务。

当 CPU 应外部逻辑请求而被中断时,微处理器会暂停其现有程序的执行,并切换到中断的程序。由于中断结构,微处理器可以在不等待循环检查外部逻辑电路状态的情况下响应异步事件,例如外部逻辑请求。