核心態和使用者態

2021-08-03 02:57:13 字數 733 閱讀 4183

複習的時候發現《作業系統》書上竟然沒有找到使用者態和核心態的概念,還納悶了半天以為是自己上課的時候沒有認真聽講...

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

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

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

限制不同程式之間的訪問能力,阻止他們獲取別的程式的記憶體資料,或者獲取外圍裝置的資料併發送到網路

使用者態到核心態的切換方式:

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

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

外圍裝置的中斷:

當外圍裝置完成使用者請求的操作後,會向cpu發出相應的中斷訊號,這時cpu會暫停執行下一條即將要執行的指令轉而去執行與中斷訊號對應的處理程式,如果先前執行的指令是使用者態下的程式,那麼這個轉換的過程自然也就發生了由使用者態到核心態的切換。比如硬碟讀寫操作完成,系統會切換到硬碟讀寫的中斷處理程式中執行後續操作等。

因此某一年的考研題中不能再使用者態發生的事件是:  程序切換。

核心態和使用者態

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

使用者態和核心態

從巨集觀上來看,linux作業系統的體系架構分為使用者態和核心態。核心從本質上看是一種軟體 控制計算機的硬體資源,並提供上層應用程式執行的環境。使用者態即上層應用程式的活動空間,應用程式的執行必須依託於核心提供的資源,包括cpu資源 儲存資源 i o資源等。為了使上層應用能夠訪問到這些資源,核心必須...

核心態和使用者態

核心態 cpu可以訪問記憶體所有資料,包括外圍裝置,例如硬碟,網絡卡.cpu也可以將自己從乙個程式切換到另乙個程式 使用者態 只能受限的訪問記憶體,且不允許訪問外圍裝置.占用cpu的能力被剝奪,cpu資源可以被其他程式獲取 由於需要限制不同的程式之間的訪問能力,防止他們獲取別的程式的記憶體資料,或者...