learningOS开源操作系统社区
  • 首页
  • 训练营
  • 明星学员
  • 共建单位
  • 项目实习
  • 问答论坛
登录
    Copyright © 2024 opencamp.ai All rights reserved.
    问一个关于lab1的challenge的问题
    匿名2023/07/31 19:52:14提问
      lab1student
    424

    在处理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
        暂无数据