操作系統學習筆記(2)——中斷和異常

一、中斷的引入

  • 當CPU啓動通道(或設備)進行輸入輸出後,通道可以獨立工作,CPU即轉去做其他任務;
  • 通道(或設備)輸入輸出完成後,通道通過向CPU發中斷告訴CPU此次輸入輸出結束,讓CPU繼續執行原任務輸入輸出後的程序
        中斷引入的目的:就是爲了I/O和CPU可以並行,從而實現多道程序設計。

二、異常(陷入)的引入
        當下述情況發生,CPU中斷當前的執行流程,轉到相應的錯誤處理程序或陷入處理程序:
  • CPU執行指令時本身出現算術異常、零做除數、訪存指令越界、虛存缺頁等;
  • 正常異常,即執行了一條trap指令,用於實現系統調用
三、中斷和異常的區分

1、中斷:通道(或設備)完成輸入輸出後,通道會“通知”CPU此次輸入輸出結束,這個“通知”就是中斷
可以看到,中斷與CPU正在執行的指令並沒有關係。

2、異常:而異常則是正在執行的指令本身出現了錯誤(如算術溢出、地址越界)等。

3、但中斷和異常的結果都是使得“CPU暫停正在執行的程序”:

   CPU接受“中斷”後停止當前的任務,去繼續上一個任務或繼續當時在執行的任務(如何選擇則是與調度有關)。

   CPU接受“異常”後停止當前任務,去處理這些錯誤。 處理完成後CPU返回暫停點繼續工作。

4、中斷:與正在執行的指令無關,可以屏蔽

   異常:與正在執行的指令有關,不可屏蔽


四、中斷/異常的分類
         

五、中斷的分級與屏蔽
中斷觸發器:寄存中斷事件的全部觸發器,一般一個觸發器表示一箇中斷
中斷位:每個觸發器稱爲一箇中斷位,當發生中斷時相應位就被置上(0置到1)
中斷序號:給中斷一個順序編號
中斷響應:由硬件在執行每一條指令的最後時刻判斷是否有中斷,有則轉入操作系統的中斷處理程序(中斷響應必須是由硬件支持的)  
         

六、中斷優先級
1、高級中斷>中級中斷>低級中斷
         

2、中斷優先級設置的原則
  • 從提高資源利用率角度:高速設備(如磁盤)優先級高,慢速設備(如鼠標鍵盤)優先級低
  • 交互式系統中:可以考慮用戶響應滿意優先原則
  • 實時系統中:實時設備優先
3、處理機優先級:指處理機正在運行的程序的可響應中斷的級別。
      在中斷處理程序運行之前前,去設置這個處理機優先級。
      即當處理機處理某一個優先級中斷時,只允許處理機去響應比該優先級高的中斷,低於或等於該優先級的中斷則屏蔽掉。
      屏蔽掉的中斷由硬件暫時保存,屏蔽解除時再處理。(此屏蔽稱爲軟屏蔽)
如圖舉例:
     A、若此時處理機優先級處於0,那麼此時對於中斷優先級爲1的中斷,它響應(1>0)
     B、若此時處理機優先級處於2,那麼此時對於中斷優先級爲1的中斷,它不響應(1<2)
                                                              那麼此時對於中斷優先級爲2的中斷,它不響應(2=2)
                                                              那麼此時對於中斷優先級爲3的中斷,它響應(3>2) 
               
         處理機優先級的0級:就是處理機在運行核心態和用戶態程序的時候
         當處理機處理某級別的中斷時,處理機的響應的放在哪個級別上,並按照上述過程選擇響應更高級中斷屏蔽低級/同級中斷

4、中斷屏蔽:禁止處理機響應中斷(一般採用這種)或禁止中斷出現
       中斷屏蔽的實現:
  • 硬件支持:屏蔽寄存器
  • 軟件實現:

       屏蔽寄存器怎麼設置?

       


七、中斷/異常的響應

中斷響應:CPU能夠在每條機器指令執行週期內的最後時刻掃描中斷寄存器,查看是否有中斷信號。若無則CPU繼續執行程序的後續指令;若有則轉入操作系統內的中斷處理程序

異常響應:異常是在執行指令的時候,由指令本身的原因發生的,CPU中指令的執行邏輯發現了異常則轉入操作系統的異常處理程序


八、幾個概念

PC寄存器:程序計數器,指向馬上要執行的那一條指令

斷點:檢測到中斷時,處理機剛執行完的那條執行恢復地址

恢復點:斷點的邏輯後續指令地址,PC的值

                  

現場信息:指中斷那一刻確保被中斷程序能繼續運行的有關信息,如PC、通用寄存器、其他特殊寄存器等

核心態(系統態、監督方式、管態):允許特權指令執行的狀態;此狀態運行訪問系統空間和用戶空間

用戶態(用戶態、用戶方式、目態):一般程序所運行的狀態;只可以訪問用戶空間

PS(PSW)寄存器:程序狀態字(處理機狀態字),寄存了處理機的運行狀態,包括:

  • 當前處理機運行態(核心態or用戶態)
  • 當前處理機優先級
  • 各種控制位(如外中斷賦能位)
中斷向量:存放程序狀態字和中斷處理程序入口地址的內存單元;
                    中斷向量由操作系統初始化程序進行設置,硬件按照中斷號及異常類型的不同,來通過中斷向量表散轉到相應的處理程序上

九、中斷/異常響應和處理的過程
  • 硬件保存PC、PSW
  • 軟件繼續保存現場(保存現場以“棧”的方式)
  • 分析原因並轉中斷/異常處理程序
  • (進程調度)恢復現場
        
        
       
       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章