[理工] OS priviledged instruction 請教消失
如題
想請問 "switch to kernel model" 此指令 是否為priviledged instruction
我記得洪兔上課說是,但原文課本給的解答說不是
( 補充 8,9 版課本解答都給不是 上網查有人說是課本錯 有人說是課本對 )
我自己的想法如下
1.如果是 priviledged instruction
那如果在user mode 就永遠無法變成kernel mode
因為你必須要先在 kernel mode才能執行 priviledged instruction
2. 如果不是 priviledged instruction
那user program 不需在kernel mode 就可以執行此指令
則kernel mode 形同虛設,
因為user program可以直接執行此指令,等同讓
user program 擁有了kernel的權力
怎麼想都覺得怪怪的
請教各位大大正確的觀念為何
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.233.159.57
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1509947585.A.F34.html
※ 編輯: can18 (118.233.159.57), 11/06/2017 13:55:57
推
11/06 14:22, , 1F
11/06 14:22, 1F
你是指洪逸錯還是原文錯
→
11/06 14:59, , 2F
11/06 14:59, 2F
→
11/06 15:04, , 3F
11/06 15:04, 3F
嗯嗯我知道 但想請問我第一個的想法錯在哪呢
※ 編輯: can18 (118.233.159.57), 11/06/2017 15:05:38
→
11/06 15:09, , 4F
11/06 15:09, 4F
→
11/06 15:09, , 5F
11/06 15:09, 5F
→
11/06 15:09, , 6F
11/06 15:09, 6F
最後那邊有點不太懂
所以switch to kernel mode 是特權指令嗎
※ 編輯: can18 (118.233.159.57), 11/06/2017 15:15:37
→
11/06 15:15, , 7F
11/06 15:15, 7F
→
11/06 15:15, , 8F
11/06 15:15, 8F
想請問 特權指令的定義不是只能在 kernel mode 執行嗎
但現在想要執行 switch to kernel mode 時還是 user mode
照理說應該是不能執行才對? (若它為特權指令)
※ 編輯: can18 (118.233.159.57), 11/06/2017 15:18:00
→
11/06 15:27, , 9F
11/06 15:27, 9F
→
11/06 15:27, , 10F
11/06 15:27, 10F
→
11/06 15:27, , 11F
11/06 15:27, 11F
→
11/06 15:27, , 12F
11/06 15:27, 12F
→
11/06 15:29, , 13F
11/06 15:29, 13F
→
11/06 15:32, , 14F
11/06 15:32, 14F
→
11/06 15:32, , 15F
11/06 15:32, 15F
我換個說法好了 priviledged instruction 只能在 mode bit = 0時能被執行,
若 switch to kernel mode 此行為的指令是 priviledged instruction
那如果現在處在 user mode , mode bit = 1
想要變成kernel mode, 於是執行 switch to kernel mode 此行為的指令
但此時我的mode bit 為 1,按理說應該是不能執行 priviledged instruction
但我不執行此指令又無法change mode bit ?
造成我永遠無法進入 kernel mode ?
※ 編輯: can18 (118.233.159.57), 11/06/2017 15:44:51
→
11/06 16:07, , 16F
11/06 16:07, 16F
→
11/06 16:07, , 17F
11/06 16:07, 17F
→
11/06 16:07, , 18F
11/06 16:07, 18F
→
11/06 16:07, , 19F
11/06 16:07, 19F
我理解你說的 但在syscall完後還是必須要執行switch to kernel mode 之指令,若此指
令為 priviledged 不會造成 OS也無法執行此指令嗎?(因為在尚未執行此指令前mode bi
t 還是1)
※ 編輯: can18 (118.233.159.57), 11/06/2017 16:21:12