0
CPU可以處於內核模式(完全權限)或用戶模式。內核需要內核模式,而應用程序需要以用戶模式運行。但是,CPU如何一次處於兩種模式?內核/用戶模式下的CPU
CPU可以處於內核模式(完全權限)或用戶模式。內核需要內核模式,而應用程序需要以用戶模式運行。但是,CPU如何一次處於兩種模式?內核/用戶模式下的CPU
處理器通常包括指示處理器在給定時間處於哪種模式的模式標誌;該標誌不一定要做很多。在一個簡單的實現中,該標誌可能只控制處理器是否被允許更改內存映射;處理器將包括簡單切換到用戶模式的指令,以及同時切換到內核模式並跳轉到特定地址的指令。
如果內核在上述地址存儲自己的代碼,然後切換內存映射以使相關地址被寫保護,那麼用戶代碼將能夠請求內核通過將其請求存儲在某處並調用「切換到內核模式並跳轉」指令。然後內核代碼可以啓用它的私有內存區域,檢查由用戶模式代碼存儲的請求,根據請求執行操作,禁用其私有內存區域,切換回用戶模式並返回執行用戶模式代碼。
除了supercat的回答之外,CPU並不是一次處於兩種模式。它要麼正在運行用戶模式代碼,要麼正在運行內核模式代碼(在同一個邏輯核心上)。 – tangrs 2014-09-19 22:41:20
@tangrs:任何給定的執行上下文將只處於一種模式。如果一個CPU可以同時處理句柄執行上下文(例如,使用多個內核或單核上的超線程),那麼CPU的邏輯分離部分可以處於一種模式,而部分處於另一種模式。 – supercat 2014-09-20 18:14:54
supercat&tangrs,謝謝澄清我的主題。 – Mark 2014-09-20 22:07:41