进程上下文

进程上下文是进程执行状态的完整快照,分为三大类:用户级上下文、寄存器上下文和系统级上下文。

用户级上下文:进程作为独立程序运行所依赖的数据和代码环境。包括代码段(.text)、数据段(.data/.bss)、用户堆栈(函数调用、局部变量)、共享内存段(进程间通信)。

寄存器上下文:最核心的执行现场信息。包括程序计数器(PC,指向下一条要执行的指令)、栈指针(SP,指向栈顶)、通用寄存器(中间计算结果)、状态寄存器(条件码,决定分支结果)、浮点/SIMD寄存器(浮点运算状态)。上下文切换时,这些寄存器全部保存到内存。

系统级上下文:内核为管理该进程维护的数据结构,对用户不可见。包含:

  • PCB(进程控制块):PID、进程状态、调度信息、信号屏蔽字等。
  • 内存管理上下文:页表(虚拟地址到物理地址的映射)、VMA链表(内存区域描述)。
  • 打开文件表:文件描述符到内核文件对象的映射。
  • 内核栈:进程在内核态执行时使用的栈。

上下文切换时需要完整保存和恢复这些信息,这是系统调用和进程切换的主要开销来源。

链接到