中斷服務(wù)程序異步執(zhí)行,可能會中斷其他的重要代碼,包括其他中斷服務(wù)程序。
因此,為了避免被中斷的代碼延遲太長的時間,中斷服務(wù)程序需要盡快運行,而且執(zhí)行的時間越短越好,所以中斷程序只作必須的工作,其他工作推遲到以后處理。
所以Linux把中斷處理切為兩個部分:上半部和下半部。
上半部就是中斷處理程序,它需要完成的工作越少越好,執(zhí)行得越快越好,一旦接收到一個中斷,它就立即開始執(zhí)行。像對時間敏感、與硬件相關(guān)、要求保證不被其他中斷打斷的任務(wù)往往放在中斷處理程序中執(zhí)行;
而剩下的與中斷有相關(guān)性但是可以延后的任務(wù),如對數(shù)據(jù)的操作處理,則推遲一點由下半部完成。
下半部分延后執(zhí)行且執(zhí)行期間可以相應(yīng)所有中斷,這樣可使系統(tǒng)處于中斷屏蔽狀態(tài)的時間盡可能的短,提高了系統(tǒng)的響應(yīng)能力。
實現(xiàn)了程序運行快同時完成的工作量多的目標。