操做系統-- 中斷、異常、和系統調用

中斷的來源是外設
異常的來源是不良的程序軟件的非法指令等等
系統調用的來源應用程序主動向操做系統發出的合法服務請求shell

1、中斷

中斷是CPU的一個功能,就是CPU停下當前的工做,保留現場後自動地轉去執行相應的處理程序,CPU控制權發生改變,處理完該中斷緊急事件後再返回斷點繼續執行被剛纔被打斷的程序。安全

中斷過程分爲兩部分
一、硬件:操作系統

依據內部或者外部事件設置中斷標誌,產生中斷號,而後依據中斷向量表調用相應的中斷服務處理例程

二、軟件:code

首先進行現場保存(由編譯器完成),而後進行中斷服務處理(中斷服務例程完成),接着清除中斷標記(中斷服務例程),最後進行現場恢復(編譯器)。

2、異常

在cpu中,當程序執行到特定指令,這條指令觸發了異常事件,好比說除0操做,cpu也會獲得一個異常編號,操做系統會保留當前產生異常的現場
處理異常:
一、殺死產生異常的程序,例如:地址空間越界等非法行爲
二、從新執行異常指令,例如:缺頁指令接口

若是是第二種狀況,操做系統會修補應用程序的代碼問題,而後從新執行異常指令,使異常變正常。事件

3、系統調用

處理過程:上層用戶程序調用printf(),會觸發系統調用write(),write中會帶些參數,好比打印的內容、執行的外設。而後訪問對應的外設,這裏是屏幕,而後打印出這個內容。圖片

注意:這其中會有一個系統調用接口。
在這裏插入圖片描述
經過系統調用,能夠實現從用戶態到內核態的轉變。
用戶態:不能執行訪問IO指令,不能執行特權指令
內核態:至關於掌握了整個計算機。能夠執行任何指令。編譯器

用戶程序和內核擁有各自的堆棧,執行系統調用,會切換堆棧,切換特權身份。這些都是有很大的系統開銷的,但也是有回報的,安全性獲得的保障
在這裏插入圖片描述這些開銷都是值得的,有了這些開銷才能保障程序在一個安全可靠的環境下運行。it

相關文章
相關標籤/搜索