1. 程式人生 > >計算機作業系統(二)——中斷

計算機作業系統(二)——中斷

中斷

定義

廣義和狹義

  1. 廣義:程式執行過程中,遇到急需處理的事件時,暫時中止CPU上現行程式的執行,轉去執行相應的事件處理程式,待處理完成後再返回原程式被中斷處或排程其他程式執行的過程。
  2. 作業系統是“中斷驅動”的,中斷是啟用作業系統的唯一方式。
  3. 狹義:處理器之外的中斷事件,與當前執行指令無關的中斷事件。I/O中斷、時鐘中斷、外部訊號中斷。

異常

  1. 當前執行指令引起的中斷事件。地址異常、算術異常、處理器硬體故障。
  2. 系統異常:執行陷入指令而觸發系統呼叫引起的中斷事件。請求裝置、請求I/O、建立程序。

由處理器、記憶體儲器、匯流排等硬體故障引起

處理原則:

  1. 保護現場
  2. 停止裝置
  3. 停止CPU
  4. 向操作員報告
  5. 等待人工干預

由處理器執行機器指令引起。

  1. 除數為0,運算元溢位等算術異常:簡單處理,報告使用者;由使用者編寫中斷續元程式處理
  2. 非法程式、使用者態使用特權指令、地址越界、非法存取等指令異常:終止程式
  3. 終止程序指令:終止程序
  4. 虛擬地址異常:調整記憶體後重新執行指令

處理器執行陷入指令請求OS服務引起的;在作業系統中,它一般又被稱作系統呼叫

  1. 請求分配外設、請求I/O等等
  2. 處理流程:陷入OS,保護現場,根據功能號查入口地址,跳轉具體處理程式

來源於外圍裝置報告I/O狀態的中斷

  1. I/O完成:調整程序狀態,釋放等待程序
  2. I/O出錯:等待人工干預
  3. I/O異常:等待人工干預

由外圍裝置發出的訊號引起的中斷事件

  1. 時鐘中斷、間斷時鐘中斷:記時與時間片處理
  2. 裝置報到與結束中斷:調整裝置表
  3. 鍵盤/滑鼠訊號中斷:根據訊號作出相應反應
  4. 關機/重啟動中斷:寫回檔案,停止裝置與CPU

過程

發現中斷源,提出中斷請求

  1. 發現中斷暫存器中記錄的中斷
  2. 決定這些中斷是否應該遮蔽
  3. 當有多個要響應的中斷源時,根據規定的優先順序選擇一個

中斷當前程式的執行

  1. 儲存當前程式的PSW/PC到核心棧

轉向作業系統的中斷處理程式

中斷的處理

中斷處理程式

  1. 作業系統處理中斷事件的控制程式,主要任務是處理中斷事件和恢復正常操作

中斷處理過程

  1. 保護未被硬體保護的處理器狀態
  2. 通過分被中斷程序的PSW中斷碼欄位,識別中斷源
  3. 分別處理髮生的中斷事件
  4. 恢復正常操作
    1. 對於某些中斷,在處理完畢後,直接返回剛剛被中斷的程序
    2. 對於其他一些中斷,需要中斷當前程序的執行,調整程序佇列,啟動程序排程,選擇下一個執行的程序並恢復其執行

系統處理流程

  1. 執行程序
  2. 在硬體中,發現中斷源,置中斷碼以備分析,交換新舊PSW
  3. 在作業系統中,保護未被硬體保護的現場資訊,分析中斷源,分別處理各類中斷事件
    1. 調整程序佇列,程序排程,恢復處理器現場資訊
    2. 恢復處理器現場資訊
  4. 在硬體中,恢復PSW
  5. 恢復程序

中斷遮蔽

  1. 當計算機檢測到中斷時,中斷裝置通過中斷遮蔽位決定是否響應已傳送的中斷
  2. 有選擇的響應中斷

中斷優先順序

  1. 當計算機同時檢測到多箇中斷時,中斷裝置響應中斷的順序
  2. 有優先度的響應中斷
  3. 一種可能的處理次序
    1. 處理機硬體故障中斷事件、自願性中斷事件、程式性中斷事件、時鐘中斷等外部中斷事件、輸入輸出中斷事件、重啟動和關機中斷事件
  4. 不同型別的作業系統有不同的中斷優先順序

中斷的巢狀處理

  1. 當計算機響應中斷後,在中斷處理過程中,可以再響應其他中斷
  2. 作業系統是效能攸關程式系統,且中斷響應處理有硬體要求,考慮系統效率和實現代價問題,中斷的巢狀處理應限制在一定層數內,如三層
  3. 中斷的巢狀處理改變中斷處理次序,先響應的有可能後處理

多中斷的響應與處理

決定中斷處理次序的因素

  1. 中斷遮蔽可以使中斷裝置不響應某些中斷
  2. 中斷優先順序決定了中斷裝置響應中斷的次序
  3. 中斷可以巢狀處理,但巢狀的層數應有限制
  4. 中斷的巢狀處理改變了中斷處理的次序

案例一

  1. X、Y兩個中斷同時發生
  2. 先響應X
  3. 因Y被遮蔽,繼續處理X
  4. 再響應並處理Y

案例二

  1. X、Y兩個中斷同時發生
  2. 根據中斷優先順序,先響應X
  3. 因未遮蔽Y,再響應並處理Y
  4. Y處理完成後,再處理X