硬體中斷 上下部

2021-09-25 02:23:14 字數 570 閱讀 5574

1.硬體中斷是由硬體觸發,通過電訊號通知到cpu,cpu根據中斷號尋找對應的中斷服務例程進行處理。中斷時需要關閉中斷線上的相同中斷,因此為了快速響應,需要將中斷處理的過程分成上半部和下半部;需要積極快速響應的、不可以併發處理的、涉及到硬體的(例如網絡卡資料拷貝到記憶體的過程)放在上半部,可以推後處理的就放到下半部去執行

中斷處理程式有自己的棧,在處理過程中需要關閉中斷,因此同一型別的中斷是序列處理的

cat /proc/interrupts 可以看到中斷號與對應的裝置

中斷號0 定時器

中斷號1 鍵盤

2.異常不同於中斷,需要核心同步處理;例如除0異常、缺頁異常等等,處理流程與中斷類似

3.下半部機制是用於非同步處理中斷中可以推後執行的處理流程,可以通過軟體中斷、tasklet、工作佇列來做

軟中斷是指通過軟體的方式進行非同步處理,中斷服務例程將處理任務放入佇列中,喚醒ksoftirq執行緒處理佇列中的任務,這些任務是可能併發執行的,因此需要設計為可重入的。通常都是使用tasklet來實現下半部,而tasklet其實是基於軟中斷的一種擴充。工作佇列是執行於程序上下文的,如果需要使用程序上下文處理,則必須使用工作佇列來實現。

Linux作業系統 中斷 中斷處理 中斷上下部

中斷響應過程 中斷請求 cpu響應中斷,清除中斷標誌 保護現場 確定中斷號,響應中斷服務程式 中斷返回 恢復現場 1 中斷上半部 禁止響應其他中斷執行,下半部 開啟中斷執行 2 如果裝置使用中斷,相應的驅動程式就會註冊乙個中斷處理程式。註冊中斷處理程式 request irp 分配一條給定的中斷線。...

中斷上下文

一 中斷下半部 工作佇列 1 中斷 先看一下宋寶華先生的 linux裝置驅動開發詳解 裡面對中斷的描述吧。這本書個人感覺 寫的比較好,從開始學驅動到現在,還能從中得到不少知識。裝置的中斷會打斷核心中程序的正常排程和執行,系統對更高吞吐率的追求勢必要求中斷服務程式盡可能地短小精悍。但是,這個良好的願望...

linux中斷 程序上下文和中斷上下文

中斷發生以後,cpu跳到核心設定好的中斷處理 中去,由這部分核心 來處理中斷。這個處理過程中的上下文就是中斷上下文。為什麼可能導致睡眠的函式都不能在中斷上下文中使用呢?首先睡眠的含義是將程序置於 睡眠 狀態,在這個狀態的程序不能被排程執行。然後,在一定的時機,這個程序可能會被重新置為 執行 狀態,從...