learningOS开源操作系统社区
  • 首页
  • 训练营
  • 明星学员
  • 共建单位
  • 项目实习
  • 问答论坛
登录
    首页明星学员问答论坛
京ICP备16045052号-18Copyright © 2024 opencamp.cn All rights reserved.
Lab4 疑问
匿名2023/07/31 19:51:38提问
    lab4student
373

依我的理解,在lab4进程切换的时候,有以下几个步骤:

    1)利用proc_struct中的context的eip,跳到forkret

    2)在forkret中,利用原先设计好的context.esp,将栈顶指向proc_struct中的trapframe

    3)跳到trapret,将trapframe中的寄存器一一还原,将eip指向kernel_thread_entry

我的疑问就是,为什么要先用context还原一遍寄存器,然后到trapframe里再还原一遍?

为什么不能直接将context中的eip就指向kernel_thread_entry?

一直搞不懂proc_struct中trap的作用,求解释!

回答(1)
即可发布评论
    推荐问答
      Simple Empty
      暂无数据