? 硬中斷是由外部事件引起的因此具有隨機性和突發性;硬中斷是否可以嵌套的,是否有優先級(由硬件設計體系決定)。
? 軟中斷是執行中斷指令產生的,無面外部施加中斷請求信號,因此中斷的發生不是隨機的而是由程序安排好的。
由與系統相連的外設(比如網卡、硬盤)自動產生的。主要是用來通知操作系統系統外設狀態的變化。比如當網卡收到數據包
的時候,就會發出一個中斷。我們通常所說的中斷指的是硬中斷(hardirq)。
為了滿足實時系統的要求,中斷處理應該是越快越好。linux為了實現這個特點,當中斷發生的時候,硬中斷處理那些短時間
就可以完成的工作,而將那些處理事件比較長的工作,放到中斷之后來完成,也就是軟中斷(sofTIrq)來完成。
這里解釋了我們之前在GIC中斷系列中對于中斷的兩個stage的文字。原來這個中斷兩個階段是這個意思。
? 軟中斷是執行中斷指令產生的,而硬中斷是由外設引發的。
? 硬中斷的中斷號是由中斷控制器提供的,軟中斷的中斷號由指令直接指出,無需使用中斷控制器。
? 硬中斷是可屏蔽的,軟中斷不可屏蔽。
? 硬中斷處理程序要確保它能快速地完成任務,這樣程序執行時才不會等待較長時間,稱為上半部。
? 軟中斷處理硬中斷未完成的工作,是一種推后執行的機制,屬于下半部。
中斷嵌套、軟中斷指令
1、中斷嵌套
Linux下硬中斷是可以嵌套的,但是沒有優先級的概念,也就是說任何一個新的中斷都可以打斷正在執行的中斷,但同種中斷除外。軟中斷不能嵌套,但相同類型的軟中斷可以在不同CPU上并行執行。
2、軟中斷指令、
int是軟中斷指令。
中斷向量表是中斷號和中斷處理函數地址的對應表。
int n - 觸發軟中斷n。相應的中斷處理函數的地址為:中斷向量表地址 + 4 * n。
-
控制器
+關注
關注
114文章
16960瀏覽量
182884 -
Linux
+關注
關注
87文章
11457瀏覽量
212770 -
中斷
+關注
關注
5文章
904瀏覽量
42516
發布評論請先 登錄
請問一下軟中斷的問題如何解決
什么是中斷以及硬中斷呢
微機原理——8086中斷類型以及中斷向量表、中斷響應、中斷返回

硬中斷與軟中斷是怎么回事?

什么是LInux 操作系統中斷

LInux 操作系統中斷介紹

評論