Linux內核--異常和中斷的區別

      相信你們都知道很是著名的兩個名詞:異常和中斷,不過,你真的理解這兩個名詞在說什麼嗎?它們之間有什麼區別呢?學習

      1.中斷spa

      你們都知道,當咱們在敲擊鍵盤的同時就會產生中斷,當硬盤讀寫完數據以後也會產生中斷,因此,咱們須要知道,中斷是由硬件設備產生的,而它們從物理上說就是電信號,以後,它們經過中斷控制器發送給CPU,接着CPU判斷收到的中斷來自於哪一個硬件設備(這定義在內核中),最後,由CPU發送給內核,有內核處理中斷。下面這張圖顯示了中斷處理的流程:設計


 

      2.異常進程

      咱們在學習《計算機組成原理》的時候會知道兩個概念,CPU處理程序的時候一旦程序不在內存中,會產生缺頁異常;當運行除法程序時,當除數爲0時,又會產生除0異常。因此,你們也須要記住的是,異常是由CPU產生的,同時,它會發送給內核,要求內核處理這些異常,下面這張圖顯示了異常處理的流程:內存


      3.異同同步

      相同點:原理

    1> 最後都是由CPU發送給內核,由內核去處理硬件

    2> 處理程序的流程設計上是類似的程序

      不一樣點:im

    1> 產生源不相同,異常是由CPU產生的,而中斷是由硬件設備產生的

    2> 內核須要根據是異常仍是中斷調用不一樣的處理程序  

    3> 中斷不是時鐘同步的,這意味着中斷可能隨時到來;異常因爲是CPU產生的,因此,它是時鐘同步的

    4> 當處理中斷時,處於中斷上下文中;處理異常時,處於進程上下文中

相關文章
相關標籤/搜索