cpu核心態與使用者態

2022-09-07 11:57:09 字數 2081 閱讀 5377

核心態(kernel mode):執行作業系統程式,操作硬體

使用者態(user mode):執行使用者程式

特權指令:只能由作業系統使用、使用者程式不能使用的指令。 舉例:啟動i/o 記憶體清零 修改程式狀態字 設定時鐘 允許/禁止終端 停機

非特權指令:使用者程式可以使用的指令。 舉例:控制轉移 算數運算 取數指令訪管指令(使使用者程式從使用者態陷入核心態)

特權環:r0、r1、r2和r3

r0相當於核心態,r3相當於使用者態;

不同級別能夠執行不同的指令集合;

使用者態--->核心態:唯一途徑是通過中斷、異常、陷入機制(訪管指令)

核心態--->使用者態:設定程式狀態字psw

這是使用者態程序主動要求切換到核心態的一種方式使用者態程序通過系統呼叫申請使用作業系統提供的服務程式完成工作。比如前例中fork()實際上就是執行了乙個建立新程序的系統呼叫。

而系統呼叫的機制其核心還是使用了作業系統為使用者特別開放的乙個中斷來實現,例如linux的int 80h中斷。

使用者程式通常呼叫庫函式,由庫函式再呼叫系統呼叫,因此有的庫函式會使使用者程式進入核心態(只要庫函式中某處呼叫了系統呼叫),有的則不會。

當cpu在執行執行在使用者態下的程式時,發生了某些事先不可知的異常,這時會觸發由當前執行程序切換到處理此異常的核心相關程式中,也就轉到了核心態,比如缺頁異常。

當外圍裝置完成使用者請求的操作後,會向cpu發出相應的中斷訊號,這時cpu會暫停執行下一條即將要執行的指令轉而去執行與中斷訊號對應的處理程式,

如果先前執行的指令是使用者態下的程式,那麼這個轉換的過程自然也就發生了由使用者態到核心態的切換。比如硬碟讀寫操作完成,系統會切換到硬碟讀寫的中斷處理程式中執行後續操作等。

這3種方式是系統在執行時由使用者態轉到核心態的最主要方式,其中系統呼叫可以認為是使用者程序主動發起的,異常和外圍裝置中斷則是被動的。

核心態(kernel mode):執行作業系統程式,操作硬體

使用者態(user mode):執行使用者程式

特權指令:只能由作業系統使用、使用者程式不能使用的指令。 舉例:啟動i/o 記憶體清零 修改程式狀態字 設定時鐘 允許/禁止終端 停機

非特權指令:使用者程式可以使用的指令。 舉例:控制轉移 算數運算 取數指令訪管指令(使使用者程式從使用者態陷入核心態)

特權環:r0、r1、r2和r3

r0相當於核心態,r3相當於使用者態;

不同級別能夠執行不同的指令集合;

使用者態--->核心態:唯一途徑是通過中斷、異常、陷入機制(訪管指令)

核心態--->使用者態:設定程式狀態字psw

這是使用者態程序主動要求切換到核心態的一種方式使用者態程序通過系統呼叫申請使用作業系統提供的服務程式完成工作。比如前例中fork()實際上就是執行了乙個建立新程序的系統呼叫。

而系統呼叫的機制其核心還是使用了作業系統為使用者特別開放的乙個中斷來實現,例如linux的int 80h中斷。

使用者程式通常呼叫庫函式,由庫函式再呼叫系統呼叫,因此有的庫函式會使使用者程式進入核心態(只要庫函式中某處呼叫了系統呼叫),有的則不會。

當cpu在執行執行在使用者態下的程式時,發生了某些事先不可知的異常,這時會觸發由當前執行程序切換到處理此異常的核心相關程式中,也就轉到了核心態,比如缺頁異常。

當外圍裝置完成使用者請求的操作後,會向cpu發出相應的中斷訊號,這時cpu會暫停執行下一條即將要執行的指令轉而去執行與中斷訊號對應的處理程式,

如果先前執行的指令是使用者態下的程式,那麼這個轉換的過程自然也就發生了由使用者態到核心態的切換。比如硬碟讀寫操作完成,系統會切換到硬碟讀寫的中斷處理程式中執行後續操作等。

這3種方式是系統在執行時由使用者態轉到核心態的最主要方式,其中系統呼叫可以認為是使用者程序主動發起的,異常和外圍裝置中斷則是被動的。

CPU使用者態 核心態和空閒態

執行top命令時,出現一堆結果不知道什麼意思,於是一通查詢,大概搞明白了輸出結果的含義,其中比較重要的幾個引數是 us user state 使用者態資訊 sy system state核心態資訊 id 空閒狀態 關於使用者態和核心態是個啥,用一張圖一目了然 cpu處理任務表面上看似是並行工作,實際...

核心態與使用者態

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

核心態與使用者態

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