悟空學Linux專欄----第29篇

  今天悟空要講的是中斷的約束,這讓悟空想起了師傅的緊箍咒,所以悟空一看到約束兩字就有點不爽,總覺得這兩個字扎眼。

  悟空:中斷是內核中執行最敏感的任務,因此需要滿足一些約束。

  A童鞋:那麼需要遵守什麼約束呢?

  悟空(心想竟然有一個人沒睡覺):第一個約束,就是,內核需要儘可能快的處理中斷。

  A童鞋:老師,那麼怎樣才能儘可能快的處理中斷呢?

  悟空:爲了儘可能快的處理中斷,Linux系統將中斷的處理分爲了兩個部分,一個部分是中斷的上半部分,第二個是中斷的下半部分。上半部分是關鍵而緊急的部分,內核必須立刻執行;而第二部分是不那麼緊急的部分,這部分的代碼被推後執行。Linux的下半部分主要有三種機制,軟中斷、tasklet、工作隊列。

  A童鞋:那麼老師,什麼是軟中斷、tasklet、工作隊列?

  悟空心想,唉慘了我還沒來得及看了,但是悟空靈機一動:這些我們以後的課程會講到,今天我們暫時不講這些。中斷的第二個敏感的是必須可以嵌套執行,所謂嵌套執行就是,當一箇中斷在執行的時候,必須可以被一個新的中斷打斷,而且當新的中斷執行完之後必須能夠返回被打斷的中斷繼續執行。

  A童鞋:老師,那麼中斷嵌套,最多能嵌套多少次呢?

  悟空:這個……這個……哦,中斷的第三個約束規則是什麼臨界區的問題,在臨界區內中斷必須被禁止。但是,Linux設計的時候儘量減少臨界區的使用,減少臨界區的關中斷的時間。

  A童鞋:老師,那麼如果我設計的時候不遵守這些約束會發生什麼事情呢?

  悟空:黎叔很生氣,後果很嚴重。

  A童鞋雖然不知道黎叔是誰,但是知道後果很嚴重是什麼意思。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章