2009-12-31 168 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以內核模式運行,因此存在潛在的上下文切換。即使當前線程處於內核模式,在調用中斷處理程序之前將會保存一些上下文。

仍在尋找文檔。