核心態和使用者態
核心態和使用者態
核心態:當乙個任務(程序)執行系統呼叫而陷入核心**中執行時,我們就稱程序處於核心執行態(或簡稱為核心態)。其他的屬於使用者態。使用者程式執行在使用者態,作業系統執行在核心態.(作業系統核心執行在核心態,而伺服器執行在使用者態)。使用者態不能干擾核心態.所以cpu指令就有兩種,特權指令和非特權指令.不同的狀態對應不同的指令。特權指令:只能由作業系統核心部分使用,不允許使用者直接使用的指令。如,i/o指令、置終端遮蔽指令、清記憶體、建儲存保護、設定時鐘指令(這幾種記好,屬於核心態)。 非特權指令:所有程式均可直接使用。
所以:系統態(核心態、特態、管態):執行全部指令。
使用者態(常態、目態):執行非特權指令。
使用者態和核心態的轉換
1)使用者態切換到核心態的3種方式
a. 系統呼叫
這是使用者態程序主動要求切換到核心態的一種方式,使用者態程序通過系統呼叫申請使用作業系統提供的服務程式完成工作,比如前例中fork()實際上就是執行了乙個建立新程序的系統呼叫。而系統呼叫的機制其核心還是使用了作業系統為使用者特別開放的乙個中斷來實現,例如linux的int 80h中斷。
b. 異常
當cpu在執行執行在使用者態下的程式時,發生了某些事先不可知的異常,這時會觸發由當前執行程序切換到處理此異常的核心相關程式中,也就轉到了核心態,比如缺頁異常。
c. 外圍裝置的中斷
當外圍裝置完成使用者請求的操作後,會向cpu發出相應的中斷訊號,這時cpu會暫停執行下一條即將要執行的指令轉而去執行與中斷訊號對應的處理程式,如果先前執行的指令是使用者態下的程式,那麼這個轉換的過程自然也就發生了由使用者態到核心態的切換。比如硬碟讀寫操作完成,系統會切換到硬碟讀寫的中斷處理程式中執行後續操作等。
四、常見的核心態常見總結:
前文已經提到,核心的功能:
(1)程序(執行緒)管理 (程序或者執行緒的排程)
(2)低階儲存器管理 (使用者程式邏輯空間到記憶體空間的實體地址的變換)
(3)中斷和陷入管理 (中斷和陷入)
具體的:
(1) i/o指令、置終端遮蔽指令、清記憶體、建儲存保護、設定時鐘指令。
(2) 中斷、異常、陷入,比如缺頁中斷等
(3)程序(執行緒)管理
(4)系統呼叫,比如呼叫了裝置驅動程式
(5)使用者記憶體位址的轉換(邏輯—> 物理對映)
作業系統使用者態和核心態
核心態 cpu可以訪問記憶體所有資料,包括外圍裝置,例如硬碟,網絡卡.cpu也可以將自己從乙個程式切換到另乙個程式 使用者態 只能受限的訪問記憶體,且不允許訪問外圍裝置.占用cpu的能力被剝奪,cpu資源可以被其他程式獲取 為什麼要有使用者態和核心態 由於需要限制不同的程式之間的訪問能力,防止他們獲...
作業系統 使用者態和核心態
3g 4g大部分是共享的,是核心態的位址空間。這裡存放整個核心的 和所有的核心模組以及核心所維護的資料。2 特權級的概念 對於任何作業系統來說,建立乙個程序是核心功能。建立程序要做很多任務作,會消耗很多物理資源。比如分配物理記憶體,父子程序拷貝資訊,拷貝設定頁目錄頁表等等,這些工作得由特定的程序去做...
作業系統系列 核心態和使用者態
核心態和使用者態 為了保護作業系統及其資料結構,處理機的執行狀態分成兩種模式。作業系統執行於核心態,具有較高的特權,能執行一切命令,訪問所有暫存器和儲存區。使用者程式執行於使用者態,具有較低特權,只能執行規定的命令,訪問指定的暫存器和儲存區。指令的劃分 特權指令 只能由作業系統使用 使用者程式不能使...