看板 Grad-ProbAsk 關於我們 聯絡資訊
我想問一個問題... 就是在OS中的CH2講到Dual Mode 分為兩種: 1.Monitor mode 2.User mode 然後將一些指令定為Priveledged Instruction (特權指令) 恐龍本提到特權指令其中一個例子是change user mode to monitor mode 但是特權指令一定要在Monitor mode才能執行 照這樣來說 change user mode to monitor mode 在被執行的時候 應該就是Monitor mode 這樣一想...感覺這條指令有點矛盾 請各位大大幫我解開疑惑 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.110.54
cola1230:我是拿筆記出來 1.use process 發trap 給 kernel 07/27 00:18
cola1230:2 change user mode => kernel mode 07/27 00:18
steven1028:但是發了trap後 還是user mode 07/27 00:52
steven1028:要等kernel去處理轉換成kernel mode 07/27 00:52
steven1028:好像還是存在那個矛盾TAT 07/27 00:52
wheels:你可以把他想成是一種控制權的轉移 在user mode取得cpu執 07/27 00:56
wheels:行時的系統狀態叫做user mode 由kernel取得系統控制權的時 07/27 00:57
wheels:候叫做kernel mode 並不是真的有一個實體位置記錄著現在是 07/27 00:57
wheels:哪種state 07/27 00:57
wheels:更正一下第一行           user process 07/27 01:06
cola1230:@@ 是的 獲益良多 07/27 01:52
steven1028:這樣好像更能了解了 07/27 07:10
steven1028:感謝大大 07/27 07:10
da0910cc: 07/28 22:21
wheels:但是hardware真的有一個mode bit存在喔!只是想像! 08/01 02:15
wheels:現在重看還真怕自己會混淆意思="= 08/01 02:16
wheels:再來說一次好了!user發system call給kernel後,控制權轉移 08/01 02:18
wheels:給kernel(此時已經進入kernel mode了!因為接著kernel會把) 08/01 02:19
wheels:mode bit設為0!),然後做完後(會把mode bit設為1)再把控制 08/01 02:20
wheels:權轉回去給user process。所以change mode都是在kernel擁有 08/01 02:21
wheels:控制權的時候(也就是進到kernel mode)時做的! 08/01 02:22
wheels:雖然hardware有一個mode bit,可是改變的時候都是kernel擁 08/01 02:23
wheels:有控制權(也就是kernel mode)的時候才能改變! 08/01 02:23
wheels:你的矛盾應該是在轉進kernel mode後mode bit依然為0這一小 08/01 02:25
wheels:更正                   依然為1 08/01 02:25
wheels:段時間,但是kernel接下來就會把mode bit改為0了! 08/01 02:28
wheels:我看我乾脆回一篇更清楚的好了.... 08/01 02:29
sneak: 權轉回去給user p https://daxiv.com 09/11 14:27