系統中斷

計算機學中的名詞

系統中斷是計算機學中的一個名詞,一般是指硬體中斷和軟體中斷的綜合,中斷髮生后,系統會停止響應,並執行中斷響應。

定義


系統中斷,一般是硬體中斷和軟體中斷的綜合,“中斷”是一個計算機術語,意思跟我們的請求差不多,滑鼠、鍵盤、板卡或者是一些系統內核組件,要想為你服務,都要向系統提出申請,然後等待操作系統的分配。如果沒有這個過程,你什麼也幹不了。CPU佔用高的原因就是,系統要保持“隨時”能為你提供服務,就必須保證它的優先權力。
所謂中斷是指CPU對系統發生的某個事件做出的一種反應,CPU暫停正在執行的程序,保留現場后自動地轉去執行相應的處理程序,處理完該事件后再返回斷點繼續執行被“打斷”的程序。
中斷可分為三類,第一類是由CPU外部引起的,稱作中斷,如I/O中斷、時鐘中斷、控制台中斷等。第二類是來自CPU的內部事件或程序執行中的事件引起的過程,稱作異常,如由於CPU本身故障(電源電壓低於105V或頻率在47~63Hz之外)、程序故障(非法操作碼、地址越界、浮點溢出等)等引起的過程。
第三類由於在程序中使用了請求系統服務的系統調用而引發的過程,稱作“陷入”(trap,或者陷阱)。前兩類通常都稱作中斷,它們的產生往往是無意、被動的,而陷入是有意和主動的。

中斷處理


中斷處理一般分為中斷響應和中斷處理兩個步驟。中斷響應由硬體實施,中斷處理主要由軟體實施。
對中斷請求的整個處理過程是由硬體和軟體結合起來而形成的一套中斷機構實施的。發生中斷時,CPU暫停執行當前的程序,而轉去處理中斷。這個由硬體對中斷請求作出反應的過程,稱為中斷響應。一般說來,中斷響應順序執行下述三步動作:
◆中止當前程序的執行;
◆保存原程序的斷點信息(主要是程序計數器PC和程序狀態寄存器PS的內容);
◆從中斷控制器取出中斷向量,轉到相應的處理程序。
通常CPU在執行完一條指令后,立即檢查有無中斷請求,如果有,則立即做出響應。
當發生中斷時,系統作出響應,不管它們是來自硬體(如來自時鐘或者外部設備)、程序性中斷(執行指令導致“軟體中斷”—Software Interrupts),或者來自意外事件(如訪問頁面不在內存)。
如果當前CPU的執行優先順序低於中斷的優先順序,那麼它就中止對當前程序下條指令的執行,接受該中斷,並提升處理機的執行級別(一般與中斷優先順序相同),以便在CPU處理當前中斷時,能屏蔽其它同級的或低級的中斷,然後保存斷點現場信息,通過取得的中斷向量轉到相應的中斷處理程序的入口。
(2)中斷處理
CPU從中斷控制器取得中斷向量,然後根據具體的中斷向量從中斷向量表IDT中找到相應的表項,該表項應是一個中斷門。於是,CPU就根據中斷門的設置而到達了該通道的總服務程序的入口。
核心對中斷處理的順序主要由以下動作完成:
◆保存正在運行進程的各寄存器的內容,把它們放入核心棧的新幀面中。
◆確定“中斷源”或核查中斷髮生,識別中斷的類型(如時鐘中斷或盤中斷)和中斷的設備號(如哪個磁碟引起的中斷)。系統接到中斷後,就從機器那裡得到一個中斷號,它是檢索中斷向量表的位移。中斷向量因機器而異,但通常都包括相應中斷處理程序入口地址和中斷處理時處理機的狀態字。
◆核心調用中斷處理程序,對中斷進行處理。
◆中斷處理完成並返回。中斷處理程序執行完以後,核心便執行與機器相關的特定指令序列,恢復中斷時寄存器內容和執行核心棧退棧,進程回到用戶態。如果設置了重調度標誌,則在本進程返回到用戶態時做進程調度。