中斷的上半部分與下半部分

2022-06-26 22:48:14 字數 525 閱讀 5917

為了讓核心能夠快速響應硬體裝置的訊息,引入了中斷機制。當硬體裝置需要被處理(比如網絡卡收到了包),會傳送乙個非同步的中斷請求給處理器,然後處理器陷入中斷上下文中,停止當前執行的程式,轉而執行預先設定好的中斷處理程式。完成中斷處理程式之後給硬體裝置乙個訊號再返回原先的工作繼續。

在這套機制中,中斷處理程式的編寫非常關鍵。一方面,它必須完成對硬體中斷響應的處理,比如網絡卡中斷,要把緩衝區裡的內容複製到記憶體,並且進行解析,然後返回給硬體,告訴硬體前乙個中斷已經處理掉了。在這個過程中,處理器陷入中斷上下文,**不可阻塞。另一方面,因為不可阻塞,中斷響應程式必須盡可能短,以免錯過接下來的中斷。這樣,既要處理的快,又要處理得多,就存在著速度與工作量的矛盾。

對此,解決方案是把中斷處理程式拆分成兩部分,上半部分和下半部分。上半部分負責處理緊急而簡單的任務,例如告訴硬體中斷已經處理了;下半部分負責處理與當前中斷 相關的、繁重的、不是那麼緊急的任務,比如對網絡卡收到的資訊進行解析。上半部分要求接到中斷立即執行,越快越好;而下半部分則不必立即執行,在系統比較空閒的時候(不一定是完全空閒,可以加入排程佇列參與排程)再執行。

linux中斷的上半部和下半部

本文 與linux中斷息息相關的乙個重要概念是linux中斷分為兩個半部 上半部 tophalf 和下半部 bottom half 上半部的功能是 登記中斷 當乙個中斷發生時,它進行相應地硬體讀寫後就把中斷例程的下半部掛到該裝置的下半部執行佇列中去。因此,上半部執行的速度就會很快,可以服務更多的中斷...

Linux中斷上半部和下半部概念

前言 cpu在執行程式時,如果有外部中斷觸發時,如定時器中斷 序列匯流排中斷等,cpu停止當前任務從 而轉去響應中斷處理。對於中斷函式的處理,原則是盡快處理完事務並退出中斷,這一點也比較好 理解,盡快處理中斷並返回,保證正常任務的執行,並且能否響應其他事務的中斷,保證實時性和 併發性。其實,在微控制...

css上半部分自適應高度,下半部分自動填充豎向排列

把乙個頁面乙份成2部分,上面的表單不是固定的,所以不能設定固定蓋度,但是下面還需要填充滿。我碰到的問題是下面沒有填充滿,出來補個div白色背景這與我想要的效果不一樣 彈性盒的功能很強大,思路就是乙個大盒子包含2個小盒子,給大盒子設定成彈性盒,然後給上半部分用flex shrink,下面用flex g...