淺談操作系統的用戶態和內核態

来源:https://www.cnblogs.com/wudanyang/archive/2020/03/25/12570344.html

淺談操作系統的用戶態和內核態 我們經常會聽到程式的用戶態和內核態,一個程式從用戶態進入了內核態。。。 什麼是用戶態和內核態 內核態和用戶態到底指的是什麼呢?我們這就解開其神秘面紗 所謂的用戶態、內核態,實際上是處理器(cpu)的一種狀態,在 cpu 狀態字裡面用 1bit 表示 什麼是用戶態 也叫普 ...


淺談操作系統的用戶態和內核態

我們經常會聽到程式的用戶態和內核態,一個程式從用戶態進入了內核態。。。

什麼是用戶態和內核態

內核態和用戶態到底指的是什麼呢?我們這就解開其神秘面紗

所謂的用戶態、內核態,實際上是處理器(cpu)的一種狀態,在 cpu 狀態字裡面用 1bit 表示

什麼是用戶態

也叫普通態,cpu 訪問資源有限

用戶態的幾個特點

  1. cpu 訪問資源有限
  2. 程式可靠性、安全性要求低
  3. 程式編寫維護比較簡單

什麼是內核態

也叫特權態,cpu 可以訪問電腦的任何資源

內核態的特點?

  1. cpu 可以訪問任何資源
  2. 程式可靠性、安全性要求高
  3. 編寫維護成本比較高

為什麼需要有用戶態和內核態

那麼,經過上面的解釋,應該都瞭解了什麼是用戶態和內核態。

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版》- 鄒恆明


您的分享是我們最大的動力!

更多相關文章
  • String的常見方法 String 變數的聲明方式 C 中字元串常見的聲明有兩種: 1. 直接使用字面值 即 2. 使用構造器,即 string 的特點 (字元串)在大多數開發語言中屬於不可變數,任何針對String的修改都會生成一個新的字元串。為什麼會如此呢,究其原因是String在記憶體中以類似 ...
  • 在微信開發H5頁面的時候,往往藉助於Weui或者Jquery Weui等基礎上進行界面效果的開發,由於本人喜歡在Asp.net的Web界面上使用JQuery,因此比較傾向於使用 jQuery WeUI,本篇隨筆結合官方案例和自己的項目實際開發過程的經驗總結,對在H5頁面開發過程中設計到的界面控制項進行... ...
  • 一、asp.net mvc 通用許可權管理系統(響應佈局)源碼主要以下特點: AngelRM(Asp.net MVC)是基於asp.net(C#)MVC+前端bootstrap+ztree+lodash+jquery技術,採用bootstrap為前臺開發展示UI,Web Api主要負責前端的邏輯交互, ...
  • 內托管模式超時 不允許請求謂詞、直接請求無響應、拒絕服務405 Net Core IIS 部署 進程內托管 ...
  • 昨天做個簡單的演示,想偷懶,但同時又想用WPF再做一個,稍微提高一下演示的美觀,助力拿下訂單。所以,在做完WinForm後,又做了一個wpf版本的,但控制項在不同容器之間的移動,winform和wpf差別很大,winform很簡單、直觀。但wpf就很坑了。 於是昨天下午網上搜了一些“答案”,都不能解決 ...
  • 常用網路命令write指令名稱:write指令所在路徑:/usr/bin/write執行許可權:所有用戶語法:write 功能描述:給用戶發信息,以Ctrl+D保存結束wall指令名稱:wall命令英文原意:write all指令所在路徑:/usr/bin/wall執行許可權:所有用戶語法:wall [... ...
  • 一、xShell6、xFtp6 安裝 1、下載 (1)目的: xShell6 是一款強大的安全終端軟體,可以用於登陸、操作遠程的 Linux 伺服器。 xFtp6 用於上傳文件到伺服器,從伺服器下載文件。 (2)下載地址: https://www.netsarang.com/zh/xshell-do ...
  • npm config set registry https://registry.npm.taobao.org npm config set disturl https://npm.taobao.org/dist npm -g install typescript ...
一周排行
  • 比如要拆分“呵呵呵90909086676喝喝999”,下麵當type=0返回的是中文字元串“呵呵呵,喝喝”,type=1返回的是數字字元串“90909086676,999”, private string GetStrings(string str,int type=0) { IList<strin ...
  • Swagger一個優秀的Api介面文檔生成工具。Swagger可以可以動態生成Api介面文檔,有效的降低前後端人員關於Api介面的溝通成本,促進項目高效開發。 1、使用NuGet安裝最新的包:Swashbuckle.AspNetCore。 2、編輯項目文件(NetCoreTemplate.Web.c ...
  • 2020 年 7 月 30 日, 由.NET基金會和微軟 將舉辦一個線上和為期一天的活動,包括 微軟 .NET 團隊的演講者以及社區的演講者。本次線上大會 專註.NET框架構建微服務,演講者分享構建和部署雲原生應用程式的最佳實踐、模式、提示和技巧。有關更多信息和隨時瞭解情況:https://focu... ...
  • #abp框架Excel導出——基於vue #1.技術棧 ##1.1 前端採用vue,官方提供 UI套件用的是iview ##1.2 後臺是abp——aspnetboilerplate 即abp v1,https://github.com/aspnetboilerplate/aspnetboilerp ...
  • 前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:碧茂大數據 PS:如有需要Python學習資料的小伙伴可以加下方的群去找免費管理員領取 input()輸入 Python提供了 input() 內置函數從標準輸入讀入一 ...
  • 從12年到20年,python以肉眼可見的趨勢超過了java,成為了當今It界人人皆知的編程語言。 python為什麼這麼火? 網路編程語言搜索指數 適合初學者 Python具有語法簡單、語句清晰的特點,這就讓初學者在學習階段可以把精力集中在編程對象和思維方法上。 大佬都在用 Google,YouT ...
  • 在社會上存在一種普遍的對培訓機構的學生一種歧視的現象,具體表現在,比如:當你去公司面試的時候,一旦你說了你是培訓機構出來的,那麼基本上你就涼了,那麼你瞞著不說,然後又通過了面試成功入職,但是以後一旦在公司被髮現有培訓經歷,可能會面臨被降薪,甚至被辭退,培訓機構出來的學生,在用人單位眼裡就是能力低下的 ...
  • from typing import List# 這道題看了大佬寫的代碼,經過自己的理解寫出來了。# 從最外圍的四周找有沒有為O的,如果有的話就進入深搜函數,然後深搜遍歷# 判斷上下左右的位置是否為Oclass Solution: def solve(self, board: List[List[s ...
  • import requests; import re; import os; # 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, li ...
  • import requests; import re; import os; import parsel; 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537. ...