操作系统 中断和轮询的区别
操作系统通常充当系统硬件和用户程序之间的桥梁。处理器是处理整个系统任务的操作系统部分。有时候需要中断当前正在运行的任务并采取迅速的行动。中断和轮询是处理由设备生成的事件(可能在CPU忙于运行其他活动时发生)的两种机制。
中断 和 轮询 是处理设备生成的事件的两种方法,这些事件可能在CPU忙于运行其他活动时随时发生。轮询和中断方法允许处理器暂停正在执行的任务并响应一个重要任务。轮询和中断在几个方面有很大的区别。轮询和中断的主要区别在于在轮询中,CPU定期检查I/O设备以查看它们是否需要CPU服务。另一方面,在中断方法中,输入/输出设备会中断处理器并警告它需要处理器服务。
本文将介绍操作系统中中断和轮询的区别。但在讨论区别之前,您必须了解操作系统中的中断和轮询。
中断是什么
中断是一种向处理器发出立即行动信号的信号。中断可用于表示计时器结束,也可通知网络设备接收到数据包。当发生中断时,处理器会停止现有任务并运行连接的中断处理程序,这被称为中断服务例程(ISR)。在处理完中断后,它会返回到先前执行的任务。中断有两种类型:硬件中断和软件中断。
1. 硬件中断
设备使用硬件中断通知操作系统需要其关注。例如,在键盘上按下键时会发生硬件中断,并导致CPU读取该按键。中断请求(IRQ)用于启动硬件中断。每个硬件中断都有一个中断号,该号码标识产生中断的硬件。因此,CPU可以识别设备。硬件中断有两种类型:可屏蔽中断和不可屏蔽中断。不可屏蔽中断无法被CPU延迟处理,而可屏蔽中断可以被延迟处理。
2. 软件中断
由异常CPU条件或正在运行的程序引起的中断称为软件中断。除以零会触发软件中断。此外,由无限循环产生的错误变量和内存泄漏也可能引发软件中断。
轮询是什么
轮询 是一种调查设备以确定其是否需要任何服务的过程。它也被称为轮询输入/输出或软件驱动输入/输出。该过程中使用低级硬件组件。如果需要检查多个设备,可能需要很长时间。
轮询过程包括主机和控制器操作两个步骤。主机在主机操作期间完全读取忙位。一旦忙位被清除,主机将命令准备位设置为1。主机在将命令准备位设置为1之前向命令寄存器写入命令。
第二阶段是执行控制器操作。在此阶段,控制器注意到命令准备位已经被设置为 1 ,然后将忙碌位设置为 1 。在读取命令寄存器并确认其包含写位之后,控制器读取并执行I/O操作。这些操作已经经过批准并被证明是成功的。
轮询可以用于调节参与测量环境中的元素的信息顺序和执行。它可以用于管理处理器的时间以及多任务操作系统中的其他资源。然而,轮询存在相当大的数据浪费的可能性。
操作系统中中断和轮询的关键区别
操作系统中的中断和轮询有各种关键区别。中断和轮询之间的一些主要区别如下:
- 在轮询中,微控制器的性能要低得多。相反,在中断中,微控制器的性能显著提高。
- 中断方法是通过处理器的中断请求线完成的,当发生中断时,该线提供信号。相反,轮询是一个协议,它不断地检查控制位来确定设备是否准备就绪。
- 当处理器持续轮询设备并且很少发现任何设备准备就绪时,轮询变得浪费。相反,当设备不断中断CPU操作时,中断变得浪费。
- 只有在另一个设备中断时,CPU才会中断。相反,轮询通过重复检查每个设备的命令就绪位消耗大量CPU周期。
- 中断处理程序处理设备的中断。另一方面,轮询涉及CPU根据需要为设备提供服务。
- 在中断机制中,设备向CPU发出需要维护的信号。相反,在轮询中,CPU不断判断设备是否需要维护。
- 中断可以在任何时候发生。另一方面,CPU会定期轮询设备。
- 中断请求线用作中断的信号。相反,在轮询中,命令就绪位表示设备需要维护。
中断和轮询在操作系统中的对比
操作系统在中断和轮询之间进行了各种对比。中断和轮询的一些比较如下:
特性 | 中断 | 轮询 |
---|---|---|
定义 | 中断是由CPU外部组件引起的一种事件,用来通知CPU执行某种特定的操作。 | 客户程序定期检查外部设备状态的同步过程被称为轮询。 |
基本原理 | 设备确定它需要CPU的关注。 | CPU定期检查设备状态并确定是否需要处理器的关注。 |
指示 | 中断请求线用作中断的信号。 | 命令就绪位表示设备需要被服务。 |
机制 | 这是一种硬件机制。 | 这是一种协议。 |
效率 | 当设备不断中断CPU操作时,中断变得低效。 | 当CPU持续轮询设备并很少发现任何准备好被服务的设备时,轮询变得浪费资源。 |
CPU周期 | 只有当设备需要被服务时,才会中断CPU,从而节省了CPU周期。 | CPU必须等待来确定是否需要对设备进行操作,这会消耗大量CPU周期。 |
发生时间 | 中断可以随时发生。 | CPU定期轮询设备。 |
服务 | 设备由中断处理程序进行服务。 | CPU为设备提供服务。 |
结论
轮询和中断都对处理I/O设备非常有效。然而,在特定情况下,它们可能变得不足够。轮询涉及对与单个CPU相关联的设备进行循环读取。当外部逻辑电路不需要维修时,微型计算机会继续转到下一个需要检查的外部逻辑电路,如果其中一个外部逻辑电路需要维护,CPU将切换到运行一个程序来进行服务。
当CPU在外部逻辑的请求下被中断时,微型计算机暂停执行其现有程序并切换到被中断的程序。由于中断的结构,微处理器可以对异步事件(如外部逻辑请求)做出响应,而无需在循环中等待检查外部逻辑电路的状态。