目錄
- 淺談作業系統的用戶態和內核態
- 什么是用戶態和內核態
- 什么是用戶態
- 用戶態的幾個特點
- 什么是內核態
- 內核態的特點?
- 為什么需要有用戶態和內核態
- 作業系統是如何控制不同態的權限的
- 程式應該運行在用戶態還是內核態?
- 用戶態如何切換到內核態?
- 參考資料
- 什么是用戶態和內核態
淺談作業系統的用戶態和內核態
我們經常會聽到程式的用戶態和內核態,一個程式從用戶態進入了內核態,,,
什么是用戶態和內核態
內核態和用戶態到底指的是什么呢?我們這就解開其神秘面紗
所謂的用戶態、內核態,實際上是處理器(cpu)的一種狀態,在 cpu 狀態字里面用 1bit 表示
什么是用戶態
也叫普通態,cpu 訪問資源有限
用戶態的幾個特點
- cpu 訪問資源有限
- 程式可靠性、安全性
要求低 - 程式撰寫維護比較簡單
什么是內核態
也叫特權態,cpu 可以訪問計算機的任何資源
內核態的特點?
- cpu 可以訪問任何資源
- 程式可靠性、安全性
要求高 - 撰寫維護成本比較高
為什么需要有用戶態和內核態
那么,經過上面的解釋,應該都了解了什么是用戶態和內核態,
BUT!有沒有想過,作業系統為什么要搞出用戶態和內核態?
如果都處于一個態下,有什么問題嗎?
想象一下,如果一個國家的所有人都能獲得國家的機密資料、控制國家資源,那這個國家也就離崩潰不遠了,
作業系統也是如此,所以我們要限制不用的程式訪問資源的權限,
作業系統是如何控制不同態的權限的
要控制權限,必須要對程式發出的每一條指令進行檢查,而這種檢查被稱為 地址翻譯,這里不詳細展開,內核態程式通過繞過地址翻譯執行特權指令,從而訪問所有資源,
程式應該運行在用戶態還是內核態?
-
用戶態
- 能運行在用戶態就運行在用戶態
- 涉及用戶資料和應用的操作
-
內核態
- 牽扯到計算機本體的操作
- 對時序要求比較高的操作
用戶態如何切換到內核態?
用戶態程式 陷入 到內核態有 3 種方法:
- 系統呼叫
- 外圍設備中斷
- 例外
具體處理程序:
通過 軟中斷 切換
參考資料
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版》- 鄒恒明
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/119031.html
標籤:Linux
