- 一个例子
最开始处于内核模式,可以注意到其 Base 和 Bound 均失效(意味着可以访问 [0000…, FFFF…] 的所有地址空间),uPC 指向黄色进程的可执行代码,意味着目前想要加载进入黄色进程。
我们将 PC 换为之前的 uPC,sysmode 改为 0 之后,Base 和 Bound 就激活了且等于黄色的地址区域边界,这意味着我们进入了黄色进程,同时进入了用户模式。
假设一段时间后发生了计时器中断,下一条执行的指令将会是计时器中断处理程序(存在于内核代码区),中断发生后我们又一次进入了内核态。
由于要发生进程切换,因此计时器中断处理程序将会保存黄色进程 PCB 并放入内核区(灰色)的 Static Data 中的黄色小方块。
同时我们加载切换到绿色所需的寄存器信息。
更改 sysmode 后成功以用户模式运行绿色进程。
1 Like