輕鬆理解核心態與使用者態

2021-10-23 16:36:37 字數 753 閱讀 1326

首先強調一下:核心態與使用者態指的是cpu的狀態

使用者態:只能受限的訪問記憶體、執行操作,是作業系統為了安全的管理計算機系統正常執行。

核心態:可以訪問所有的系統資源(磁碟,印表機等),不受任何限制。

cpu為什麼要在二者狀態之間切換呢?cpu正在執行應用程序的指令,此時如果應用程序需要進行自身並不具備的權利的一些操作(io操作、印表機列印等),那是不是就要切換為更高權利的核心態來執行這些操作,因此由使用者態切換到核心態一般有一下三種情況:

系統呼叫,使用者程序需要讀寫磁碟,此時cpu會切換為核心態去執行讀寫磁碟的操作。

內部異常,比如程式中除0操作導致程式丟擲異常,此時cpu就會轉為核心態去處理異常。

外部中斷,比如使用者程序a需要列印或者讀寫磁碟,此時cpu會轉為核心態去處理列印或讀寫磁碟操作,由於cpu的速度遠遠高於外設,因此cpu執行完指令後,外設開始工作,此時cpu會轉換為使用者態去執行程序b,當列印操作完成後,印表機會給cpu乙個通知(中斷指令),此時cpu會切換為核心態去處理這個通知,然後切換到使用者態去執行程序b,而程序a進入就緒態。

其中情況1,2都是程序自身引發的,情況3是由外部引發的

核心態切換到使用者態:

切換情況:一般是處理完底層操作指令後切換為使用者態,可以理解為,除非有必要,否則都處於使用者態(安全)

切換操作:通過執行乙個特權指令,將程式狀態字psw的標識為設定為使用者態。

如何理解使用者態與核心態

在cpu的所有指令中,有一些指令是非常危險的,如果錯用,將導致整個系統崩潰。比如 清記憶體 設定時鐘等。如果所有的程式都能使用這些指令,那麼你的系統一天宕機n回就不足為奇了。所以,cpu將指令分為特權指令和非特權指令,對於那些危險的指令,只允許作業系統及其相關模組使用,普通的應用程式只能使用那些不會...

核心態與使用者態

核心態與使用者態是作業系統的兩種執行級別,intel cpu提供ring0 ring3三種級別的執行模式。ring0級別最高,ring3最低。其中特權級0 ring0 是留給作業系統 裝置驅動程式 使用的,它們工作於系統核心態 而特權極3 ring3 則給普通的使用者程式使用,它們工作在使用者態。執...

核心態與使用者態

一 unix linux的體系架構 如上圖所示,從巨集觀上來看,linux作業系統的體系架構分為使用者態和核心態 或者使用者空間和核心 核心從本質上看是一種軟體 控制計算機的硬體資源,並提供上層應用程式執行的環境。使用者態即上層應用程式的活動空間,應用程式的執行必須依託於核心提供的資源,包括cpu資...