2012-09-15 17 views
-2

在處理tasklet時是否禁用中斷,因爲它們應該在中斷上下文中運行。如果它們在處理tasklet時出現disbled,那麼調用它們的下半部分機制又有什麼意義呢?因爲它與top中斷被禁用。 或者它就像是tasklets只會在多處理器系統上有用,在多處理器系統中,在一個處理器上產生中斷,並且在另一個處理器上調度相應的tasklet,並且在tasklet運行時中斷在另一個處理器上出現中斷。 請說明。Tasklet如何工作?

+0

谷歌搜索tasklet給我第一http://www.makelinux.net/ldd3/chp-7-sect-5這似乎回答你的問題。 –

回答

0

Linux的兩個部分劃分中斷處理:

  • 首先,處理在作爲簡單的方式儘可能中斷請求(IRQ),做少就可以了,調度軟中斷/微進程做更重的部分處理。
  • 然後,softirq/tasklet被調度,重處理開始。

Linux中的上下文是:

  • NMI上下文
  • hardirq上下文:中斷處理的第一部分的上方。
  • softirq context:上面的中斷處理的第二部分。

  • 中斷上下文:以上任何一項。

  • 進程/用戶上下文:代表進程運行,例如:由於系統調用。中斷上下文相反。

  • 原子上下文:中斷上下文,或在進程上下文中的代碼段必須是原子的(不能被中斷),e.g:因爲我們採取了自旋鎖。

運行tasklet時中斷不會被禁用。進一步調用相同的tasklet。