中斷檢視原始碼討論檢視歷史
中斷 | |
---|---|
中斷,指當出現需要時,CPU暫時 停止當前程序的執行轉而執行處理新情況的程序和執行過程。即在程序運行過程中,系統出現了一個必須由CPU立即處理的情況,此時,CPU暫時中止程序的執行轉而處理這個新的情況的過程就叫做中斷。
基本含義
雖然現在win9x已經有了PNP(即插即用)功能,但是中斷衝突仍然是不可避免的,其中最為容易發生衝突的就是IRQ、DMA和I/O。首先我們先了解一下IRQ、DMA和I/O的概念:
1、IRQ(Interrupt Request) [1]
IRQ英文全稱Interrupt Request,中文翻譯為中斷請求線。計算機中有許多設備(例如聲卡、硬盤等)他們都能在沒有CPU介入的情況下完成一定的工作。但是這些設備還是需要定期中斷CPU,讓CPU為其做一些特定的工作。如果這些設備要中斷CPU的運行,就必需在中斷請求線上把CPU中斷的信號發給CPU。
所以每個設備只能使用自己獨立的中斷請求線。一般來說在80286以上計算機中,共有16個中斷請求線與各種需要用中斷的不同外設相連接,(每個中斷線有一個標號也就是中斷號)。
中斷號的分配情況如下: [2]
IRQ 說明
0 定時器
1 鍵盤
2 串行設備控制器
3 COM2
4 COM1
5 LPT2
6 軟盤控制器
7 LPT1
8 實時時鐘
9 PC網絡
10 可用(Available)
11 可用(Available)
12 PS/2 鼠標
13 數學協處理器
14 硬盤控制器
15 可用(Available)
NM1 奇偶校驗
大家現在就可以清楚的看到,IRQ3、4、5、10、11、12、15可供用使用。
2、DMA(Direct Memory Access)
計算機與外設之間的聯繫一般通過兩種方法:一是通過CPU控制來進行數據的傳送;二是在專門的芯片控制下進行數據的傳送。我們所說的DMA,就是不用CPU控制,外設同內存之間相互傳送數據的通道,在這種方式下,外設利用DMA通道直接將數據寫入存儲器或將數據從存儲器中讀出,而不用CPU參與,系統的速度會大大增加。
DMA通道分配情況表
DMA 0 可用
DMA 1 EPC打印口
DMA 2 軟盤控制器
DMA 3 8位數據傳送
DMA 4 DMA控制器
DMA 5 可用
DMA 6 可用
DMA 7 可用
3、I/O(INPUT/OUTPUT)
輸入/輸出端口,也就是計算機配件與CPU連接的接口。每個端口都有自己唯一的一個端口號,這個端口號稱為地址。每一個想和CPU通信的外設或配件都有不同的I/O地址,通常在PC機內部一共有1024個地址。
簡單理解
中斷是一種發生了一個外部的事件時調用相應的處理程序的過程。
按照Ti官方文檔得解釋:中斷是由於軟件的或硬件的信號,使得CPU放棄當前的任務,轉而去執行另一段子程序。可見中斷是一種可以人為參與(軟件)或者硬件自動完成的,使CPU發生的一種程序跳轉。
通常,程序中斷是由外部設備通過CPU的中斷請求線向CPU提出的。在一定條件下,CPU響應中斷後,暫停源程序的執行,轉至為外設服務的中斷處理程序。中斷處理程序可以按照所要完成的任務編寫與過程類似的程序段。在程序段最後執行一條中斷返回指令返回主程序,繼續按原順序執行。
SNMP中的中斷
簡介 SNMP從被管設備中收集數據的基本方法之一: 基於中斷的方法(稱為自陷,Trap)由被管設備主動發出,可以立即通知網絡管理工作站。特點是實時性好,但有可能會導致系統資源消耗。
詳細解釋
中斷是計算機中的一個十分重要的概念,在現代計算機中毫無例外地都要採用中斷技術。什麼是中斷呢?可以舉一個日常生活中的例子來說明,假如你正在給朋友寫信,電話鈴響了。這時,你放下手中的筆,去接電話。通話完畢,再繼續寫信。
這個例子就表現了中斷及其處理過程:電話鈴聲使你暫時中止當前的工作,而去處理更為急需處理的事情(接電話),把急需處理的事情處理完畢之後,再回頭來繼續原來的事情。
在這個例子中,電話鈴聲稱為"中斷請求",你暫停寫信去接電話叫作"中斷響應",接電話的過程就是"中斷處理",相應地,在計算機執行程序的過程中,由於出現某個特殊情況(或稱為"事件"),使得CPU中止現行程序,而轉去執行處理該事件的處理程序(俗稱中斷處理或中斷服務程序),待中斷服務程序執行完畢,再返回斷點繼續執行原來的程序,這個過程稱為中斷。
中斷是為了使單片機具有對外或內部隨機發生的事件實時處理而設置的,中斷功能的存在,很大程度上提高了單片機處理外部或內部時間的能力。它也是學習單片機重要的功能之一。
對於單片機來講,中斷是指CPU在處理某一事件A時,發生了另一事件B,請求CPU迅速去處理(中斷發生);CPU暫時停止當前的工作(中斷響應),轉去處理事件B(中斷服務);待CPU將事件B處理完畢後,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回),這一過程稱為中斷。
計算機為什麼要採用中斷
為了說明這個問題,再舉一例子。假設你有一個朋友來拜訪你,但是由於不知道何時到達,你只能在大門等待,於是什麼事情也幹不了。如果在門口裝一個門鈴,你就不必在門口等待而去干其它的工作,朋友來了按門鈴通知你,你這時才中斷你的工作去開門,這樣就避免等待和浪費時間。
計算機也是一樣,例如打印輸出,CPU傳送數據的速度高,而打印機打印的速度低,如果不採用中斷技術,CPU將經常處於等待狀態,效率極低。而採用了中斷方式,CPU可以進行其它的工作,只在打印機緩衝區中的當前內容打印完畢發出中斷請求之後,才予以響應,暫時中斷當前工作轉去執行向緩衝區傳送數據,傳送完成後又返回執行原來的程序。這樣就大大地提高了計算機系統的效率。