硬件中断与软件中断
中斷定義:指當出現需要時,CPU暫時停止當前程序的執行轉而執行處理新情況的程序和執行過程。
硬件中斷是由與系統相連的外設(比如網卡 硬盤 鍵盤等)自動產生的. 每個設備或設備集都有他自己的IRQ(中斷請求), 基于IRQ, CPU可以將相應的請求分發到相應的硬件驅動上(注: 硬件驅動通常是內核中的一個子程序, 而不是一個獨立的進程).處理中斷的驅動是需要運行在CPU上的, 因此, 當中斷產生時, CPU會暫時停止當前程序的程序轉而執行中斷請求.
軟中斷不會直接中斷CPU, 也只有當前正在運行的代碼(或進程)才會產生軟中斷. 軟中斷是一種需要內核為正在運行的進程去做一些事情(通常為I/O)的請求.
硬件中斷和軟中斷的區別
- 硬件中斷是由外設引發的, 軟中斷是執行中斷指令產生的.
- 硬件中斷的中斷號是由中斷控制器提供的, 軟中斷的中斷號由指令直接指出, 無需使用中斷控制器.
- 硬件中斷是可屏蔽的, 軟中斷不可屏蔽.
- 硬件中斷處理程序要確保它能快速地完成任務, 這樣程序執行時才不會等待較長時間, 稱為上半部.
- 軟中斷處理硬中斷未完成的工作, 是一種推后執行的機制, 屬于下半部.
總結
- 上一篇: 剑指offer-3 从尾到头打印链表
- 下一篇: 剑指offer-求二叉树深度