在某些时候,主处理器停止工作,并检查某个控制器是否有消息,如果有,则处理该消息并恢复操作。 这称为轮询。 此外,很明显,主处理器完成了其工作,而设备也在完成其工作。 如果设备完成工作或发生错误,则设备会向主处理器发出中断请求。
什么是轮询?
在更多的外部逻辑电路通过多个U/I互连与单个微处理器通信的系统中,使用U/I轮询。微型计算机定期调用每个外部逻辑电路,并检查其是否已请求服务。如果不需要外部逻辑电路,则微计算机检查下一个外部逻辑电路,等等。如果其中一个需要维护,则微计算机切换到运行各个外部逻辑电路的服务程序。 U/I传递功能包含在程序中。换句话说,轮询是客户端调用(计算机或终端)的过程,可以在调用后发送数据(如果有的话)。如果客户端有数据,则在轮询后将其发送,如果没有数据,则客户端做出否定响应,服务器将调用下一个客户端。某些设备可能需要控制器的服务(例如,当某些设备完成测量或发生错误时)。通过将SRQ线设置为低电平,将请求发送到控制器。控制器收到服务请求后,他将调用总线上的所有设备以查找发送该请求的设备。
什么是中断?
在执行程序期间,微处理器可以通过特殊的IRQ线接收中断信号。中断通常是通过调用适当的系统子例程进行中断处理来执行的-所谓的BIOS或DOS中断例程处理。中断处理后,处理器继续执行被中断的程序。此外,应用程序本身可能包含一条指令,该指令要求执行BIOS或DOS中断例程。输入输出操作通常以这种方式完成。例如,如果程序要在屏幕上打印符号,则可以通过调用相应的中断例程来执行此操作。 BIOS包含一组运行相对较快的基本输入输出例程,并且相应的DOS例程较慢,但它们的功能较大(覆盖输入输出通道的可能性,控制错误的可能性等)。因此,硬件中断是处理器从计算机中另一设备接收到的信号,软件中断是BIOS或DOS例程(子例程)的执行过程,该例程会自动调用以处理接收到的中断信号或被调用以执行相应的说明。
轮询和中断之间的区别
轮询和中断的背景
在第一种情况下,处理器会定期检查设备是否需要采取措施。万一发生中断,处理器可以通过一种机制使外部设备(例如键盘,声卡等)吸引处理器的注意力。轮询和中断机制
中断是专门用于外围设备通信的机制。如果需要采取措施,设备会通知CPU。轮询是协议– CPU定期询问设备是否需要采取措施。轮询和中断服务
在轮询微控制器时,需要注意的设备,然后移至下一个要监视的设备。如果发生中断,则在收到中断信号时,CPU会以当前活动停止并为设备提供服务。服务或处理的中断称为中断服务例程(ISR)或中断处理程序。中央处理器
在轮询过程中,CPU处于等待状态,并检查是否有任何设备需要服务。这不必要地浪费时间。另一方面,在中断过程中,仅在需要时才干扰CPU。轮询和中断的出现
检查设备时,只能以固定的时间间隔对其进行轮询。中断可以在任何给定时间发生。轮询和中断的优势
轮询的一些优点是相对简单的程序,以最大速度发生的传输可靠性,即,一旦I / O设备就绪,就不需要额外的访问芯片。中断是有益的,因为它可以为多个设备提供服务,并且更加灵活和高效。轮询和中断的缺点
轮询的缺点是某些设备的待机时间短于响应时间,因此应采用另一种传输方法,并且CPU会浪费不必要的时间来检查尚未搜索数据传输的设备。中断的缺点是需要更复杂的硬件/软件,并且在CPU确定哪个单元请求中断之前会浪费时间。
总结
- 如果进行轮询,则会循环读取连接到一个CPU的设备。 如果外部逻辑电路不需要维修,则微型计算机检查下一个外部逻辑电路。 如果其中之一需要维修,则微型计算机切换为运行程序以服务各个外部逻辑电路。
- 当中断时,微型计算机应外部逻辑的请求中断其当前程序的运行,并切换到运行中断程序。 中断的结构允许微处理器响应异步事件,即来自外部逻辑的请求,而不必在循环中等待以检查外部逻辑电路的状态。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:轮询和中断
本文链接:https://www.vsdiffer.com/vs/polling-vs-interrupt.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。