精華區beta CSSE 關於我們 聯絡資訊
※ 引述《H45 (!H45)》之銘言: : ※ 引述《capslook1218 (大寫鎖)》之銘言: : : 在dual-mode operation : : 分別為kernel mode(別稱monitor mode , spuervisor mode,system mode)和user mode : : 在kernel mode中 有一個東西叫做privileged instruction(特權指令) : : 在這些指令中有一條指令 我看不太懂 : : 為啥change mode from user mode to monitor mode是privileged instruction : : privileged instruction有一個限制是 只能在kernel mode中執行 : : 可是這條指令明顯違反了這項規則阿>_< : 只回上面三行 (我的 OS 沒有拿超過 90 分,若有謬誤煩請不吝指正) : (○) priviledged instruction 只能在 kernel mode 執行 : (○) change mode from user mode to monitor mode 是 privileged instruction : 而您的問題是這兩個敘述是否矛盾,是嗎? : 單就這個問題來看,我認為沒有矛盾 : change mode from user mode to monitor mode 確實是在 kernel mode 執行 : 如果在 user mode 執行的話,因為權限不足,所以系統理應拒絕執行。 ========= privileged instruction 指的是要取得管理者權限的程式才能讓該指令 的執行產生效果. 機器進入這種有效執行特權的狀態就是 supervisor mode . 從 user mode 要切換為 supervisor mode 時, 就必須對執行者的身份進行特 定的核驗與放行, 這個核驗當然是個在特殊空間的特定程式. 確保到達此特定 位置並確實執行此完整動作的方法就是透過 trap/interrupt . interrupt 被執行時, processor 會從 enable interrupt 狀態切換為 disable interrupt , 而 disable interrupt 這個指令本身就是 privileged instruction . 換言之, interrupt/trap 執行後就到達 kernel space 的入 口被檢查. 不具特權身份的程式碰到需有特權才能有效執行的特權指令時, 究竟是把 該指令無效跳過, 還是造成 exception trap 就視 processor 的設計而定. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.4.12
rexrainbow:推~ 07/29 13:50
lungswu:管理者權限..... 這說法有很大問題吧...? 07/31 10:04
ggg12345:特權就是指管理者最高權限,user想要做特權指令的動作時, 08/01 22:36
ggg12345:無法逕自執行,必須由os kernel代為處理,system call傳遞 08/01 22:38
ggg12345:這些請求,利用trap/interrupt同時切換mode進入特定入口點 08/01 22:42
ggg12345:具有管理者權限的kernel program再針對呼叫的user請求,決 08/01 22:44
ggg12345:定要如何處理.kernel程式具管理者權限,若決定執行特權指 08/01 22:49
ggg12345:令,其逕自執行的結果是生效的.supervisor就是管理者之意. 08/01 22:52
lungswu:管理者 是否指的是OS中的 管理者帳號? 08/07 11:55