当您禁用中断时(使用 cli x86 中的指令),到底发生了什么?

  • PIC 是否会等待您打开中断,并在发生这种情况时触发中断?(如果是这样,需要等待多长时间,如果时间“到期”会发生什么?)

  • 从设备的角度来看,中断是否会被发送到“黑洞”而没有响应?

  • PIC 是否以某种方式告诉设备“CPU 正忙”之类的?

  • 还是发生了其他事情?

另外,你如何处理你不知道如何处理的中断?
有没有办法告诉 PIC(或设备,如果您不知道设备是什么)“是的,我收到了您的消息,但我不知道如何处理它”?

有帮助吗?

解决方案

8259a pic等待CPU的INTA信号。 CPU通过将控件传输到适当的ISR来开始处理中断时发送它。哪个ISR? PIC向CPU提供中断向量,该CPU将查找地址的IVT / IDT,并且您知道其余。 PIC不会提供中断向量,直到它收到INTA。

8259A PIC只有与I / O设备的单向通信。他们可以告诉它,他们有需要维修的中断。

所以,如果CPU没有响应中断,那么一切都在图片中的空气中。然而,设备可以在他们的突发偏离断言,然后重新激励中断请求信号。我不知道哪个。我也不知道哪些有时间对中断服务的要求。

如果您对来自特定来源的中断不感兴趣,您只能掩盖它,您将无法获得任何。如果您拍摄中断但不知道如何处理它,您只能告诉您处理的照片。这可能将中断的设备留在“冻结”状态下,无限期地等待用于服务发生。它还可能导致设备保持其中断请求信号高,如果您在触发模式中的中断时,这将是一个问题 - 你将不断地中断。

其他提示

中断仍然会触发,但 CPU 不会监听。当您再次开始聆听时(sti),信号仍然存在,并且会第一时间生效。

PC PIC 有多个中断级别,我相信它可以为每个优先级保留一个活动中断。它会保留其中的每一项,直到CPU告诉它相应的处理完成为止。长时间禁用中断可能会破坏这一点,所以不要这样做!

负责中断的设备在等待期间不会得到任何响应——无论如何,这也是一种响应。如果它不能等待,它可能会进入某种错误状态,CPU 最终恢复时会看到该错误状态。

您只会获得已明确启用的中断,因此应该不会出现意外。打开中断的设备驱动程序最好知道如何处理它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top