為什麼要有使用者態和核心態?
由於需要限制不同的程式之間的訪問能力, 防止他們獲取別的程式的記憶體資料, 或者獲取外圍裝置的資料, 併發送到網路,cpu劃分出兩個許可權等級– 使用者態和核心態。
核心態:cpu可以訪問記憶體的所有資料,包括外圍裝置,例如硬碟,網絡卡,cpu也可以將自己從乙個程式切換到另乙個程式。
使用者態:只能受限的訪問記憶體,且不允許訪問外圍裝置,占用cpu的能力被剝奪,cpu資源可以被其他程式獲取。
也即,使用者態與核心態是對cpu使用的許可權劃分。目的是防止普通程式錯誤或者惡意的操作cpu與外設。 像我們寫的**,進行一般的運算就是執行在使用者態,當需要進行磁碟讀寫、網路傳輸時,會呼叫核心提供的api,進而進入核心態。
使用者程式主動請求呼叫系統函式時,即當我們**要讀乙個檔案時,會從當前的使用者態轉換到核心態;
使用者程式發生系統異常時,比如使用者程式申請記憶體,把記憶體佔滿了,此時會有使用者態到核心態,去處理對應的異常程式;
外設中斷,當外設處理完任務時,會發生中斷,此時會從核心態轉換到使用者態。比如,檔案讀到記憶體完畢後,會返回使用者程式,進行後面的處理。
核心態與使用者態
核心態與使用者態是作業系統的兩種執行級別,intel cpu提供ring0 ring3三種級別的執行模式。ring0級別最高,ring3最低。其中特權級0 ring0 是留給作業系統 裝置驅動程式 使用的,它們工作於系統核心態 而特權極3 ring3 則給普通的使用者程式使用,它們工作在使用者態。執...
核心態與使用者態
一 unix linux的體系架構 如上圖所示,從巨集觀上來看,linux作業系統的體系架構分為使用者態和核心態 或者使用者空間和核心 核心從本質上看是一種軟體 控制計算機的硬體資源,並提供上層應用程式執行的環境。使用者態即上層應用程式的活動空間,應用程式的執行必須依託於核心提供的資源,包括cpu資...
核心態與使用者態
核心態 cpu可以訪問記憶體的所有資料,包括外圍裝置,例如硬碟,網絡卡,cpu也可以將自己從乙個程式切換到另乙個程式。使用者態 只能受限的訪問記憶體,且不允許訪問外圍裝置,占用cpu的能力被剝奪,cpu資源可以被其他程式獲取。為什麼要有使用者態和核心態?由於需要限制不同的程式之間的訪問能力,防止他們...