→ 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