在作業系統中,陷阱,中斷和異常是常見的術語,它們貫穿作業系統學習的始終,這篇文章主要區分它們之間的不同。
中斷是由外部事件導致並且它發生的時間是不可**的,這一點和陷阱不同。外部事件主要是指時鐘中斷,硬體中斷等。由於cpu一次只能執行一條指令,所以在乙個時刻只能有乙個程式執行,但我們感覺在我們的計算機中明明可以同時執行很多程式啊,這是由於cpu在多個程序之間快速切換所導致的偽並行。如果某乙個程式執行了足夠長用完了分配給它的時間片,cpu決定切換到另乙個程序執行,就會產生乙個時鐘中斷,切換到下乙個程序執行。
硬體中斷顧名思義就是由硬體引起的中斷,比如乙個程式需要使用者輸入乙個資料,但使用者一直沒有輸入,作業系統決定是一直等待使用者輸入還是轉而執行別的程序,一般情況是轉而執行別的程序,如果使用者的輸入到來了,那麼鍵盤驅動器會產生乙個中斷通知作業系統,作業系統儲存正在執行的程式的狀態,從而切換到原來的程序處理到來的資料。
所以中斷發生是隨機的且主要作用是完成程序間切換,從而支援cpu和裝置之間的並行。
中斷和異常的另乙個重要差別是,cpu處理中斷的過程中會遮蔽中斷,不接受新的中斷直到此次中斷處理結束。而陷阱的發生並不遮蔽中斷,可以接受新的中斷。
異常就是程式執行過程中的異常行為。比如除零異常,緩衝區溢位異常等。不同的作業系統定義了不同種類和數量的異常並且每個異常都有乙個唯一的異常號,異常會擾亂程式的正常執行流程,所以異常是在cpu執行指令時本身出現的問題,比如除數為零而出現的除零異常。異常的產生表示程式設計不合理,所以在程式設計的時候要盡量避免異常的產生。
作業系統的中斷,陷阱,異常
中斷是由外部事件導致並且它發生的時間是不可 的,這一點和陷阱不同。外部事件主要是指時鐘中斷,硬體中斷等。由於cpu一次只能執行一條指令,所以在乙個時刻只能有乙個程式執行,但我們感覺在我們的計算機中明明可以同時執行很多程式啊,這是由於cpu在多個程序之間快速切換所導致的偽並行。如果某乙個程式執行了足夠...
作業系統之中斷異常
中斷來自外部,異常來自內部。中斷 異常 指系統發生某個非同步 同步事件後,處理機暫停正在執行的程式,轉去執行處理該事件程式的過程。中斷引入 為了開發cpu和通道 或裝置 之間的併發操作。異常引入 用於表示cpu執行指令時本身引發的事件。分級原因 不同的中斷可能在同一時間點發出請求。一般的來說,告訴裝...
作業系統 中斷和異常
中斷是為了實現多道程式併發執行而引入的一種技術 當中斷發生時,cpu立即進入核心態 當中斷發生後,當前執行的程序暫停執行,並由作業系統核心對中斷進行處理 對於不同的中斷訊號,會進行不同的處理 發生了中斷,就意味著需要作業系統介入,開展管理工作。由於作業系統的管理工作 比如程序切換 分配i 0裝置等 ...