一.什麼是中斷
計算機中斷——顧名思義,就是計算機由於遇到一些緊急情況,中斷現在的工作,轉而
處理緊急情況,處理完緊急情況以後再回到以前執行的工作繼續執行。不過這只是狹義的計
算機中段概念。因為這個概念只能解釋內部中斷和外部中斷,然而對於軟體中斷卻不能套用
次概念。
為了讓我們更加方便的理解中斷這個概念,然我們打個比方:假設你在上網,突然你的
朋友要你去踢足球,這就是中斷請求。然後你對他喊道:「我就來!等一等!」這就是中斷
響應。接著你就和他踢足球去了,這就是中斷處理。踢完足球以後,你再回到你的計算機前
面接著上網,這就叫做中斷返回。從以上可以看出,中斷分為4個步驟:中斷請求->中斷響
應->中斷處理->中斷返回。
以下我都會以這個例子為基礎闡述我對於中斷的理解。
首先讓我們對中斷分一分類。有一種分類情況:1.可遮蔽中斷 2.不可遮蔽中斷。
所謂可屏障中斷很好理解,以那個例子為例。你的朋友叫你踢足球,但是你可能正在和
你心儀的美眉聊得正開心,於是你不響應這個中斷,那麼這個中斷就是可遮蔽中斷。
假如中斷你的不是這件事,而是叫你去領獎金,過期不侯,那麼你是無論如何也要相應
這個中斷了。這就是不可遮蔽中斷。
一般來說,像什麼嚴重情況產生的中斷一般都是非可遮蔽中斷,比如:電源掉電等等。
可遮蔽中斷和非可遮蔽中斷對應著cpu的兩根針,是嚴格區分的。
還有一種中斷分類方法:內部中斷、外部中斷、軟體中斷。
內部中斷是cpu自己發生異常產生的中斷。其中最重要的是「除0中斷」和「溢位中斷」
。大家都知道,除數是不能為0的,如果在cpu的執行過程**現了這種情況的話,那麼就會
產生乙個中斷,由系統自動執行,由於中斷號為「0」,所以也叫0號中斷;溢位中斷是在cpu的運算過程中產生溢位,由應用程式執行。溢位這個概念比較複雜,需要一定的計算機編碼
知識,不在這兒的討論之列。
外部中斷是計算機的外部裝置給cpu的中斷請求,例如:時鐘、鍵盤、滑鼠等等。這些中
斷都是可以遮蔽的。我們在鍵盤上輸入了『a』,結果在螢幕上顯示出來了,這都是中斷的功
勞。軟體中斷就是應用程式提出的中斷了,是不可能被遮蔽的。每乙個軟體中斷都對應乙個
標準的功能,如:在螢幕上顯示乙個字串,準備從鍵盤接受乙個字元等等。
最後我們回到 irq 號,為什麼中斷要編號,因為只有編號,cpu才知道向cpu提出的是什麼。
計算機中斷與異常總結
軟體產生的中斷 異常源異常分類 不可遮蔽中斷 nmi 開啟和關閉中斷 8259a產生中斷 中斷和異常是一些提示性事件,這些事件表明系統 處理器或者當前執行程式或任務存在著某種狀況,需要處理器注意。典型情況下,中斷是在程式執行期間隨機發生的,是對硬體訊號的響應。系統硬體使用中斷去處理處理器的外部事件,...
計算機中的contex理解
1 其實簡單的說就是跟當前主題有關的所有內容。2 如說到程式的上下文,就是當前這段程式之上和之下的程式段。因為有些變數 函式不一定都定義在一起,而且乙個程式段不是一行就能寫完,之間有有很多的聯絡。就像看英語閱讀或者 等都需要前後理解的。3 而 裝置上下文 the device context 是一種...
計算機中斷(轉貼,很經典的解釋)
熟悉windows的人都知道,在系統設定中,幾乎沒有硬體都涉及到一些irq號,這些irq號 是什麼意思呢?irq interupt request 中斷請求號。什麼是計算機中斷?計算機中斷 顧名思義,就是計算機由於遇到一些緊急情況,中斷現在的工作,轉而 處理緊急情況,處理完緊急情況以後再回到以前執行...