中斷與異常機制


中斷異常機制介紹

操作系統是由 “中斷驅動” 或者 “事件驅動” 的

主要作用:

  1. 及時處理設備發來的中斷請求
  2. 可使 OS 捕獲用戶程序提出的服務請求
  3. 防止用戶程序執行過程中的破壞性工作
  4. 。。。

特點:

  1. 隨即發生的
  2. 自動處理的(硬件來完成)
  3. 可恢復的

為何引入中斷與異常?

中斷的引入:為了支持CPU和設備之間的並行操作

當 CPU 啟動設 備進行輸入/輸出后,設備便可以獨立工作,CPU 轉去處理與此次輸入/輸出不相關的事情;當設備完成輸入/輸出后,通過向 CPU 發中斷報郜此次輸入/輸出的結果,讓 CPU 決定如何處理以后的事情

異常的引入:表示CPU執行指令時本身出現的問題

如算術溢出、除零、取數時的奇偶錯,訪存地址時越界或執行了 “陷入指令” 等,這時硬件改變了 CPU 當前的執行流程,轉到相應的錯誤處理程序或異常處理程序或執行系統調用

早期兩者都是中斷,后來有了區分,區分的標准是主要是產生的原因

事件分類

  1. 中斷(外中斷)
    1. IO 中斷。比如鍵盤上按 ctrl+c、網卡接收到數據包、打印機結束、讀盤結束
    2. 時鍾中斷。比如設置的定時器到時間了、cpu 上運行的時間片時間到了
    3. 硬件故障。比如筆記本電腦電池耗盡報警、讀內存奇偶檢驗錯誤
  2. 異常(內中斷)
    1. 系統調用
    2. 頁故障/頁錯誤
    3. 保護性異常
    4. 斷點異常
    5. 其他程序的異常,如算術溢出等

中斷:外部事件,正在運行的程序所不期望的
異常:正在執行的指令引發的

image-20211021115751615

中斷異常機制工作原理

中斷異常機制是現代計算機系統的核心機制之一。

硬件和軟件相互配合而使計算機系統的已充分發揮能力。

硬件主要工作是響應

捕獲中斷源發出的中斷/異常請求,以一定方式響應,將處理器控制權交給特定的處理程序。

軟件的主要工作是處理

識別中斷/異常類型並完成相應的處理。

硬件部分

image-20211021111113102

中斷響應示意圖

image-20211021110245697
  1. 設備發送中斷信號
  2. 中斷硬件部件保存現場,把內存保存到了系統堆棧內,主要是 PSW(程序狀態字) + PC
  3. 中斷硬件根據中斷碼查中斷向量表,得到對應的處理程序
  4. 把中斷處理程序入口地址等信息推送到相應的寄存器
  5. 執行中斷處理程序(從中斷斷點開始執行,完事之后繼續執行)

軟件部分

中斷處理程序

設計操作系統時,為每一類中斷/異常時間都編好相應的處理程序,並設置好中斷向量表

系統運行時若響應中斷,中斷硬件部件將 CPU 控制權轉給中斷處理程序:

  1. 保存相關寄存器信息
  2. 分析中斷/異常的具體原因
  3. 執行對應的處理功能
  4. 恢復現場,返回被事件打斷的程序

小結

以設備輸入輸出中斷為例:

  1. 打印機給 CPU 發中斷信號
  2. CPU 處理完當前指令后檢測到終端,判斷出中斷來源並向相關設備發確認信號
  3. CPU 開始為軟件處理終端做准備:
    1. CPU 狀態被切換為內核態
    2. 在系統棧中保存被中斷程序的重要上下文環境,主要是程序計數器 PC,程序狀態字 PSW
  4. CPU 根據中斷碼查中斷向量表,獲得與該中斷相關的處理程序的入口地址,並將 PC 設置成該地址,新的指令周期開始時,CPU 控制轉移到中斷處理程序
  5. 中斷處理程序開始工作
    1. 在系統棧中保存現場信息
    2. 檢查 I/O 設備的狀態信息,操縱 I/O 設備或者在設備和內存之間傳送數據等等
  6. 中斷處理結束后,CPU 檢測到中斷返回指令,從系統棧中恢復被中斷程序的上下文環境,CPU 狀態恢復成原來的狀態,PSW 和 PC 恢復成中斷前的值,CPU 開始一個新的指令周期

1-6 中只有 5 工作在軟件部件,其余都工作在硬件部件

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM