我想知道程序在执行过程中如何看到和使用中断。我已经阅读了有关中断的级别,边沿,混合和消息类型的信息,并且该设备发送了一个脉冲来发出中断信号,但是程序如何看到该中断?还是该中断对程序完全可见? 感谢您对此的任何帮助

有帮助吗?

解决方案

通常,中断的发生会导致处理器停止执行其正在执行的操作,记住它在哪里停止并转到对它有某种反应的特殊代码。不管处理器现在在做什么,硬件都会一直检查中断。因此,它转到特殊的代码段,即所谓的中断处理程序,并在处理完成之后,它返回到之前的操作。中断的程序什么也没注意到。

中断处理程序所在的地址取决于处理器体系结构和中断类型。有时需要将其固定在内存中的固定点上,该地址的地址在处理器的数据表中给出。大多数情况下,内存中固定地址上有一个特殊数组,称为入侵矢量表,用于存储处理各种中断的过程的地址。

在PC或任何其他稍先进的电子设备上,中断处理程序和中断向量表是操作系统的一部分。除非您正在编写OS或对嵌入式设备进行编程,否则根本不需要被中断打扰。

其他提示

取决于操作系统(如果有)。在我们最熟悉的通用“桌面”操作系统上,用户模式程序永远不必直接处理硬件中断。来自外围设备(如键盘,鼠标,磁盘,NIC等)的中断由驱动程序处理。通常,“程序”中的线程会进行读/写请求API调用,并且在请求完成之前该调用不会返回-这是程序与硬件之间的最近距离。在内核中,调用线程被阻塞,直到寻址的驱动程序发出请求的I / O完成的信号为止。

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