首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows中的中断处理

Windows中的中断处理
EN

Stack Overflow用户
提问于 2009-04-03 05:43:43
回答 3查看 12.3K关注 0票数 8

我想知道哪些线程处理设备中断。当用户模式线程运行时出现中断时会发生什么?另外,当系统处理中断时,其他用户线程是否有机会运行?

请向我推荐一些描述windows如何处理中断的参考资料。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-03 06:55:02

设备中断本身(通常)由具有接受中断的CPU的任何线程处理,但是在环0中并且处于不同的保护级别。这限制了中断处理程序可以采取的某些操作,因为在大多数情况下,当前线程将与等待中断指示的事件发生的线程无关。

内核本身是封闭源代码的,并且仅通过其内部API进行记录。该API向设备驱动程序作者公开,并在驱动程序开发工具包中进行了描述。

以下是一些帮助您入门的资源:

  • 任何版本的,由所罗门和鲁西诺维奇。目前的版本似乎是第四版,但即使是老版本也会有所帮助。
  • The Windows DDK,现在更名为WDK。它的文档也是available online。请务必阅读Kernel Mode Design Guide...
  • Sysinternals有工具和文章来探究和解释内核的行为。这曾经是一个独立的网站,直到微软厌倦了Mark Russinovich,他似乎比他们更了解内核的工作原理。;-)

请注意,示例中的DDK中包含了许多常用设备驱动程序的源代码。尽管生产版本几乎肯定是不同的,但即使您不想自己实现驱动程序,阅读示例驱动程序也可以回答一些问题。

票数 3
EN

Stack Overflow用户

发布于 2009-04-03 06:11:16

像任何其他操作系统一样,Windows进程在内核模式下中断,具有更高的中断优先级(我想他们称之为IRPL中断,但我不知道"R“代表什么)。在同一台机器上运行的任何用户线程或低级内核线程在处理中断请求时将被中断,并将在中断处理完成后恢复。

票数 1
EN

Stack Overflow用户

发布于 2009-04-03 06:34:02

为了更多地了解Windows上的设备中断,您需要学习设备驱动程序开发。这是一个很小的话题,我不认为你能在网络上找到很多有用的资源,你可能需要找一本书或一个培训课程。

无论如何,Windows通过中断请求级别(IRQL)和Deferred procedure calls来处理中断。中断在内核模式下处理,该模式比用户模式具有更高的优先级。一个合适的中断处理程序需要非常快速地做出反应。它只执行绝对必要的操作,并注册一个延迟过程调用以供将来运行。当系统处于中断请求级别时,就会发生这种情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/712678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档