我想知道哪些线程处理设备中断。当用户模式线程运行时出现中断时会发生什么?另外,当系统处理中断时,其他用户线程是否有机会运行?
请向我推荐一些描述windows如何处理中断的参考资料。
发布于 2009-04-03 06:55:02
设备中断本身(通常)由具有接受中断的CPU的任何线程处理,但是在环0中并且处于不同的保护级别。这限制了中断处理程序可以采取的某些操作,因为在大多数情况下,当前线程将与等待中断指示的事件发生的线程无关。
内核本身是封闭源代码的,并且仅通过其内部API进行记录。该API向设备驱动程序作者公开,并在驱动程序开发工具包中进行了描述。
以下是一些帮助您入门的资源:
请注意,示例中的DDK中包含了许多常用设备驱动程序的源代码。尽管生产版本几乎肯定是不同的,但即使您不想自己实现驱动程序,阅读示例驱动程序也可以回答一些问题。
发布于 2009-04-03 06:11:16
像任何其他操作系统一样,Windows进程在内核模式下中断,具有更高的中断优先级(我想他们称之为IRPL中断,但我不知道"R“代表什么)。在同一台机器上运行的任何用户线程或低级内核线程在处理中断请求时将被中断,并将在中断处理完成后恢复。
发布于 2009-04-03 06:34:02
为了更多地了解Windows上的设备中断,您需要学习设备驱动程序开发。这是一个很小的话题,我不认为你能在网络上找到很多有用的资源,你可能需要找一本书或一个培训课程。
无论如何,Windows通过中断请求级别(IRQL)和Deferred procedure calls来处理中断。中断在内核模式下处理,该模式比用户模式具有更高的优先级。一个合适的中断处理程序需要非常快速地做出反应。它只执行绝对必要的操作,并注册一个延迟过程调用以供将来运行。当系统处于中断请求级别时,就会发生这种情况。
https://stackoverflow.com/questions/712678
复制相似问题