中斷、異常和系統調用的關系
1.中斷的概念
中斷是CPU的一個功能,就是CPU停下當前的工作,保留現場后自動地轉去執行相應的處理程序,CPU控制權發生改變,、
處理完該事件后再返回斷點繼續執行被剛才被打斷的程序。
2.中斷的分類
2.1分為軟中斷和硬中斷
軟中斷:
a.編程異常通常叫做軟中斷
b.軟中斷是通訊進程之間用來模擬硬中斷的 一種信號通訊方式。
c.中斷源發中斷請求或軟中斷信號后,CPU或接收進程在適當的時機自動進行中斷處理或完成軟中斷信號對應的功能
d.軟中斷是軟件實現的中斷,也就是程序運行時其他程序對它的中斷;而硬中斷是硬件實現的中斷,是程序運行時設備對它的中斷。
硬中斷:
a.硬中斷是由外部事件引起的因此具有隨機性和突發性;軟中斷是執行中斷指令產生的,無面外部施加中斷請求信號,因此
中斷的發生不是隨機的而是由程序安排好的。
b.硬中斷的中斷響應周期,CPU需要發中斷回合信號(NMI不需要),軟中斷的中斷響應周期,CPU不需發中斷回合信號。
c.硬中斷的中斷號是由中斷控制器提供的(NMI硬中斷中斷號系統指定為02H);軟中斷的中斷號由指令直接給出,無需使用中斷控制器。
d.硬中斷是可屏蔽的(NMI硬中斷不可屏蔽),軟中斷不可屏蔽。
區別:
a.軟中斷發生的時間是由程序控制的,而硬中斷發生的時間是隨機的
b.軟中斷是由程序調用發生的,而硬中斷是由外設引發的
c.硬件中斷處理程序要確保它能快速地完成它的任務,這樣程序執行時才不會等待較長時間
參考資料:軟中斷vs硬中斷
2.2可屏蔽中斷和不可屏蔽中斷
2.3中斷可分為三類:
第一類是由CPU外部引起的,稱作中斷,如I/O中斷、時鍾中斷、控制台中斷等。
第二類是來自CPU的內部事件或程序執行中的事件引起的 過程,稱作異常,如由於CPU本身故障(電源電壓低於105V或頻率在47~63Hz之外)、
程序故障(非法操作碼、地址越界、浮點溢出等)等引起的過程。
第三類由於在程序中使用了請求系統服務的系統調用而引發的過程,稱作“陷入”(trap,或者陷阱)。前兩類通常都稱作中斷,它們的產生往往是無意、
被動的,而陷入是有意和主動的。
第一類(中斷)+第二類(異常)= 中斷
第三類(系統調用)= 系統調用
參考資料:中斷、異常和系統調用