在操作系統中引入核心態和用戶態這兩種工作狀態後,就需要考慮這兩種狀態之間如何切換。操作系統內核工作在覈心態,而用戶程序工作在用戶態。但系統不允許用戶程序實現核心態的功能,而它們又必須使用這些功能。因此,需要在覈心態建立一些“門”,實現從用戶態進入核心態。在實際操作系統中,CPU運行上層程序時唯一能進入這些“門”的途徑就是通過中斷或異常。
當中斷或異常發生時,運行用戶態的CPU會立即進入核心態,這是通過硬件實現的(例如,用一個特殊寄存器的一位來表示CPU所處的工作狀態,0表示核心態,1表示用戶態。若要進入核心態,只需將該位置0即可)。
中斷是操作系統中非常重要的一個概念,對一個運行在計算機上的實用操作系統而言,缺少了中斷機制,將是不可想象的。
中斷(Interruption)
中斷(Interruption),也稱外中斷,指來自CPU執行指令以外的事件的發生,如:
- 設備發出的I/O結束中斷,表示設備輸入/輸出處理已經完成,希望處理機能夠向設備發下一個輸入/輸出請求,同時讓完成輸入/輸出後的程序繼續運行。
- 時鐘中斷,表示一個固定的時間片已到,讓處理機處理計時、啓動定時運行的任務等。
這一類中斷通常是與當前程序運行無關的事件,即它們與當前處理機運行的程序無關。
異常(Exception)
異常(Exception),也稱內中斷、例外或陷入(Trap),指源自CPU執行指令內部的事件,如:
程序的非法操作碼、地址越界、算術溢出、虛存系統的缺頁以及專門的陷入指令等引起的事件。
對異常的處理一般要依賴於當前程序的運行現場,而且異常不能被屏蔽,一旦出現應立即處理。關於內中斷和外中斷的聯繫與區別如圖1-2所示。
圖1-2 內中斷和外中斷的聯繫與區別
Wu_Being博客聲明:本人博客歡迎轉載,請標明博客原文和原鏈接!謝謝!
《中斷和異常的概念》:
http://blog.csdn.net/u014134180/article/details/78418428
如果你看完這篇博文,覺得對你有幫助,並且願意付贊助費,那麼我會更有動力寫下去。