1. 程式人生 > >Linux中斷底半部機制

Linux中斷底半部機制

下半部 一個 span hand 實現 signed blank stat tar

參考:

Linux下半部處理之軟中斷

linux中斷底半部機制

《深入理解Linux內核》軟中斷/tasklet/工作隊列

為了提高系統的響應能力和並發能力,Linux將中斷處理分了上半部和下半部。當一個中斷產生,調用該中斷對應的處理程序(上半部),然後告訴系統,對應的後半部可以執行了,中斷處理程序立即返回,下半部會在合適的時機由操作系統調用。這樣一來就大大的減少了中斷處理所需要的時間。

中斷上半部處理函數就是Linux中斷體系結構中介紹的request_irq中註冊的irq_handler_t類型的函數。

int request_irq(unsigned int irq, irq_handler_t handler, unsigned long
irqflags, const char *devname, void *dev_id)
一般地,有如下特征的任務放在上半部 1、對時間非常敏感 2、與硬件相關的 3、不能被其他中斷打斷的工作 以上三點之外的,考慮放在下半部。 中斷底半部實現的機制有: 1.tasklet 2.工作隊列work queue 3.軟中斷softirq 其中tasklet由軟中斷實現。

Linux中斷底半部機制