问一个关于lab1的challenge的问题
匿名2023/07/31 19:52:14提问
    lab1student
312

在处理T_SWITCH_TOU的时候,为了能够让init.c中的代码继续执行,我构造了trap frame,使得切换到用户态前后的esp,ebp不变。

但是这样一来会有一个问题,就是用户态和核心态的栈是一样的。但是不知道为什么代码实际运行过程中貌似并没有出现什么问题。

如果转换到用户态,此时产生了一个时钟中断,应该会发生一些错误什么的。

另外奇怪的是,在T_SWITCH_TOU转换到user mode的过程中,在处理函数中(核心态)esp是7ae8,但是第二次T_SWITCH_TOK转换到kernel mode的过程中,在处理函数中(核心态)esp变成了10fda0。

希望老师解答一下这个问题。

回答(1
    推荐问答
      Simple Empty
      暂无数据