xv6 中的上下文是什么?

Kou*_*zdi 1 unix operating-system xv6

contextxv6 操作系统中的用法是什么?每个寄存器的工作是context什么?

struct context {
  uint edi;
  uint esi;
  uint ebx;
  uint ebp;
  uint eip;
};
Run Code Online (Sandbox Code Playgroud)

mik*_*ike 6

context 是一组信息,它允许您从由于上下文切换而停止的完全相同的点恢复任务的执行(即调度程序选择另一个任务运行并挂起当前任务,因此它必须保存执行信息当前任务并恢复要运行的下一个任务的任务)。

每个寄存器的目的是:

  • edi: 目标索引,用于字符串操作
  • esi: 源索引,用于字符串操作
  • ebx: 基本索引,用于数组
  • ebp: Stack Base Pointer,用于保存当前栈帧的地址
  • eip:指令指针,指向要执行的指令

  • 没有。例如。如果处于用户模式,trapframe中保存的寄存器就是用户模式的寄存器。swtch 保存的寄存器始终是内核模式的寄存器。 (2认同)