淺談操作系統的用戶態和內核態 我們經常會聽到程式的用戶態和內核態,一個程式從用戶態進入了內核態。。。 什麼是用戶態和內核態 內核態和用戶態到底指的是什麼呢?我們這就解開其神秘面紗 所謂的用戶態、內核態,實際上是處理器(cpu)的一種狀態,在 cpu 狀態字裡面用 1bit 表示 什麼是用戶態 也叫普 ...
淺談操作系統的用戶態和內核態
我們經常會聽到程式的用戶態和內核態,一個程式從用戶態進入了內核態。。。
什麼是用戶態和內核態
內核態和用戶態到底指的是什麼呢?我們這就解開其神秘面紗
所謂的用戶態、內核態,實際上是處理器(cpu)的一種狀態,在 cpu 狀態字裡面用 1bit 表示
什麼是用戶態
也叫普通態,cpu 訪問資源有限
用戶態的幾個特點
- cpu 訪問資源有限
- 程式可靠性、安全性
要求低
- 程式編寫維護比較簡單
什麼是內核態
也叫特權態,cpu 可以訪問電腦的任何資源
內核態的特點?
- cpu 可以訪問任何資源
- 程式可靠性、安全性
要求高
- 編寫維護成本比較高
為什麼需要有用戶態和內核態
那麼,經過上面的解釋,應該都瞭解了什麼是用戶態和內核態。
BUT!有沒有想過,操作系統為什麼要搞出用戶態和內核態?
如果都處於一個態下,有什麼問題嗎?
想象一下,如果一個國家的所有人都能獲得國家的機密資料、控制國家資源,那這個國家也就離崩潰不遠了。
操作系統也是如此,所以我們要限制不用的程式訪問資源的許可權。
操作系統是如何控制不同態的許可權的
要控制許可權,必須要對程式發出的每一條指令進行檢查。而這種檢查被稱為 地址翻譯
,這裡不詳細展開。內核態程式通過繞過
地址翻譯執行特權指令,從而訪問所有資源。
程式應該運行在用戶態還是內核態?
-
用戶態
- 能運行在用戶態就運行在用戶態
- 涉及用戶數據和應用的操作
-
內核態
- 牽扯到電腦本體的操作
- 對時序要求比較高的操作
用戶態和內核態是如何切換的?
通過 軟中斷
參考資料
https://blog.csdn.net/ddna/article/details/4941373 用戶態和內核態是如何切換,比較底層
https://blog.csdn.net/shanghx_123/article/details/83151064 用戶態和內核態是如何切換
https://www.cnblogs.com/Sargreis/p/6874866.html 用戶態和內核態是如何切換,講的比較通俗
《操作系統之哲學原理第2版》- 鄒恆明