2009-12-31 123 views
1

我想知道处理器何时被中断并执行ISR(中断服务例程),是在被中断以处理该中断的线程的上下文中执行的,还是在其自己的线程中执行,然后返回到原来的线程剩下的地方?中断处理程序在不同的线程中执行?

因此,发生中断时实际发生上下文切换?

+0

.......哪个操作系统? – jldupont 2009-12-31 19:18:51

+0

Windows,处理器:X86 – 2009-12-31 19:23:46

回答

2

未创建线程来处理中断(为什么系统调用有时可能会失败),尽管您可以有一个特殊线程来处理中断(请参阅维基百科文章interrupt handling上的“第二级中断处理程序” ;如果Windows使用SLIH,我不确定)。由于ISR以内核模式运行,因此存在潜在的上下文切换。即使当前线程处于内核模式,在调用中断处理程序之前将会保存一些上下文。

仍在寻找文档。