作業系統 中斷

2021-08-21 20:24:15 字數 2370 閱讀 8546

寫在前面

參考

中斷

中斷是指cpu對i/o裝置發來的中斷訊號的一種響應。cpu暫停正在執行的程式,保留cpu環境後,自動地去執行該i/o裝置的中斷處理程式。執行完後,再回到斷點,繼續執行原來的程式。i/o裝置可以是字元裝置,也可以是塊裝置、通訊裝置。由於中斷時由外部裝置引起的,故又稱外中斷。

在作業系統中,實現從使用者態進入核心態的唯一途徑就是通過中斷或異常。當中斷或異常發生時,執行使用者態的cpu會立即進入核心態,這是通過硬體實現的。

中斷是指計算機在執行期間,系統內發生任何非尋常的或非預期的急需處理事件,使得cpu暫時中斷當前正在執行的程式而轉去執行相應的事件處理程式,待處理完畢後又返回原來被中斷處繼續執行或排程新的程序執行的過程。

引起中斷發生的事件被稱為中斷源。中斷源向cpu發出的請求中斷處理訊號稱為中斷請求。cpu收到中斷請求後轉到相應的事件處理程式稱為中斷響應。

中斷也稱外中斷,指來自cpu執行指令以外的事件的發生,如裝置發出的i/o結束中斷,表示裝置輸入/輸出處理已經完成而希望處理機能夠向裝置發下乙個輸入/輸出請求,同時讓完成輸入/輸出後的程式繼續執行;時鐘中斷,表示乙個固定的時間片已到,讓處理機處理計時、啟動定時執行的任務等。中斷通常與當前處理機執行的程式無關。

斷向量表

為每種裝置配以相應的中斷處理程式,把該程式的入口位址放在中斷向量表的乙個表項中,並規定乙個中斷號用於裝置的中斷請求。

中斷優先順序

系統中有多個中斷訊號源,系統為他們規定不同的優先順序。如:鍵盤《印表機《磁碟

陷入

另外一種由cpu內部事件所引起的中斷,例如程序在運算中發生了上溢或者下溢,有如程式出錯,如非法指令,位址越界等。通常把這類中斷稱為內中斷或者陷入。若系統發現有陷入事件,cpu也將暫停正在執行的程式,轉去執行該陷入事件的處理程式。中斷和陷入的主要區別是訊號的**,既是來自cpu外部,還是cpu內部。

對中斷的處理方式

遮蔽(禁止)中斷

當處理機正在處理乙個中斷時,將遮蔽掉所有的中斷,即處理機對任何新到的中斷請求,都暫時不予理睬,而讓他們等待,直到處理機已完成本次中斷的處理後,處理機再去檢查是否有中斷發生。若有,再去處理新到的中斷,若無,則返回被中斷的程式,在該方法中,所有中斷都按順序依次執行,優點是簡單,不適合用於對實時性要求較高的中斷請求。

巢狀中斷

在設定了中斷優先順序的系統中。通常按這樣的規則來處理中斷.當同時有多個不同優先順序的中斷請求時,cpu優先響應最高優先順序的中斷請求。高優先順序的中斷請求可以搶占正在執行的低優先順序中斷的處理機。

中斷處理程式的處理過程

測定是否有未響應的中斷訊號。

當裝置完成乙個字元的讀入(如字元裝置),裝置控制器向處理機傳送乙個中斷請求訊號,請求處理機將字元讀入記憶體。處理機執行完當前指令後都要檢測是否有未響應的中斷訊號。若沒有繼續執行下一條指令,若有,則停止原有程序的執行,準備轉去指向中斷處理程式,為處理機的控制權交給中斷程式

保護被中斷程序的cpu環境。

轉入相應的裝置處理程式。

處理機測試各個中斷源,確定io裝置,並傳送確認訊號。裝置收到訊號後,取消中斷請求訊號。將裝置中斷處理程式的入口位址裝入到程式計數器中,這樣,當處理機執行時,便可以自動轉向中斷處理程序。

中斷處理。

恢復cpu的現場並退出中斷。

中斷處理完成後,恢復cpu現場,退出中斷。是否返回被中斷的程序,取決於:

採用遮蔽中斷方式。返回至被中斷的程序

採用中斷巢狀方式,考慮有無優先順序更高的中斷請求

時鐘中斷

在linux的0號中斷是乙個定時器中斷。在固定的時間間隔都發生一次中斷,也是說每秒發生該中斷的頻率都是固定的。該頻率是常量hz,該值一般是在100 ~ 1000之間。該中斷的作用是為了定時更新系統日期和時間,使系統時間不斷地得到跳轉。另外該中斷的中斷處理函式除了更新系統時間外,還需要更新本地cpu統計數。指的是呼叫scheduler_tick遞減程序的時間片,若程序的時間片遞減到0,程序則被排程出去而放棄cpu使用權。

linux的os時鐘的物理產生原因是可程式設計定時/計數器產生的輸出脈衝,這個脈衝送入cpu,就可以引發乙個中斷請求訊號,我們就把它叫做時鐘中斷。

「時鐘中斷」是特別重要的乙個中斷,因為整個作業系統的活動都受到它的激勵。系統利用時鐘中斷維持系統時間、促使環境的切換,以保證所有程序共享cpu;利用時鐘中斷進行記帳、監督系統工作以及確定未來的排程優先順序等工作。可以說,「時鐘中斷」是整個作業系統的脈搏。

從本質上說,時鐘中斷只是乙個週期性的訊號,完全是硬體行為,該訊號觸發cpu去執行乙個中斷服務程式,但是為了方便,我們就把這個服務程式叫做時鐘中斷。

作業系統 中斷

中斷是指計算機在執行期間,系統內發生任何非尋常的或非預期的急需處理事件,使得cpu暫時中斷當前正在執行的程式而轉去執行相應的事件處理程式,待處理完畢後又返回原來被中斷處繼續執行或排程新的程序執行的過程。引起中斷發生的事件被稱為中斷源。中斷源向cpu發出的請求中斷處理訊號稱為中斷請求,而cpu收到中斷...

作業系統 中斷

中斷是改變處理器執行指令順序的一種事件。這樣的事件與cpu晶元內外部硬體電路產生的電訊號相對應。有了中斷後,使cpu可以與其他裝置並行工作,能有效提高cpu的利用率,改善系統效能,支援系統的非同步性。中斷的型別 分為 同步中斷 內部中斷或異常 非同步中斷 外部中斷 1 同步中斷是當指令執行時由cpu...

作業系統中斷

從中斷事件的性質出發,中斷可以分為兩大類 一般情況下,優先順序的高低順序依次為 硬體故障中斷 自願中斷 程式性中斷,外部中斷和輸入輸出中斷。自願中斷的斷點是確定的,而強迫性中斷的斷點可能發生在任何位置。中斷響應 硬體即中斷裝置操作 處理器每執行一條指令後,硬體的中斷位置立即檢查有無中斷事件發生,若有...