什麼是中斷處理程序

什麼是中斷處理程序

在響應一個特定中斷的時候,內核會執行一個函數,該函數叫做中斷處理程序或中斷服務例程。產生中斷的每一個設備都有一個相應的中斷處理程序。一個設備的中斷程序是它設備驅動程序的一部分,設備驅動程序是用於對設備進行管理的內核代碼。在Linux中,中斷處理程序看起來是普普通通的C函數。這些函數必須按照特定的類型聲明,以便內核能夠以標準的方式傳遞處理程序的信息。中斷處理程序與其它內核函數的真正區別在於:中斷處理程序被內核調用來響應中斷,它們運行於中斷上下文的特殊上下文中。 上半部與下半部的對比:通常把中斷處理切爲兩個部分或兩半。中斷處理程序是上半部接收到一箇中斷,立即開始執行,但只做有嚴格時限的工作,這些工作都是在所有中斷被禁止的情況下完成。能夠被允許稍後完成的工作會推遲到下半部。在合適的時機,下半部會被開中斷執行。