作者ggg12345 (ggg)
看板CSSE
標題Re: [問題] DUAL MODE
時間Mon Jul 14 09:41:27 2008
※ 引述《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
1F:推 rexrainbow:推~ 07/29 13:50
2F:→ lungswu:管理者權限..... 這說法有很大問題吧...? 07/31 10:04
3F:→ ggg12345:特權就是指管理者最高權限,user想要做特權指令的動作時, 08/01 22:36
4F:→ ggg12345:無法逕自執行,必須由os kernel代為處理,system call傳遞 08/01 22:38
5F:→ ggg12345:這些請求,利用trap/interrupt同時切換mode進入特定入口點 08/01 22:42
6F:→ ggg12345:具有管理者權限的kernel program再針對呼叫的user請求,決 08/01 22:44
7F:→ ggg12345:定要如何處理.kernel程式具管理者權限,若決定執行特權指 08/01 22:49
8F:→ ggg12345:令,其逕自執行的結果是生效的.supervisor就是管理者之意. 08/01 22:52
9F:→ lungswu:管理者 是否指的是OS中的 管理者帳號? 08/07 11:55