cpu的兩種工作狀態:核心態(管態)和使用者態(目態)
核心態:
1.系統中既有作業系統的程式,也有普通使用者程式。為了安全性和穩定性,作業系統的程式不能隨便訪問,這就是核心態。即需要執行作業系統程式就必須轉換到核心態才能執行。
2.核心態可以使用計算機所有的硬體資源。
使用者態:不能直接使用系統資源,也不能改變cpu的工作狀態,並且只能訪問這個使用者程式自己的儲存空間。
三種從「使用者態」轉換到「核心態」的最主要(觸發)方式:
a.系統呼叫(使用者程序主動發起的):這是使用者態程序「主動」要求切換到核心態的一種方式,使用者態程序通過「系統呼叫」身子那個使用作業系統提供的服務城區完成工作。
b.異常:當cpu執行執行在使用者態下的程式時,發生了某些不可知的異常,這是會觸發當前執行程序切換到處理此異常的核心程式中,也就轉到了核心態,比如缺頁異常。
c.外圍裝置的中斷:當外圍裝置完成使用者請求操作後,會向cpu發出相應的中斷訊號,這是cpu會暫停執行下一條即將要執行的指令轉而去執行與中斷訊號對應的處理程式,如果先前執行的指令時使用者態的程式,那麼這個轉換也就發生了從使用者態到核心態的切換。比如硬碟讀寫操作完成,系統會切換到硬碟讀寫的中斷處理程式中執行後續操作等。
以上三種觸發方式,本質上的切換操作時一致的,沒有任何區別,都是相當於執行了乙個中斷響應的過程。因為系統呼叫實際上最終也是「中斷機制」實現的,而異常和中斷的處理機制基本上也是一致的。
核心態和使用者態
在核心態下,cpu可執行任何指令,在使用者態下cpu只能執行非特權指令。當cpu處於核心態,可以隨意進入使用者態 而當cpu處於使用者態,只能通過中斷的方式進入核心態。一般程式一開始都是執行於使用者態,當程式需要使用系統資源時,就必須通過呼叫軟中斷進入核心態。當乙個任務 程序 執行系統呼叫而陷入核心...
核心態和使用者態
複習的時候發現 作業系統 書上竟然沒有找到使用者態和核心態的概念,還納悶了半天以為是自己上課的時候沒有認真聽講.核心態 cpu可以訪問記憶體所有資料,包括外圍裝置,例如硬碟,網絡卡.cpu也可以將自己從乙個程式切換到另乙個程式 使用者態 只能受限的訪問記憶體,且不允許訪問外圍裝置.占用cpu的能力被...
使用者態和核心態
從巨集觀上來看,linux作業系統的體系架構分為使用者態和核心態。核心從本質上看是一種軟體 控制計算機的硬體資源,並提供上層應用程式執行的環境。使用者態即上層應用程式的活動空間,應用程式的執行必須依託於核心提供的資源,包括cpu資源 儲存資源 i o資源等。為了使上層應用能夠訪問到這些資源,核心必須...