使用者態 核心態

2022-01-20 10:50:39 字數 1013 閱讀 7852

前戲

我們知道計算機主要分為三部分,硬體,作業系統和應用程式,然後硬體的頭腦cpu才是控制核心態和使用者態的大佬

作業系統

作業系統是直接和硬體打交道的,作業系統在核心態下執行,從而可以訪問整個硬體

應用程式

應用程式直接和使用者互動,但是應用程式不能直接操作硬體,應用程式在使用者態下執行,但是有時候應用程式也需要操作硬體,這個時候,就涉及到使用者態和核心態的切換

核心態-使用者態概念

核心態(所有指令都給作業系統使用)

當cpu在核心態執行時,cpu可以執行指令集中所有的指令,很明顯,所有的指令中包含了使用硬體的所有功能

使用者態(操作硬體部分的指令禁用)

使用者程式在使用者態下執行,僅僅只能執行cpu整個指令集的乙個子集,該子集中不包含操作硬體功能的部分,因此,一般情況下,在使用者態中有關i/o和記憶體保護(作業系統占用的記憶體是受保護的,不能被別的程式占用),當然,在使用者態下,將psw中的模式設定成核心態也是禁止的。

核心態-使用者態的切換

cpu執行切換

由於核心態和使用者態是非常頻繁的,所以把狀態切換和記錄放在cpu的暫存器,最合適不過

程式狀態暫存器-(系統呼叫-中斷-異常)

使用者態下工作的軟體不能操作硬體,但是我們的軟體比如暴風影音,一定會有操作硬體的需求,比如從磁碟上讀乙個電影檔案,那就必須經歷從使用者態切換到核心態的過程,為此,使用者程式必須使用系統呼叫(system call),系統呼叫陷入核心並呼叫作業系統,trap指令把使用者態切換成核心態,並啟用作業系統從而獲得服務。

注意

使用者態核心態相當於cpu的乙個執行狀態,cpu在不同狀態下能使用的指令不同

檢視liunx全部系統呼叫

man syscalls
參考鏈結

核心態與使用者態

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

核心態和使用者態

在核心態下,cpu可執行任何指令,在使用者態下cpu只能執行非特權指令。當cpu處於核心態,可以隨意進入使用者態 而當cpu處於使用者態,只能通過中斷的方式進入核心態。一般程式一開始都是執行於使用者態,當程式需要使用系統資源時,就必須通過呼叫軟中斷進入核心態。當乙個任務 程序 執行系統呼叫而陷入核心...

核心態和使用者態

複習的時候發現 作業系統 書上竟然沒有找到使用者態和核心態的概念,還納悶了半天以為是自己上課的時候沒有認真聽講.核心態 cpu可以訪問記憶體所有資料,包括外圍裝置,例如硬碟,網絡卡.cpu也可以將自己從乙個程式切換到另乙個程式 使用者態 只能受限的訪問記憶體,且不允許訪問外圍裝置.占用cpu的能力被...