learningOS开源操作系统社区
  • 首页
  • 训练营
  • 明星学员
  • 共建单位
  • 项目实习
  • 问答论坛
登录
    首页明星学员问答论坛
京ICP备16045052号-19Copyright © 2024 All rights reserved.
关于idleproc和initproc切换时的通用寄存器恢复问题
匿名2023/07/31 19:51:26提问
    lab4student
399

idleproc创建完initproc之后继续运行并等待调度,真正切换是发生在schedule函数里面

switch_to把两个进程的通用寄存器分别进行了保存和恢复,但initproc之后执行的位置是forkret

也就是说我们模拟了一次中断(其实这里应该并没中断),然后iret了,但是在iret之前popal又把所有通用寄存器刷新了一遍。。前面的switch_to意义何在。。

一般来说,如果进程切换是先中断的,那么tf应该存了一份regs,然后你swtich_to换一遍regs,可是iret之前还得刷新一遍,所以context和tf->tf_regs到底有什么区别=_=

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