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

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

淺談操作系統的用戶態和內核態 我們經常會聽到程式的用戶態和內核態,一個程式從用戶態進入了內核態。。。 什麼是用戶態和內核態 內核態和用戶態到底指的是什麼呢?我們這就解開其神秘面紗 所謂的用戶態、內核態,實際上是處理器(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版》- 鄒恆明


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

-Advertisement-
Play Games
更多相關文章
  • 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 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...