Re: [問題] DUAL MODE

看板CSSE (電腦科學及軟體工程)作者 (ggg)時間16年前 (2008/07/14 09:41), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串3/3 (看更多)
※ 引述《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

07/29 13:50, , 1F
推~
07/29 13:50, 1F

07/31 10:04, , 2F
管理者權限..... 這說法有很大問題吧...?
07/31 10:04, 2F

08/01 22:36, , 3F
特權就是指管理者最高權限,user想要做特權指令的動作時,
08/01 22:36, 3F

08/01 22:38, , 4F
無法逕自執行,必須由os kernel代為處理,system call傳遞
08/01 22:38, 4F

08/01 22:42, , 5F
這些請求,利用trap/interrupt同時切換mode進入特定入口點
08/01 22:42, 5F

08/01 22:44, , 6F
具有管理者權限的kernel program再針對呼叫的user請求,決
08/01 22:44, 6F

08/01 22:49, , 7F
定要如何處理.kernel程式具管理者權限,若決定執行特權指
08/01 22:49, 7F

08/01 22:52, , 8F
令,其逕自執行的結果是生效的.supervisor就是管理者之意.
08/01 22:52, 8F

08/07 11:55, , 9F
管理者 是否指的是OS中的 管理者帳號?
08/07 11:55, 9F
文章代碼(AID): #18Ugx8No (CSSE)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
1
5
1
9
文章代碼(AID): #18Ugx8No (CSSE)