作業系統使用者態和核心態

2021-09-02 21:31:50 字數 781 閱讀 7341

核心態: cpu可以訪問記憶體所有資料, 包括外圍裝置, 例如硬碟, 網絡卡. cpu也可以將自己從乙個程式切換到另乙個程式

使用者態: 只能受限的訪問記憶體, 且不允許訪問外圍裝置. 占用cpu的能力被剝奪, cpu資源可以被其他程式獲取

為什麼要有使用者態和核心態

由於需要限制不同的程式之間的訪問能力, 防止他們獲取別的程式的記憶體資料, 或者獲取外圍裝置的資料, 併發送到網路, cpu劃分出兩個許可權等級 -- 使用者態 和 核心態

使用者態與核心態的切換

所有使用者程式都是執行在使用者態的, 但是有時候程式確實需要做一些核心態的事情, 例如從硬碟讀取資料, 或者從鍵盤獲取輸入等. 而唯一可以做這些事情的就是作業系統, 所以此時程式就需要先作業系統請求以程式的名義來執行這些操作.

這時需要乙個這樣的機制: 使用者態程式切換到核心態, 但是不能控制在核心態中執行的指令

這種機制叫系統呼叫, 在cpu中的實現稱之為陷阱指令(trap instruction)

他們的工作流程如下:

使用者態程式將一些資料值放在暫存器中, 或者使用引數建立乙個堆疊(stack frame), 以此表明需要作業系統提供的服務.

使用者態程式執行陷阱指令

cpu切換到核心態, 並跳到位於記憶體指定位置的指令, 這些指令是作業系統的一部分, 他們具有記憶體保護, 不可被使用者態程式訪問

這些指令稱之為陷阱(trap)或者系統呼叫處理器(system call handler). 他們會讀取程式放入記憶體的資料引數, 並執行程式請求的服務

系統呼叫完成後, 作業系統會重置cpu為使用者態並返回系統呼叫的結果

作業系統 使用者態和核心態

3g 4g大部分是共享的,是核心態的位址空間。這裡存放整個核心的 和所有的核心模組以及核心所維護的資料。2 特權級的概念 對於任何作業系統來說,建立乙個程序是核心功能。建立程序要做很多任務作,會消耗很多物理資源。比如分配物理記憶體,父子程序拷貝資訊,拷貝設定頁目錄頁表等等,這些工作得由特定的程序去做...

作業系統 核心態和使用者態

核心態和使用者態 核心態和使用者態 核心態 當乙個任務 程序 執行系統呼叫而陷入核心 中執行時,我們就稱程序處於核心執行態 或簡稱為核心態 其他的屬於使用者態。使用者程式執行在使用者態,作業系統執行在核心態.作業系統核心執行在核心態,而伺服器執行在使用者態 使用者態不能干擾核心態.所以cpu指令就有...

作業系統系列 核心態和使用者態

核心態和使用者態 為了保護作業系統及其資料結構,處理機的執行狀態分成兩種模式。作業系統執行於核心態,具有較高的特權,能執行一切命令,訪問所有暫存器和儲存區。使用者程式執行於使用者態,具有較低特權,只能執行規定的命令,訪問指定的暫存器和儲存區。指令的劃分 特權指令 只能由作業系統使用 使用者程式不能使...