Lab4 疑问
匿名2023/07/31 19:51:38提问
    lab4student
302

依我的理解,在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
      暂无数据